| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > отделение файловой системы от структуры сайта |
| Автор: bars80080 22.9.2009, 13:40 |
| сразу говорю, что вопрос несколько бестолковый под файловой системой понимаю физическое распределение файлов на сервере по директориям под структурой - систему url адресов, ведущих на разные страницы в случае со статическим сайтом, там всё понятно, делаем папку directory, в неё кладём файлы page1.html, page2.html и т.д. и получаем адреса directory/page1.html , directory/page2.html в динамическом варианте мы можем изголяться как-угодно либо также, оставляя на долю сервера решать проблемы адресов, либо беря под свой контроль у меня есть старый движок неких товарищей, так они валили все файлы (причём даже чисто html-страницы там тоже имели расширение .php) в один каталог. получилась настоящая свалка, в которой приходится часто искать где же этот скрипт рассуждая пальцами по клаве, как-то пришёл к варианту, где подчинённые страницы находятся внутри модуля (папки), который служит их "градообразующим предприятием". то есть почти статический вариант, за исключением того, что все файлы сидят вне видимости из сети, соответствующим образом инклудятся, а также в папке модуля располагаются прочие подсобные файлы (шаблоны, библиотеки классов и прочая). в этой системе, при перемещении модуля из одного раздела сайта в другой, происходит физическое перемещение всей директории (путём rename). что мне не сильно нравится, хотелось бы всё-таки иметь более независимую от структуры сайта файловую систему. вот собственно вопрос, насколько сильно вы считаете их стоит разделить, и/или какая система кажется на ваш взгляд удобней? |
| Автор: Ипатьев 22.9.2009, 13:47 |
| нормальный вариант, учитывая его исчезающую редкость. вот я бы лично, учитывая частоту, с которой встречаются подобные задачи, ни за что бы не стал задумываться об обобщенном решении для них. |
| Автор: Ипатьев 22.9.2009, 14:57 | ||
обычно данные лежат в базе, а не на диске, мне кажется.
я так понял, что задача не "сайт похож на дерево", а "при перемещении модуля из одного раздела сайта в другой, происходит физическое перемещение всей директории (путём rename).". как часто происходят такие перемещения, чтобы задумываться над глобальным решением этой задачи? какой еще главнокомандующий? речь вообще о чем? о размещении статических страниц в каталогах или о структуре расположения скриптов сайта? я так понял, что речь о первом. |
| Автор: bars80080 22.9.2009, 15:12 | ||||
не, я не говорю про такую частность, как содержимое новостей. для меня это один модуль - новостной, то что он там показывает в структуру не входит, даже если url адрес существует в виде news/article-about-php специально для каждой новости я говорю о наборе этих модулей. их отличает уникальность. допустим вот модуль регистрации на сайте, вот модуль новостей, вот модуль гостевой книги. один модуль может структуруно находится внутри другого, хотя легко может быть перемещён. к примеру, модуль отзывов о гостиничном сервисе, расположенный внутри модуля отелей.
бывает, и происходят. конечно, в случае построения или изменения структуры сайта. но с помощью налаженного механизма это делается нажатием на три кнопки в интерфейсе.
не, о втором. скрипты в данном случае выступаю почти независимыми единицами. физически - это папоча с файлом script.php и дополнительными файлами: шаблоны и библиотеки. плюс вложенные модули статические страницы тоже могут быть представленны в виде физических страничек page.html и лежать внутри папки модуля, если по этим страницам не планируется ничего больше, кроме как вставка их содержимого в общий документ. ведь если не планируется никакого поиска или выполнения чего бы то ни было, то смысл их запихивать в базу? |
| Автор: skyboy 22.9.2009, 15:19 |
видать, вспоминает http://forum.vingrad.ru/users/Feldmarschall |
| Автор: Ипатьев 22.9.2009, 15:21 |
тогда я вообще не понял, в чем вопрос. есть структура сайта. она лежит в XML или в БД. в этой структуре есть привязка "уровень меню - путь на диске". все перетасовки в меню делаются исключительно в этом XML. зачем что-то двигать на самом диске - я не понимаю. |
| Автор: Simpliest 22.9.2009, 16:58 |
Я так понял его не устраивают сотни и тысячи файлов скриптов которые лежат в одном каталоге, причем возможно с ресурсами (картинки, яваскрипт и прочее). |
| Автор: Ипатьев 22.9.2009, 17:02 |
| Я так тоже подумал сначала, но, судя по всему, эти файлы послужили только толчком к размышлениям и для сбивания с толку собеседников. А размышления - о структуре расположения файлов проекта на диске. Нормального проекта. Добавлено через 4 минуты и 56 секунд Он говорит о том, что папка feedback лежит в папке hotel_service И что если эту папку переместить... А я говорю - а с чего это вдруг мне понадобится эту папку перемещать? |
| Автор: bars80080 22.9.2009, 17:53 | ||||
если папка feedback лежит в папке hotel_service, и при перемещении в структуре модуля feedback, не переместить физически папку feedback, то может возникнуть ситуация, когда hotel_service будет удалён, а вместе с ним и весь внутряк, хотя feedback должен продолжать работать
очень не устраивает. настолько не устраивает, что выкидываю эту идею сразу правда, они не лежат с картинками, скриптами, стилями и прочим медиа в одном каталоге |
| Автор: Simpliest 22.9.2009, 18:01 |
Если feedback лежит внутри hotel_service , то это значит только одно - ни в каком другом месте оно работать не будет. Если тебе нужен feedback как независимая часть, то так его и реализуй. Отслеживай зависимости и используй модули как сервисы. Т.е. ему должно быть глубоко безразлично кто его вызывает, если вызов соответствует API. Зачем ты его клал в hotel_service? Там может лежать, скажем, hotel_feedback, который наследуется от feedback. |
| Автор: Ипатьев 22.9.2009, 19:01 |
| По-моему, это надуманная проблема. Simpliest прав - если фидбэк нужен везде, то почему он лежит в сервисе? если сервис перемещается со всеми файлами, то почему куда-то должен пропасть фидбэк? Я бы сделал просто каталог для модулей. В которых все модули равноправны. А иерархию выстраивал в БД. |
| Автор: bars80080 22.9.2009, 19:15 | ||||
в данном случае, он нужен только в сервисе, потому там и оказался не знал куда его ещё положить. именно поэтому и возник вопрос. в один ряд сотню модулей класть не хочется. много добавляется, много выкидывается. когда мешаешь всё в одну кучу, бардак в каталоге трансформируется в бардак в голове. поэтому стал модули вкладывать, но с ними вот эта проблема
я написал: если сервис удаляется. он удаляется и из БД, и с диска. рекурсивно сносится вся директория модуля |
| Автор: Simpliest 22.9.2009, 20:12 |
Библиотеки и Иерархия. Больше тебе ничего не поможет |
| Автор: Ипатьев 22.9.2009, 20:21 |
речь о сайте, с которого начался разговор? |
| Автор: bars80080 22.9.2009, 20:29 |
ага. уже сейчас всего в четырёх разделах около 20 модулей, а работа только начинается. если это всё выкладывать в рядок, то получится тот сайт, который я хочу казнить, именно из-за бардачной системы построения |
| Автор: Ипатьев 22.9.2009, 20:31 |
| не вижу никакой проблемы. скорее всего, эти "модули" просто дублируют друг друга. то есть, либо полный рефакторинг, либо плюнуть и оставить, как есть. |
| Автор: bars80080 23.9.2009, 00:06 |
| нет, ничего не дублирует. но видно, оставить как есть придётся |