Как превратить любой PHP-код в консольное приложение: создаем аналог библиотеки Python Fire от Google
Мы решили рассказать о том, как написать аналог библиотеки «Python Fire» от Google для PHP и других языков программирования. Оказалось, что PHP Fire просто
4К открытий4К показов
Вы наверняка слышали про 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.
4К открытий4К показов