Есть ли в Codeigniter суперконтроллер или глобальный контроллер? - PullRequest
5 голосов
/ 11 марта 2012

Я хочу вызвать функцию в контроллере (скажем, controller_a) из другого контроллера (скажем, controller_b)

Пожалуйста, помогите мне ..

Ответы [ 2 ]

8 голосов
/ 11 марта 2012

Общие функции контроллера обычно должны быть в расширенном классе контроллера:

<?php
/**
 *  File: /application/core/MY_Controller.php
 */
class MY_Controller extends CI_Controller {

    /**
     * Prefix with an underscore if you don't want it
     * publicly available through URI-routing
     */
    public function _some_shared_method()
    {
        // some common operation here
    }

}

Затем убедитесь, что любой контроллер, который должен использовать эту функцию, расширяет MY_Controller.

0 голосов
/ 11 марта 2012

Вы бы сломали MVC, вызвав контроллер с другого контроллера. Подумайте об использовании помощника или библиотеки для функции, которую вы пытаетесь вызвать.

Когда контроллеры вызывают другие контроллеры, вы работаете в среде HMVC. См. Модульные расширения

Если вам нужна информация о наследовании контроллеров, я рекомендую прочесть статью Фила Стерджена о Keeping It Dry

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...