输入类型中的PhP名称空间
在我们的发展环境中,我有以下奇怪之处。假设我有两门课 一个位于命名空间\wtf中输入类型中的PhP名称空间,php,zend-framework,io,namespaces,Php,Zend Framework,Io,Namespaces,在我们的发展环境中,我有以下奇怪之处。假设我有两门课 一个位于命名空间\wtf中 namespace \wtf\isWrongHere; class DrStrange { } 我还有一个类,我通过依赖注入传递这个类 namespace \normalPpl; class ThisHasNoLogic { public function __construct(DrStrange $strange){ //here be dragons
namespace \wtf\isWrongHere;
class DrStrange {
}
我还有一个类,我通过依赖注入传递这个类
namespace \normalPpl;
class ThisHasNoLogic {
public function __construct(DrStrange $strange){
//here be dragons
}
}
现在,当我通过以下方式实例化该类时:
$whata = new ThisHasNoLogic(new \wtf\isWrongHere\DrStrange());
在我的dev-debian机器上,我得到了正常的实例,在我们的dev机器(我们的实时服务器的克隆)上,我得到了正常的结果
但在我们的实时机器上,我发现了一个致命错误。这怎么可能?
PHP可捕获致命错误:传递给xxxx的参数2必须是xxxxx的实例,给定的aaaar的实例,在…QQ中调用。
在所有服务器中,它都在接受输入类型,但在live it上,它会告诉我传递的类与所需的不匹配
aka\wtf\isErrorhere\DrStrange不是DrStrange的一个实例,它只是一个简单的例子WTH@12这是我的时刻
以下是规格:
开发机器:
PHP 5.3.3-7+带Suhosin补丁(cli)的挤压14(制造日期:2012年8月6日)
14:18:06)版权所有(c)1997-2009 PHP Group Zend Engine v2.3.0,
版权所有(c)1998-2010 Zend Technologies
Xdebug v2.2.5版权所有(c)2002-2014,作者:德里克·雷特汉斯
Suhosin v0.9.32.1版权所有(c)2007-2010,由Sektionins GmbH提供
试验机:
PHP 5.3.3-7+squeeze15 with Suhosin-Patch (cli) (built: Mar 4 2013 13:11:17)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
Server version: Apache/2.2.16 (Debian)
Server built: Mar 3 2013 12:09:44
现场:
我不知道该怎么做才能让测试服务器像活的一样工作。有人有什么建议吗
更新:
当我使用
使用\wtf\isErrorhere\DrStrange
它起作用了。但是我没有办法在忽略这个错误的测试系统上重现它。我想在不同的机器上复制它。这是我的实际问题,一年多以来一直困扰着我的团队 您必须给dr一个奇怪的名称空间才能让它工作
namespace \normalPpl;
use wtf\isWrongHere\DrStrange;
class ThisHasNoLogic {
public function __constructor(DrStrange $strange){
//here be dragons
}
}
如果您有一个良好的自动加载(请参阅或)Tht是伪代码。我会改正的。(更新:完成:D)Aaa忘了告诉它。已经这样做了,这就解决了问题。实际的问题是我没有办法测试我的代码,想在我的测试机器上复制它(将更新问题)。这个问题,无法测试总是困扰着我们,导致出现不稳定的错误,每两个月就给我们带来一次可怕的后果。你看过我的最后一句话并调查了自动加载解决方案了吗。这是一个最佳实践。是的,我做到了。如前所述,我们知道使用名称空间的解决方案,问题是相同的代码可以在我们的开发和测试服务器上工作,但不能在我们的实时服务器上工作。我怀疑PHP中的设置有所不同,但不知道是什么。你试过了吗?
PHP 5.3.3-7+squeeze15 with Suhosin-Patch (cli) (built: Mar 4 2013 13:11:17)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
Server version: Apache/2.2.16 (Debian)
Server built: Mar 3 2013 12:09:44
namespace \normalPpl;
use wtf\isWrongHere\DrStrange;
class ThisHasNoLogic {
public function __constructor(DrStrange $strange){
//here be dragons
}
}