Як перетворити будь-який PHP-код у консольний додаток: створюємо аналог бібліотеки Python Fire від Google


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

Ви напевно чули про open source бібліотеку Python Fire, представлену Google 2 березня – вона автоматично створює інтерфейси командного рядка (CLI). Якщо Ви ще не чули про це, обов’язково прочитайте нашу новину, де ми пояснили принципи роботи Python Fire і навели декілька прикладів коду.

Зараз давайте розглянемо те, як просто створити аналог цієї бібліотеки для PHP. Справа в тому, що хоч розробка Google і була сприйнята співтовариством як інновація, створення її базового функціонала є тривіальною задачею.

Реалізація

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

У результаті наш код виглядатиме дуже просто:

eval ($argv[1].';');

Приклади роботи

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

Вміст file.php:

function sum ($a, $b){ echo $a + $b;}
eval ($argv[1].';');

Викликаємо його з командного рядка:

php file.php "sum (2, 3) "

Як відповіді ми отримаємо число 5.

Об’єктний стиль

Припустимо, що в file.php описується або імпортується який-небудь клас:

class Programmer{ public function write ($code) { echo $code; }}eval ($argv[1].';');

У такій ситуації консольний виклик матиме наступний вигляд:

php file.php " (new Programmer) ->write ('hello') "

Висновок

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

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

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *