我已经使用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