Как превратить любой PHP-код в консольное приложение: создаем аналог библиотеки Python Fire от Google

Как превратить любой PHP-код в консольное приложение: создаем аналог библиотеки Python Fire от Google

Вы наверняка слышали про open source библиотеку Python Fire, представленную Google 2 марта — она автоматически создаёт интерфейсы командной строки (CLI). Если вы до сих пор не слышали об этом, обязательно прочтите нашу новость, где мы объяснили принципы работы Python Fire и привели несколько примеров кода.

Сейчас давайте разберём то, как просто создать аналог этой библиотеки для PHP. Дело в том, что хоть разработка Google и была воспринята сообществом как инновация, создание её базового функционала является тривиальной задачей.

Реализация

Для создания «PHP Fire» нам понадобится функция eval из стандартной библиотеки и глобальная переменная $argv. Для тех, кто не знаком с ними мы приводим полезные ссылки на документацию:

В итоге наш код будет выглядеть очень просто:

Примеры работы

Процедурный стиль

Содержимое file.php:

Вызываем его из командной строки:

В качестве ответа мы получим число 5.

Объектный стиль

Предположим, что в file.php описывается или импортируется какой-либо класс:

В такой ситуации консольный вызов будет иметь следующий вид:

Заключение

Таким образом, вместо установки и подключения библиотеки Python Fire от Google, вы можете добавить в конец файла одну единственную строчку и получить аналогичный результат.

Более того, этот способ доступен не только для PHP: функция eval присутствует и в других языках программирования, например, она есть в JavaScript.

Тарас Сереванн, эксперт в области IT магии