Видеоуроки по Pagekit | Разработка

Видеоурок #03 – маршрутизация и контроллер в Pagekit

Pagekit
Добавление в избранное
Сохранить
Видеоурок #03 – маршрутизация и контроллер в Pagekit

Когда создана базовая структура расширения, следующим шагом, как правило, является регистрация своих контроллеров и добавление пунктов меню в панель управления. Для этого необходимо добавить некоторые дополнительные свойства в определение модуля в вашем index.php.

Добавление контроллера

Контроллер в Pagekit - это простой PHP класс. Любой публичный метод, названный должным образом (например, someAction()) будет смонтирован роутером Pagekit (например, /todo/some).

Создайте файл packages/pagekit/todo/src/Controller/TodoController.php со следюущим кодом:


<?php

namespace Pagekit\Todo\Controller;

/**
* @Access(admin=true)
*/
class TodoController
{

    public function indexAction()
    {
      return "Yay.";    
    }

}

Для ограничения доступа к панели управления и для монтирования контроллера к URL панели управления, мы используем аннотацию @Access(admin=true). Аннотации - это ключевые слова, которые размещаются в блоках комментариев над классом или методом. Подробнее об аннотациях.

Для использования этого контроллера мы должны автозагрузить наше пространство имён и монтировать контроллер к маршруту (route). Добавьте следующие свойства в конфигурационный массив вашего index.php:


// ...

// массив пространств имён для автозагрузки из данных папок
'autoload' => [
        'Pagekit\\Example\\' => 'src'
    ],

// массив маршрутов
    'routes' => [

    // идентификатор для ссылки на маршрут из вашего кода
        '@todo' => [

            // к какому пути должно быть смонтировано это расширение
            'path' => '/todo',

            // какой контроллер монтировать
            'controller' => 'Pagekit\\Todo\\Controller\\TodoController'
        ]
    ],  

    // ...

Если вы не можете получить доступ к вашему маршруту, очистите кэш. Pagekit кэширует маршруты для обеспечения производительности.

Панель отладки

Чтобы увидеть все зарегистрированные маршруты во время разработки, полезно включить панель отладки в системных настройках Pagekit. Панель отладки появляется внизу экрана и показывает все зарегистрированные маршруты, а также другую полезную информацию.

Не забудьте выключить её на живом сайте.

Добавление пункта меню

Для добавления пункта меню используйте свойство menu в определении модуля. Добавьте следующее в index.php:


// ...

'menu' => [
    'example' => [
        'label'  => 'ToDo',
        'icon'  => 'app/system/assets/images/placeholder-icon.svg',
        'url'    => '@todo',
    ]
],
// ...

Обновите бэкенд Pagekit и вы увидиите новый пункт меню, которые ссылается на маршрут @todo.

Это основной воркфлоу контроллеров и маршрутизации. Для рендеринга файлов представления вместо чистых строк, вы должны изменить то, что возвращают action контроллера. Это мы рассмотрим в следующем видеоуроке.

Оригинальная статья:

Подпишитесь на рассылку новостей CMScafe