Как получить доступ к хранилищу в каждом запросе в родительском контроллере? - PullRequest
0 голосов
/ 26 декабря 2009

Я пытаюсь провести рефакторинг своего приложения Catalyst, и я хотел бы представить общий базовый класс для моих контроллеров. Этот базовый контроллер будет загружать некоторые данные и помещать некоторые другие данные в тайник для каждого запроса. У меня есть некоторые проблемы с получением тайника. Простым решением было бы реализовать действие по умолчанию auto в базовом контроллере. Это работает, но я должен помнить, что всегда вызывать super auto в производных контроллерах. Это легко забыть, есть ли лучшее решение? Другими словами: существует ли простой способ подключиться к обработке запросов, который было бы не так легко сломать в производных контроллерах?

1 Ответ

3 голосов
/ 26 декабря 2009

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

В частности, для этого случая Catalyst предоставляет эту функцию, позволяя вам указать метод auto в вашем корневом контроллере, который всегда будет вызываться перед методами auto ваших более конкретных контроллеров для каждого запроса. Наследование не требуется.

...