https://github.com/yngc0der/bitrix-cli
"symfony/console" integration
https://github.com/yngc0der/bitrix-cli
bitrix bitrix-cms bitrix-module bitrix24
Last synced: 3 months ago
JSON representation
"symfony/console" integration
- Host: GitHub
- URL: https://github.com/yngc0der/bitrix-cli
- Owner: yngc0der
- License: mit
- Created: 2020-02-11T13:33:12.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-07-18T07:51:13.000Z (almost 4 years ago)
- Last Synced: 2024-05-03T17:26:27.850Z (almost 2 years ago)
- Topics: bitrix, bitrix-cms, bitrix-module, bitrix24
- Language: PHP
- Homepage:
- Size: 15.6 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Требования
| PHP | Bitrix (main) |
|-----------|---------------|
| \>= 7.1.3 | \>= 14.00.00 |
# Установка
Если вы используете Composer не в корне проекта, то необходимо сконфигурировать
директорию для установки модулей.
Например, если файл **composer.json** находится в директории **/local/**:
```json
...
"extra": {
"bitrix-dir": "../bitrix"
},
...
```
После этого необходимо выполнить команду `composer require yngc0der/bitrix-cli`,
и выполнить регистрацию модуля в Bitrix через админку.
После установки создасться точка входа для консольных команд - `bitrix/tools/cli`.
# Использование
Пакет позволяет использовать **symfony/console** в контексте Bitrix Framework.
Создание команд детально описано в документации (https://symfony.com/doc/current/console.html)
Для получения короткой справки и списка доступных команд выполните в консоли
`php bitrix/tools/cli`
Запустить нужную команду можно, выполнив
`php bitrix/tools/cli command args`. Например, `php bitrix/tools/cli orm:annotate -c -m main`
## Регистрация команд через подписку на событие
Для регистрации собственной команды нужно подписаться на событие **OnCommandsLoad**
модуля **yngc0der.cli**
```php
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'yngc0der.cli',
'OnCommandsLoad',
function (\Bitrix\Main\Event $event) {
$result = new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::SUCCESS,
[
new \Bitrix\Main\Cli\OrmAnnotateCommand(), // instance of Symfony\Component\Console\Command\Command
]
);
return $result;
}
);
```