Laravel 5.1: разработка пакетa на примере ACL. Часть 2

6Прошу прощения за задержку продолжения. Навалилось много дел… Но сейчас не о них. Продолжим!

Собственно пакеты мы создавать научились, давайте теперь приступим к разработке именно ACL. В первую очередь создадим две миграции.

php artisan make:migration create_roles_table --path=packages/Bitw/Acl/database/migrations и  php artisan make:migration create_users_roles_table --path=packages/Bitw/Acl/database/migrations

Напомню, что Bitw/Acl это мое название «поставщика» и название пакета. У себя вы можете использовать свое.

содержание миграций я сделал такое

Что бы в дальнейшем было удобнее публиковать и настраивать пакет давайте добавим в загрузку провайдера информацию для публикации миграций нашего пакет. Для этого необходимо в сервис-провайдере AclServiceProvider  в метод boot  добавить

ну и давайте сразу добавим в загрузчик сервис-провайдера конфигуратор пакета и пути где искать представления для нашего пакета. Собственно на текущий момент у нас получается вот такой метод boot  в AclServiceProvider

И для полного счастья давайте добавим в метод register в сервис-провайдере подключение загрузки кунфигурации пакета. В результате у нас будет такой метод register  в AclServiceProvider

Т.к. мы сразу заложили конфигуратор для нашего пакета то необходимо создать файл конфигурации.

с содержимым

По поводу содержимого конфигурации мы вернемся чуточку позже. А пока мы опубликуем и выполним миграции для нашего пакета. Для этого выполним в консоли

Превосходно! Конфигурации опубликованы, таблицы созданы! Настало время создать представления для управления ролями.

При разработке данного пакета я буду использовать принцип «Все что не разрешено — запрещено»

Как вы наверно помните в конфигурации мы создали набор параметров  и некоторым, наверно очень интересно для чего это нужно? А сделано это для такого что бы в дальнейшем при работе с пакетом мы могли одной поправкой параметра конфигурации поменять основной макет куда будет вставляться наше представление, а также представления со списком ролей и формой редактирования.

Если кому не понятен данный подход, то пишите в комментариях и если наберется достаточно «интересующихся», то я более детально опишу этот подход

А теперь давайте создадим макет. Внимательный читатель должен был заметить в сервис-провайдере строку  $this->loadViewsFrom(__DIR__ . '/../resources/views/', 'acl');

Вот эта инструкция и указывает Laravel путь где надо искать представления для данного пакета. Создадим основной макет для представлений  $ touch packages/Bitw/Acl/resources/views/layout/default.blade.php  с содержимым

Думаю, что мне не надо вам объяснять как поставить, настроить и использовать  bower  для того чтоб легко и быстро поставить jquery  и bootstrap . Это я тут описывать не буду, но опять же если кому интересно то я могу написать по этой теме отдельную статью.

Так как в представлениях мы должны отображать данные из таблиц то настало время создать для работы с ролями.

$ touch packages/Bitw/Acl/src/Models/Role.php

Собираем представление для списка ролей

Представление для редактирование роли

И все это завершим созданием контроллера  $ touch packages/Bitw/Acl/src/Http/Controllers/AclController.php

Последним штрихом данной части будет изменение маршрутов (routes) данного пакета. В прошлой части мы сделали простеньикий маркрут искрючительно для проверки работоспособности пакета. Теперь же нам необходимо реализовать более полноценные маршруты. Необходимо открыть  packages/Bitw/Acl/src/Http/routes.php  и заменить все содержимое на

и если вы все сделали правильно то в браузере вы увидите

2015-10-08 03-03-17 2015-10-08 03-03-04 Скриншот экрана.png

На этом я закончу эту часть. В следующей части мы реализуем регистрацию и авторизацию, а так же присвоение роли или набора ролей пользователям.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *