Я хочу получить доступ к функции в application/config/constants.php, которая написана в одной из моих моделей CodeIgniter. Возможно ли это сделать?
Нет, это не легко сделать. Файл констант используется задолго до создания контроллера, и вы не можете «загружать» какие-либо другие библиотеки (включая модели), пока это не произойдет. Вероятно, вы могли бы найти хак, но это не рекомендуется. Лучшим решением может быть использование «хука», либо post_controller_constructor, либо post-controller. Документация по хукам
@MagnusEriksson, спасибо, но мне нечего тебе сказать. Я хочу получить доступ к модели в постоянном файле, вот и все.
@DFriend Спасибо, я попробую ваше предложение.
Нет причин менять константу с помощью функции модели или любой другой функции в этом отношении. Константы должны быть статическими и строгими определениями. Например, пути к приложениям, номера версий и т. д.
They are similar to a variable except that they can never be changed.
Если вы хотите иметь переменную, которая является superglobal
, но должна быть в некотором отношении динамической, вы можете создать /application/core/MY_Controller.php
class MY_Controller extends CI_Controller {
public $someglobalvar;
public function __construct() {
parent::__construct();
$this->load->model('somemodel');
$this->someglobalvar = $this->somemodel->get_var();
}
}
и пусть ваши контроллеры расширят его вместо CI_Controller
(приложение/контроллеры/Some_controller.php)
class Some_controller extends MY_Controller {
public function index() {
var_dump($this->someglobalvar);
}
}
Пожалуйста, покажите нам несколько примеров, чтобы нам не пришлось гадать, о чем вы на самом деле спрашиваете.