#php #cakephp #refactoring #reusability
#php #cakephp #рефакторинг #возможность повторного использования
Вопрос:
Я создал два контроллера, которые на самом деле используют некоторый общий код. Поэтому я хочу реорганизовать его в собственный файл. Но поскольку я использую модели в этом коде, я не могу использовать компоненты. Есть ли другое хорошее решение для этого? Надеюсь, вы сможете помочь.
Комментарии:
1. Вы думали о том, чтобы поместить код в AppController?
2. «Но поскольку я использую модели в этом коде» => вы также можете работать с моделями в компонентах.
3. AppController был бы возможностью, но каждый контроллер унаследовал бы код, а также контроллеры, которым это не нужно. Я пытался создать компонент, но он не работает, как в контроллере с моделями.
4. Вы можете использовать
ClassRegistry::init('ModelName')
для доступа к желаемой модели из компонентов. Это нарушает шаблон MVC, но если вы посмотрите исходный код cake, вы будете часто его видеть. Вы также можете использовать его непосредственно для поиска:ClassRegistry::init('ModelName')->find('first');
или любой другой метод модели.5. Вопрос немного расплывчатый. Помогло бы, если бы мы знали, что делает код (данные / перенаправления / etc).