Вы можете добиться этого с помощью конфигурации автозагрузки Codeigniter
«s.
Редактировать ваш проект autoload.php
, который находится в каталоге YourProject/application/config/
$autoload['libraries'] = array('REST_Controller');
И в контроллерах этого класса библиотеки через $this->rest_controller
.
BTW: Rest_Controllers - это файл библиотеки, поэтому я не думаю, что имя, добавленное с Controller
, является хорошим именем для него.
Редактировать
Через свой комментарий я получил вы на самом деле означает все контроллеры протяженных от REST_Controller
, и вы не хотите требовать его в верхней части каждого файла контроллера.
Решение:
- Переместить в папку
REST_Controller.php
YourProject/application/core/
.
- В
YourProject/application/config/config.php
линии 119 Изменение $config['subclass_prefix'] = 'MY_';
к $config['subclass_prefix'] = 'REST_';
затем Codeigniter
будет загружать REST_Controller
автоматически.
Но subclass_prefix
конфигурация имеет глобальный эффект, и вы должны изменить расположение REST_Conttoller.php
, так, чтобы минимальное изменение, которое я считаю, что лучший способ создать MY_Controller
класс в директории ./application/core/
и требуют REST_Controller
в нижней части этого нового файла. Когда CI
загрузится MY_controller
автоматически REST_Controller
также потребуется.
Примечание:MY_Controller
необходимости расширения от CI_Controller
Все мои контроллеры расширяют REST_Controller. Поэтому, если я вставляю autoload в пакеты REST_Controller, я не могу использовать $ this-> rest_controller, потому что я должен использовать до начала класса: class Users extends REST_Controller {} – Sasa
Хорошо, я знаю, я отредактирую свой ответ и предоставил решение для этого. @ Sasa –
См. мой Edit @Sasa –