Я создаю свой первый сайт в Expression Engine, мне было интересно, как использовать пользовательские контроллеры в EE, как в Codeigniter, или что такое EE-эквивалент?
Контроллеры являются основой вашего приложения, поскольку они определяют, как обрабатывать HTTP-запросы.
Как вы, вероятно, хорошо осведомлены, CodeIgniter Controller – это просто файл класса, который указан таким образом, который может быть связан с URI.
<?php class Blog extends CI_Controller { public function index() { echo 'Hello World!'; } } ?>
Эквивалент ExpressionEngine – это группы шаблонов и шаблоны и управляются из диспетчера шаблонов панели управления.
Поскольку группы шаблонов и шаблоны EE можно назвать чем угодно, структура URL-адресов неудивительно слабо имитирует приложение CodeIgniter. В конце концов, EE построена на CI.
Например, рассмотрите этот URI: example.com/index.php/blog
blog.php
и загрузить его. blog
и загрузить шаблон с именем index
. Продолжая этот пример, второй сегмент URI определяет, какая функция в контроллере вызывается (для CodeIgniter) или какой шаблон загружается (для ExpressionEngine).
Создание единого URI: example.com/index.php/blog/entry
blog.php
и загрузить его. blog
и загрузить шаблон с именем entry
. Начиная с третьего и последующих URL-сегментов, где CodeIgniter и ExpressionEngine начинают принимать разные подходы. (Полное объяснение их различий выходит за рамки этого ответа).
Хотя существует много сходств между CodeIgniter и ExpressionEngine, на очень низком уровне CodeIgniter позволяет вам создавать веб-приложения, в то время как ExpressionEngine позволяет создавать веб-сайты .
Я знаю, что это старо, но я просто подумал, что кто-то, смотрящий на это, может найти полезный ответ. Как говорили другие, маршруты для контроллеров по умолчанию игнорируются в ExpressionEngine. Чтобы изменить это, вы должны отредактировать первый index.php и закомментировать параметры маршрутизации по умолчанию:
// $routing['directory'] = ''; // $routing['controller'] = 'ee'; // $routing['function'] = 'index';
Как только это будет сделано, вы можете добавить контроллеры так же, как @rjb написал в ответ.
<?php class Blog extends CI_Controller { public function index() { echo 'Hello World!'; } } ?>
После этого ExpressionEngine сначала проверит контроллеры, и если их не будет найдено, он будет искать шаблоны.
Вообще говоря, ExpressionEngine использует шаблонные группы и шаблоны для рендеринга контента.
EE построен на CI, но он не работает как CI, поскольку это CMS, а не среда приложения.