Вопрос о контроллерах. Может ли контроллер вызвать его собственные методы класса внутри действия?PHP: MVC и DRY
EDIT: О, извините. Я имел в виду, что я не хочу повторять себя. :)
Вопрос о контроллерах. Может ли контроллер вызвать его собственные методы класса внутри действия?PHP: MVC и DRY
EDIT: О, извините. Я имел в виду, что я не хочу повторять себя. :)
Почему бы и нет?
Все зависит от вас, но я действительно не вижу причины, чтобы избежать сухих (LOL). Смысл MVC является разделение контроллера/модель/представление, больше ничего :)
EDIT: Тем не менее, да, контроллер может вызывать это собственные методы внутри действий. Хорошей практикой было бы дать имена методов действий, например action_something или something_action, и иметь «базовый» контроллер, который вы продляете позже. Подобно;
Controller
Controller_Application extends Controller
Controller_Layout extends Controller_Application
где первый из них будет своего рода «абстракции» (рамочный-ориентированный) и другие будут заботиться о логике приложения. Так что позже вы ...
Controller_Forum extends Controller_Layout
Controller_News extends Controller_Layout
Controller_Ajax extends Controller_Application
в зависимости от того, что вы хотите использовать для определенного контроллера.
Всё зависит от вас; вы можете поместить свои собственные методы там, где захотите, и называть их там, где вы хотите :)
Если вы не используете какую-то неясную структуру, которая так или иначе препятствует этому, вы должны иметь возможность вызывать методы из класса/экземпляра, независимо от того, какой класс/экземпляр является контроллером или чем-то еще.
Если вы обнаружите, что пишете код, который необходимо повторно использовать на нескольких контроллерах, вы можете подумать о написании BaseController и переместить общую функциональность в эту или -better, чтобы разделить общую функциональность на вспомогательные классы, которые затем можно создавать и позвоните по требованию. В принципе, если вам нужно что-то в все контроллеры, переместите его на BaseController. Если вам это нужно в контроллерах, сделайте это помощником. Если вам это нужно только в одном конкретном контроллере, держите его там.
Я просто пытаюсь найти лучшие практики для работы с PHP. :) – PPPHP
круто, мы отправили в то же самое время. Это должно дать значок: D – Gordon
да, не бывает очень часто :) – Kemo