Какое разделение каталогов должно быть в моей структуре?

Эй, ребята, просто маленький вопрос здесь.. (надеюсь!)

Я пробовал кучу различных структур каталогов для моей 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.

Другие вопросы по тегам