MVC - подпапки контроллеров - PullRequest
3 голосов
/ 27 ноября 2011

Я собираюсь создать свой собственный простой MVC-фреймворк на PHP. Я подумал, что было бы неплохо улучшить свои навыки в PHP.

У меня есть вопросы о разделе администратора, как его создать?

В кохане контроллеры могут находиться в подпапках:

например: /controller/admin/admin.php

Какой другой путь? Поскольку длинный код может быть передан родительским помощникам / библиотекам или родительским моделям.

Ответы [ 3 ]

2 голосов
/ 27 ноября 2011

Первое, на что вы должны обратить внимание, это то, что Kohana - это фреймворк HMVC. Это немного другой зверь, по сравнению с остальной группой. В этом случае admin является не столько модулем , сколько пространством имен (хотя kohana все еще использует PEAR-подобное "пространство имен") для контроллеров и других классов.

Этот способ дополнительно позволяет выделить другие части приложения. Допустим, у вас есть много кода, касающегося тегов и облаков тегов. Затем вы можете создать другое пространство имен / модуль только для этого. И использовать их в качестве субконтроллеров. Это один из льгот HMVC.

Еще один способ отделить раздел администратора от общего приложения - это рассматривать их как отдельные приложения, но тогда вам нужно другое место для общих компонентов (скорее всего, из уровень модели ). Тогда у вас есть более одной папки /appliation/ на вашем сервере.

Или вы можете сделать комбинацию из двух.

1 голос
/ 27 ноября 2011

Я думаю, что создание собственного фреймворка - отличная идея, хотя бы для того, чтобы лучше понять структуру веб-приложения.

Я делаю это сам, и думаю, что ваш подход очень зависитмногое о том, как далеко вы хотите зайти.

Я начал с подсистемы поддержки мультиязычности и управления базами данных пользователей, а сейчас перехожу к управлению контентом и очистке запросов к базам данных.

Я продолжаюклассы, разделенные в файлах и сгруппированные по подсистемам в папки, такие как multilang или admin, я думаю, что это лучший подход.

1 голос
/ 27 ноября 2011

Я предполагаю, что причина, по которой вы хотите создать еще одну инфраструктуру MVC, заключается в том, чтобы действительно улучшить ваши навыки PHP, а не пытаться создавать среду, которая будет использоваться ежедневно в вашей компании, например.Я знаю, что вы не обращались за таким советом, но существует так много отличных MVC-фреймворков (и вы, вероятно, знаете их уже много).Я думаю, что это отличный подход для изучения шаблонов проектирования и повышения ваших навыков в PHP (или любом другом языке).

Что касается вашего вопроса, наиболее распространенные подходы, которые я видел, - это использовать разные каталоги, такие как подкаталог «admin», который вы упомянули, чтобы затем применять суффиксы или префиксы имен для контроллеров, например «UsersAdminController.php»например, добавив «AdminController» в конце.

Одно из преимуществ использования подкаталога состоит в том, что он обеспечивает лучшее разделение задач и снижает вероятность того, что вы закончили с большим количеством классов с simmilar в одном каталоге, что может вызвать замешательство в некоторыхточка.

...