Я планирую свою структуру каталогов для веб-проекта linux / apache / php следующим образом:
Только www.example.com/webroot/
будет выставлено в apache
www.example.com/
webroot/
index.php
comp1/
comp2/
component/
comp1/
comp1.class.php
comp1.js
comp2/
comp2.class.php
comp2.css
lib/
lib1/
lib1.class.php
Каталоги
component/
и lib/
будут находиться только в пути php.
Чтобы сделать файлы css и js видимыми в каталоге webroot, я планирую использовать символические ссылки.
webroot/
index.php
comp1/
comp1.js (symlinked)
comp2/
comp2.css (symlinked)
Я пытался следовать этим принципам:
- Компоновка по компонентам и библиотекам, а не по типу файла и не по "общедоступному" или "непубличному", index.php является исключением. Это облегчает разработку.
- предоставляет только минимальный набор файлов в общедоступном веб-каталоге и делает все остальное недоступным для Интернета. Символьные файлы, которые должны быть общедоступными для компонентов и привязаны к общедоступному местоположению, но все же отражающие макет Таким образом, структура компонента и библиотеки также видна в результирующем HTML-коде в ссылках, что может помочь при разработке.
- использование git должно быть безопасным и всегда работать. было бы хорошо следовать некоторой процедуре, чтобы добавить символическую ссылку в git, но после этого проверка их или смена веток должны быть обработаны безопасно и чисто
Как git будет правильно обрабатывать ссылки на отдельные файлы, есть что-то, чтобы рассмотреть?
Когда дело доходит до изображений, мне нужно будет связать каталоги, как это сделать с помощью git?
component/
comp3/
comp3.class.php
img/
img1.jpg
img2.jpg
img3.jpg
Они должны быть связаны здесь:
webroot/
comp3/
img/ (symlinked ?)
Если использование символических ссылок для этого имеет недостатки, возможно, я мог бы переместить изображения непосредственно в корень / дерево, что нарушило бы первый принцип для третьего (практичность git).
Так что это вопрос мерзавца и символической ссылки. Но мне было бы интересно услышать комментарии о макете php, возможно, вы захотите использовать функцию комментария для этого.