У меня есть контроллер, который начинает чувствовать себя очень раздутым. Некоторые из действий сами по себе очень большие и много, как я пытаюсь разделить вещи, перемещение этого файла становится утомительным.Можно ли разделить контроллер Yii на несколько файлов?
Мне было интересно, есть ли какой-либо способ, и в частности любое соглашение, для управления очень большими контроллерами? Есть ли способ разделить контроллер на более простые в управлении разделы?
Я вижу, что есть класс CAction. Это путь? Как насчет методов, которые не являются действиями?
Я здесь, чтобы узнать, как я могу избежать этого. Очевидно, я понимаю, что это проблема, или я не стал бы задавать вопрос. Я чувствую, что CAction (размещение действий в отдельных файлах) может быть подходящим способом, но я надеюсь, что люди могут понять, почему эта проблема имеет тенденцию возникать в первую очередь и в том случае, когда этот курс действий уместен или нет. Благодарим вас за абсолютно неконструктивный комментарий. – raphaeltm
Кроме того, хотя вы удалили тег mvc, я бы сказал, что это актуально, потому что, хотя я прошу совета по конкретным средам, я думаю, что мне было бы полезно (и любые другие) узнать, как можно разделить контроллер в несколько файлов и почему он может быть или не быть уместным. (в том числе, почему проблема не возникает и что может привести к ее возникновению) – raphaeltm
Ваш вопрос сводится к следующему: «Мой класс слишком длинный, что делать?». Причина, по которой занятия слишком велики, заключается в том, что они нарушают некоторые из принципов SOLID (скорее всего - [SRP] (http://en.wikipedia.org/wiki/Single_responsibility_principle)). И если «контроллер» имеет слишком много обязанностей, то он не является контроллером (потому что в контроллерах MVC несут ответственность за изменение состояния уровня модели и представления ... вот и все). Таким образом, вопрос не имеет ничего общего с MVC. –