CakePHP — это фантастика, он действительно заслуживает слогана «Rapid Development Framework». Мне удалось быстро испечь контроллеры, модели, а также шаблоны. Некоторое время все было хорошо, пока я не ударился о кирпичную стену. Приложение, которое я разрабатываю, слишком массивно для простой структуры каталогов, предлагаемой по умолчанию.
На полпути в моем процессе разработки я начал видеть, что оставляю много бизнес-логики внутри классов Table. Я слышал высказывания о том, что не стоит загрязнять модельный класс поведенческим кодом.
Так как мое приложение велико, что требует нескольких модулей, почти мини-приложений, я должен использовать CakePHP немного по-другому. Я объясню структуру моего приложения, которое я бы предпочел.
Эта папка будет содержать все модули, из которых состоит мое приложение. В качестве альтернативы он должен называться «Модули» вместо «Ядро».
В каждой папке модуля будет папка для контроллеров, моделей, сервисов и шаблонов.
Он будет содержать две подпапки, которые уже предлагаются CakePHP 3. Он будет содержать папки для сущностей и таблиц. Я слышал, что таблица действует как хранилище, поэтому я опустил идею наличия папки хранилища.
Папка service будет содержать сервисы для модуля, в основном код бизнес-логики, который использует объекты таблиц для сохранения и извлечения данных. Это поможет центрировать бизнес-логику и сохранить классы моделей & Контроллер тонкий.
Контроллеры будут разговаривать с классами обслуживания. Использование сервисов для извлечения данных, сохранения данных, проверки, работы с бизнес-логикой и т. Д. Моя цель также состоит в том, чтобы сделать работу контроллера очень легкой, перенеся большую часть логики в сервисы.
Он будет содержать файлы представления, которые контроллеры будут использовать для рендеринга данных обратно в веб-браузер. Я мог бы иметь подпапки там для представлений для подразделов модуля.
Пожалуйста, прости меня. Если я не объяснил себя должным образом, мы имеем дело с очень сложным приложением, которое имеет много таблиц, примерно 100. Если у кого-то есть лучшие рекомендации по организации большого приложения в CakePHP 3, я был бы очень признателен.
Разрабатывая свое приложение таким образом, я понимаю, что CakePHP не будет работать «из коробки», мне может понадобиться перенастроить его, чтобы он мог использовать мою собственную структуру каталогов. Насколько легко это будет сделать?
Задача ещё не решена.
Других решений пока нет …