Комментарии 4
Выглядит очень интересно, спасибо!
Хочется только сделать одно маленькое добавление. Было несколько попыток объявить execution operator (обратные апосторофы) устаревшим. И одной из причин как раз было то, что он довольно сложно читается. Что видно даже на примере данной статьи, поскольку эти кавычки были восприняты, как форматирование, и в статье выводится command
, а не `command` . На мой взгляд, явный вызов с помощью shell_exec()
всё-таки смотрится гораздо лучше.
А будет ли работать на Windows?
Может для универсальности использовать сам php, только без флага disable-functions вместо bash. Например php -r 'echo time();'
У меня Mac, под Windows не тестировал. Скорее всего реализации работать не будут, а отключение функций будет.
Не отключать функции не получится. Цель отключения – это заменить функцию из глобального неймспейса на свою подмену. Иначе все вызовы \time()
будут всегда идти в оригинальную функцию.
А реализовать саму функцию через `php -r 'echo time()';` – хорошая идея.
Подмена функций стандартной библиотеки PHP с помощью xepozz/internal-mocker