Контроллеры Expression Engine - PullRequest
3 голосов
/ 06 июля 2011

Я создаю свой первый сайт в Expression Engine, мне было интересно, как использовать пользовательские контроллеры в EE, как в Codeigniter, или что такое EE-эквивалент?

Ответы [ 3 ]

7 голосов
/ 07 июля 2011

Контроллеры являются сердцем вашего приложения, так как они определяют, как должны обрабатываться HTTP-запросы.

Как вы, наверное, знаете, CodeIgniter Controller - это просто файл класса, который назван так, что может быть связан с URI.

<?php
    class Blog extends CI_Controller {

        public function index() {
            echo 'Hello World!';
        }
    }
?>

Эквивалентом ExpressionEngine являются группы шаблонов и шаблоны , управление которыми осуществляется из диспетчера шаблонов панели управления.

enter image description here

Поскольку группы шаблонов и шаблоны EE могут называться как угодно, структура URL неудивительно, что она имитирует приложение CodeIgniter & mdash; в конце концов, EE построен на CI.

Например, рассмотрим этот URI: example.com/index.php/blog

  • CodeIgniter попытается найти контроллер с именем blog.php и загрузить его.
  • ExpressionEngine попытается найти группу шаблонов с именем blog и загрузить шаблон с именем index.

Продолжая этот пример, второй сегмент URI определяет, какая функция в контроллере вызывается (для CodeIgniter) или какой шаблон загружается (для ExpressionEngine).

Построение из того же URI: example.com/index.php/blog/entry

  • CodeIgniter попытается найти контроллер с именем blog.php и загрузить его.
  • ExpressionEngine попытается найти группу шаблонов с именем blog и загрузить шаблон с именем entry.

Начиная с третьего и последующих сегментов URL, CodeIgniter и ExpressionEngine начинают использовать разные подходы. (Полное объяснение их различий выходит за рамки этого ответа).

Несмотря на то, что между CodeIgniter и ExpressionEngine существует много общего, на очень низком уровне CodeIgniter позволяет создавать веб-приложений , тогда как ExpressionEngine позволяет создавать веб-сайтов .

2 голосов
/ 29 мая 2014

Я знаю, что это старо, но я просто подумал, что кто-то, смотрящий на это, может найти фактический ответ полезным. Как уже говорили другие, маршруты для контроллеров по умолчанию игнорируются в 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 сначала проверит наличие контроллеров, а если ничего не найдено, то будет искать шаблоны.

1 голос
/ 06 июля 2011

Вообще говоря, ExpressionEngine использует группы шаблонов и шаблоны для визуализации контента.

EE построен на CI, но он не функционирует как CI, так как это CMS, а не среда приложения.

...