我使用phpsh已经有一段时间了,过去效果很好。但是它的命名空间支持仍然不是很好,这可能非常令人沮丧。
如果不禁用检查方法是否存在,诸如此类\Somespace\Someclass::someStaticFunction()
的事情将无法正常工作,这会导致重置环境的拼写错误频繁出现致命错误。
那里有多个 PHP REPL,包括 PHP 内置的 shell ( 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