Я уже некоторое время использую phpsh , и в прошлом он отлично работал. Но его поддержка пространства имен все еще не очень хороша, и это может быть довольно неприятно.
Такие вещи, как \Somespace\Someclass::someStaticFunction()
, не работают без отключения проверки существования метода, что приводит к частым фатальным ошибкам при опечатках, которые перезагружают вашу среду.
Существует несколько PHP REPL, в том числе PHP, собранный -в оболочке (php -a
)., который ужасен в использовании.
Кто-нибудь знает альтернативу или, возможно, ответвление phpsh -с правильной поддержкой пространства имен? Или, возможно, простое исправление конфигурации, которое я упустил...
пример:
Этот тестовый файл:
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