Я использовал phpsh какое-то время, и в прошлом он отлично работал. Но его поддержка пространства имен все еще не очень хороша, и это может быть довольно неприятно.
Такие вещи, как \Somespace\Someclass::someStaticFunction()
, не работают, не отключая проверку того, существует или нет метод, что приводит к частым фатальным ошибкам при опечатках, которые reset ваша среда.
Существует несколько PHP REPL, включая встроенную оболочку PHP (php -a
), что ужасно использовать.
Кто-нибудь знает альтернативу или, возможно, phpsh-fork с надлежащей поддержкой пространства имен? Или, может быть, простое исправление конфигурации, которое я забыл...
пример:
Этот тестовый файл:
<?
namespace testing;
function echoSome(){
echo 'Something';
}
\testing\echoSome();
производит этот вывод в phpsh (как ожидалось)
php> include '/path/test.php';
Something
php>
Но повторная попытка повторного вызова не работает:
php> \testing\echoSome();
Not executing input: Possible call to undefined function echoSome()
See /etc/phpsh/config.sample to disable UndefinedFunctionCheck.
без пространств имен функция все еще доступна:
<?
function echoSome(){
echo 'Something';
}
echoSome();
в phpsh:
php> include '/path/test.php';
Something
и вызов все еще работает:
php> echoSome();
Something