2016-08-04 102 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

相關問題