Yii. Как в контроллере использовать свои функции?

Как правильно в контроллере писать свои функции чтобы их можно было вызвать из любого экшена?
В принципе я нашел решение, но что-то мне подсказывает что от него попахивает быдлокодингом :)
Делаю так. Моя функция внутри контроллера:
public static function myFunction(){
//тело функции
}

Вызвать её потом можно из любого экшена так:
MyController::myFunction();
На сколько это решение верное? И как правильнее делать?
P.S. Yii первой версии
  • Вопрос задан
  • 6141 просмотр
Решения вопроса 1
Что-то мне подсказывает, что свои методы лучше (правильнее) реализовать в МОДЕЛИ. Это не будет противоречить MVC. А уже из контроллера вызывать методы модели.
Также можно вынести в компонент.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Лучше использовать модель для хранения своих функций.
А контроллеры должны быть худыми.
Например для получения пользователя по id модели User можно реализовать статически:
<?php
class User extends CActiveRecord {
...
static function get($id){
        return self::model()->findByPk($id);
}
...

Можно будет вызвать как
<?php print_r(User::get(нужный ид)) ?>
Только не путать static с public
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы