Какое разделение каталогов должно быть в моей структуре?
Эй, ребята, просто маленький вопрос здесь.. (надеюсь!)
Я пробовал кучу различных структур каталогов для моей PHP MVC Framework. Делая это, я подумал о нескольких причинах, чтобы отделить разные части приложения друг от друга.
Например, скажем, это моя текущая структура:
- index.php
- private/
- application/
- ... (MVC stuff. Irrelevant I think...)
- config/
- config.php
- framework/
- bootstrap.php
- includes/
- library/
- ... (Framework classes)
- libraries/
- Zend/
- PEAR/
- public/
- css/
- images/
Как я понимаю, я могу обновить фреймворк, просто переписав каталог / private / framework /, что не повлияет на конфигурацию фреймворка пользователя в / private / config / или сторонних библиотек в / private / library /.
Файл /index.php используется почти исключительно для загрузки файла /private/framework/bootstrap.php, что будет означать, что обновление каталога / private / framework / также обновит основной файл начальной загрузки (избавляя меня от необходимости обновлять / файл index.php, который останется как есть, так как в нем почти ничего нет).
Кроме того, приложение отдельно от всего, что связано с платформой, поэтому пользователь может переключать / изменять / обновлять свои приложения, когда это необходимо, не беспокоясь о других каталогах.
Я на правильном пути здесь в отношении разделения каталогов друг от друга, чтобы их было легче обновлять?
Я видел в некоторых фреймворках, что у них есть свои каталоги / private / library / и / private / application / внутри директории фреймворка... но мне кажется, что было бы сложно обновить до новой версии фреймворка если нужно. Или я думаю об этом не так?
Вы можете увидеть мою предыдущую структуру dir здесь, если вам интересно. Мой новый немного другой (надеюсь, лучше...), как и мой вопрос, поэтому я подумал, что стоит опубликовать новый вопрос.
Это не такой маленький вопрос, как я бы надеялся, но что ж, хорошо!;)
Заранее спасибо =)
1 ответ
Я бы предложил отделить фреймворк от кода приложения. Фреймворк должен находиться в одном каталоге верхнего уровня, а приложение - в другом.
На самом деле... Я предлагаю вам взглянуть на структуру каталогов, используемую CakePHP.