Я работаю над Приложением, и большая часть кода будет возвращена в будущем проекте.Поэтому моя идея состояла в том, чтобы создать такую структуру:
App/
- controllers
- models
- ...
Cake/
My_Custom_Folder/
- controllers
- models
- ..
По сути, я хочу добавить еще одну папку рядом с обычной папкой приложения и использовать App :: build (), чтобы задать пути к дополнительной папке.контроллеры, модели и т. д.
Теперь цель состоит в том, чтобы использовать слой приложения только тогда, когда мой проект требует пользовательской работы, мне это удалось, и CakePHP использует контроллеры в приложении над контроллерами в My_Custom_Folder, если онитам.
Например: если у меня есть файл pages_controller.php в My_Custom_Folder и один в моей папке приложения, он будет использовать тот, что в папке приложения.Если в папке приложения его нет, он использует тот, что находится в My_Custom_Folder.
Однако я не хочу, чтобы это работало, я хочу расширить контроллеры из My_Custom_Folder, чтобы я мог переопределять методы и / или добавлять новые.
Пока что япробовал следующее:
/ My_Custom_Folder / pages_controller.php
Class PagesController Extends AppController {
Public $name = 'Pages';
Public Function home(){
echo 'default home';
}
}
/ App / pages_controller.php
require_once(ROOT . DS . 'My_Custom_Folder' . DS . 'controllers' . DS . 'pages_controller.php');
Class AppPagesController Extends PagesController {
Public Function home(){
echo 'Override default home';
}
}
К сожалению, это не работает, это все ещезагружает дом по умолчанию.По сути, я хочу, чтобы он загружал все методы из My_Custom_Folder и позволял папке App переопределять методы и / или добавлять методы таким же образом, как если бы вы расширяли Appcontroller.Он загружает оба файла, но не переопределяет никакие функции.
Такая структура была бы полезна для поддержки одного и того же кода во многих проектах и позволила бы мне легко добавлять новые функции для всех проектов, просто обновляя My_Custom_Folderи это не нарушило бы проекты, которые имеют некоторый настроенный код.
Любая помощь по этому вопросу будет принята с благодарностью.