Download the PHP package grigor/yii2-generator without Composer
On this page you can find all versions of the php package grigor/yii2-generator. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package yii2-generator
yii2-generator
Генератор настроек rest api на основе аннотаций для расширения yii2-rest. По сути это утилита которая преобразует аннотации в коде в настройки которые нужны расширению yii2-rest. Она может использоваться в консоли и отдельно от нее, в зависимости от потребностей.
Установка
Предпочтительный способ установки этого расширения - через composer.
Запустите команду
или добавьте в composer.json
Процесс настройки описан в расширении yii2-rest.
Система имеет две консольные команды
Команда generator/api/create сканирует проект и ищет настройки в аннотациях, за тем конвертирует их для yii2-rest. В параметре можно указать путь сканируемой папки, тогда будет сканироваться не весь проект, а только указанная папка.
Вывод будет примерно таким:
Для того, чтобы аннотации работали в классе который их содержит нужно использовать:
Пример аннотации:
Все настройки в аннотациях
@Route
url - адрес по который будет отрабатывать
methods - указываются методы GET POST PUT и т.д
alias - т.к. контроллеров как таковых нет для генерации url в коде нужно указывать такой alias используется этот алиас при генерации ссылок в коде Yii::$app->urlManager->createUrl(["phones/index"]); используется в штатном режиме.
@Serializer
Если вы хотите как-то по другому сериализовать возвращаемый объект можете указать калсс сериализатора. см. подробности yii2-rest.
@Permission
Если вам нужно ограничить доступ, то можно перечислить разрешения и роли.
@Context
Ограничитель области действия, можно так сказать, (типа как findModel). Вернуть он может массив с недостающими в отрабатывающем методе параметрами. Например у нас есть метод public function getProfile(string $id) а api-шка должна отдавать профиль текущего юзера. Т.е. для пользователя системы нет параметра id получается url примерно такой /v2/user/profile метод GET и все, но мы используем public function getProfile(string $id) где нужно передать id user-а в данном случае текущего. см. подробнее yii2-rest.
@Response
Если нужно вернуть статус код отличающийся от 200, то можно использовать такую аннотацию.
Настройки
Команда generator/api/dev сканирует папки указанные в настройках приложения например в common/config/params.php:
При разработке удобно будет после каждого изменения аннотаций не набирать команды в консоли, для этого можно произвести следующие манипуляции с файлом index.php в папке api/web, именно до запуска приложения добавить такую строчку grigor\generator\tools\DeveloperTool::beforeAppRunScanDevDirectories($config); этот метод перегенерирует настройки перед запуском приложения. Все это дело может выглядеть следующим образом:
Данные манипуляции можно использовать только в момент разработки, не забудьте на продакшене удалить эту строчку или настройте environments. Хоть система работает быстро, если у вас очень много методов c api (переваливает за тысячи :)) и начинает подтормаживать, то в конфиге можно сократить кол-во сканируемых папок (переключиться на текущую).
Тестировать
All versions of yii2-generator with dependencies
yiisoft/yii2 Version ~2.0.0
psr/container Version ^1.0.0
grigor/scanner Version ~1.0.1
doctrine/annotations Version ^1.10.4
ramsey/uuid Version ^4.1