• Главная»
  • Уроки»
  • PHP»
  • CLI инструмент для быстрой разработки expressive приложений

CLI инструмент для быстрой разработки expressive приложений

17 апреля

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

С выходом второй версии мы добавили несколько инструментов для создания и управления модулями middleware. Каждый из них представляет собой отдельный скрипт.

Сегодня мы создали единый скрипт для expressive, который упростит процесс миграции, создания модулей, а также прослоек http-interop. Надеемся, что данные инструменты в значительной мере упростят работу с Expressive, что позволит быстро писать многофункциональные приложения.

Установка

Для создания нового проекта нужно выполнить команду:

$ composer create-project zendframework/zend-expressive-skeleton

В результате будет создана структура, включающая все зависимости, в том числе и expressive скрипт.

Если вы хотите внедрить инструмент в уже созданный проект выполните:

$ composer require --dev "zendframework/zend-expressive-tooling:^0.4.1"

Список возможностей

Скрипт expressive поддерживает три команды:

  • migrate:*: необходимо для миграции проекта с Expressive 1 на Expressive 2. В этой статье подробности данного процесса освящены не будут.
  • module:* Создание и подключение нового модуля.
  • middleware:*: Создание класса http-interop.

Создание первого модуля

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

Стартуем:

$ ./vendor/bin/expressive module:create BooksApi

Данная команда выполнит следующие действия:

  • Создаст набор каталогов для модуля BooksApi и поместит в src/BooksApi/.
  • Создаст конфигурационный класс модуля BooksApi\ConfigProvider и поместит в src/BooksApi/src/ConfigProvider.php
  • Включит PSR-4 автозагрузку для модуля BooksApi в composer.json, и выполнить команду composer dump-autoload для обновления зависимостей приложения.
  • Добавит запись для сгенерированного конфига BooksApi\ConfigProvider в файл config/config.php.

На текущий момент у нас есть пустой модуль без кода! Давайте же это исправим!

Создание прослойки

Наша задача вывести список книг, так давайте создадим для этого прослойку:

$ ./vendor/bin/expressive middleware:create "BooksApi\Action\ListBooksAction"

Используйте кавычки!

Поскольку в качестве разделителя пространств имён в PHP используется бэкслеш, который в ОС обычно является способом экранировать спец символов, мы поместим наше значение в кавычки!

В результате работы данной команды будет создан класс BooksApi\Action\ListBooksAction и файл src/BooksApi/src/Action/ListBooksAction.php. Также будет создан каталог src/BooksApi/src/Action/.

Код класса будет выглядеть так:

namespace BooksApi\Action;

use Interop\Http\ServerMiddleware\DelegateInterface;
use Interop\Http\ServerMiddleware\MiddlewareInterface;
use Psr\Http\ServerRequestInterface;

class ListBooksAction implements MiddlewareInterface
{
    /**
     * {@inheritDoc}
     */
    public function process(ServerRequestInterface $request, DelegateInterface $delegate)
    {
        // $response = $delegate->process($request);
    }
}

Теперь можем писать основной код!

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: https://framework.zend.com/blog/2017-04-11-expressive-tooling.html
Перевел: Станислав Протасевич
Урок создан: 17 Апреля 2017
Просмотров: 921
Правила перепечатки


5 последних уроков рубрики "PHP"

^ Наверх ^