Использование одной и той же функции на двух разных контроллерах

#php #function #yii #controller

#php #функция #yii #контроллер

Вопрос:

На моем веб-сайте есть два контроллера, давайте назовем их MovieController и ReviewController.

Что я хочу сделать, так это использовать одну из функций MovieController внутри ReviewController.

Единственное, о чем я мог подумать, это расширить MovieController вместо CController. Однако мне трудно поверить, что это правильное решение…

Ответ №1:

У вас есть как минимум два варианта

1) Переместите функцию на главный контроллер в разделе components/Controller.php

class Controller extends CController {


2) Расширьте другой класс из вышеупомянутого главного контроллера и поместите в него вашу общую функцию просмотра фильмов. Вместо этого пусть MovieController и ReviewController расширяются с этого промежуточного контроллера. Возможно, вызовите это SharedController :

class SharedController extends Controller {

class MovieController extends SharedController {

class ReviewController extends SharedController {

Ответ №2:

Вы можете: 1) создать вспомогательный класс 2) использовать черты / поведение и т.д..