https://github.com/krypt0nn/consoleargs
Менеджер аргументов консоли для PHP 7.4
https://github.com/krypt0nn/consoleargs
cli php
Last synced: 21 days ago
JSON representation
Менеджер аргументов консоли для PHP 7.4
- Host: GitHub
- URL: https://github.com/krypt0nn/consoleargs
- Owner: krypt0nn
- License: gpl-3.0
- Created: 2019-05-22T12:22:09.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2021-06-04T21:05:51.000Z (about 5 years ago)
- Last Synced: 2025-01-06T06:43:35.575Z (over 1 year ago)
- Topics: cli, php
- Language: PHP
- Homepage:
- Size: 43 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
🚀 ConsoleArgs
**ConsoleArgs** - библиотека для реализации работы с аргументами командной строки для PHP 7.4
### Установка
```
composer require krypt0nn/consoleargs
```
### Примеры работы
```php
execute (array_slice ($argv, 1));
// array_slice нужен чтобы отрезать аргумент вызова файла из консоли
```
---
```
php index.php hello
```
Вывод:
```
Hello, World!
```
### Работа с аргументами
Для получения списка аргументов, переданных команде, вы можете добавить параметр анонимной функции команде:
```php
execute (array_slice ($argv, 1));
```
---
```
php index.php write kek lol arbidol
```
Вывод:
```
kek lol arbidol
```
### Работа с параметрами
Функционал параметров предоставляет объект **Param**, флагов - объект **Flag**:
```php
addParams ([
// Первый аргумент - название параметра
// Второй аргумент (не обязательный) - значение по умолчанию
// Третий аргумент (не обязательный) - обязательно ли нужно использовать данный параметр
new Param ('--glue', ' '),
// Аргумент - название флага
// "-b64" - алиас флага (альтернативное название)
(new Flag ('--base64'))->addAlias ('-b64')
])
], new DefaultCommand (function ($args)
{
echo 'Command "'. $args[0] .'" not founded. You should write correct command name';
})))->execute (array_slice ($argv, 1));
```
---
```
php index.php write kek lol arbidol
```
Вывод:
```
(исключение, т.к. не был использован параметр --glue)
```
---
```
php index.php write kek lol arbidol --glue ", "
```
Вывод:
```
kek, lol, arbidol
```
---
```
php index.php write kek lol arbidol --glue ", " --base64
```
Вывод:
```
a2VrLCBsb2wsIGFyYmlkb2w=
```
### Разветвление команд
В анонимной функции команды вы можете создать новый менеджер команд с новыми командами. Тем самым вы можете сделать команды для... команды... да...
```php
execute ($args);
}))->addAlias ('alias_test')
]))->execute (array_slice ($argv, 1));
```
---
```
php index.php test 1
```
Вывод:
```
Enfesto Studio
```
---
```
php index.php alias_test 2
```
Вывод:
```
Every Software
```
### Команда помощи
```php
setDescription ('Output entered message')
->addParams ([
(new Param ('--glue', ' '))->addAlias ('-g')
])
]);
$manager
->addCommand (new HelpCommand ($manager))
->execute (array_slice ($argv, 1));
```
---
```
php index.php help
```
Вывод:
```
write — Output entered message
Not required:
--glue " " (-g)
```
### Локализации
За локализации отвечает объект **Locale**. Подробнее - см. содержимое класса
Автор: [Подвирный Никита](https://vk.com/technomindlp). Специально для [Enfesto Studio Group](https://vk.com/hphp_convertation)