У меня есть система управления контентом, где константы на основе slug для каждого подходящего каталога пользователя в журнале определены для одного или всех контроллеров внутри модели. Я случайно наткнулся на эту находку, экспериментируя с переопределением констант для каждого зарегистрированного пользователя.Переопределение констант на основе кодовых слов Codeigniter в модели на пользователя
Я не думал, что переопределяющие константы были возможны, но я думаю, что не понимаю, как Codeigniter или PHP могут переопределять константы таким образом. Я не получаю никаких ошибок PHP, заявляя, что он не смог переопределить константы, и мне кажется, что экземпляр модели или контроллера не настроен для каждого контроллера?
Контроллер:
class Content extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('main_model');
...
get slug from logged_in user
...
$this->main->set_slug_based_constants($slug)
}
}
Один основной моделью (я знаю, что это плохо, чтобы сделать это):
class Main_model extends CI_Model{
public function set_slug_based_constants($slug)
{
define('CLOUDFRONT_DIRECTORY', $slug.'_cloudfront_directory');
}
}
From Codeigniter Docs: Dynamic Инстанцирование. В CodeIgniter компоненты загружаются, а процедуры выполняются только по запросу, а не по всему миру.
Поэтому я хотел бы поверить, что мое предположение верно в этом случае на основе документов Codeigniter.