An open API service indexing awesome lists of open source software.

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

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)