Повторно используемый код в CakePHP

#php #cakephp #refactoring #reusability

#php #cakephp #рефакторинг #возможность повторного использования

Вопрос:

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

Комментарии:

1. Вы думали о том, чтобы поместить код в AppController?

2. «Но поскольку я использую модели в этом коде» => вы также можете работать с моделями в компонентах.

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

4. Вы можете использовать ClassRegistry::init('ModelName') для доступа к желаемой модели из компонентов. Это нарушает шаблон MVC, но если вы посмотрите исходный код cake, вы будете часто его видеть. Вы также можете использовать его непосредственно для поиска: ClassRegistry::init('ModelName')->find('first'); или любой другой метод модели.

5. Вопрос немного расплывчатый. Помогло бы, если бы мы знали, что делает код (данные / перенаправления / etc).