
Дізнайтесь більше про нові кар'єрні можливості в 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?