2016-08-04 69 views
0

我是新的PHP命名空间,我遇到一个问题。这里是我的代码简历:命名空间A - floder A /子文件夹B-子命名空间B?

在文件夹控制器

namespace controller; 
require_once 'templates/Singleton.php'; 

class OrderConfirmationController extends Singleton { 
    ... 
} 

在子文件夹控制器/模板

// class out of any namespace 
class Singleton { 
    ... 
} 

我一直有一个错误消息,即使我使用\ Singleton扩展OrderConfirmationController。

我不知道为什么。

回答

0

确保在扩展单例类时包含名称空间引用。一个简单的方法是使用控制器顶部的use语句和适当的别名。

use \SingletonNamespace\Singleton as Singleton; 

或者

class OrderConfirmationController extends NameSpace\Singleton { 
+0

谢谢您的回答。问题是我还不能在一个特定的命名空间中添加Singleton,因为对于我来说,改变我所有的类都是很多工作。 Singleton不在任何名称空间中,并且如果我理解的话,应该是在Global名称空间中。但是当我在'extends \ Singleton'中使用反斜杠时,会出现错误。 – Fred

+0

实际上'spl_autoload_register'被调用,似乎寻找'controller \ Singleton'类,它不存在,因为不在'controller'命名空间中;只在子文件夹**模板**。从**控制器**文件夹中。 – Fred

相关问题