2016-08-04 16 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 { 
    ... 
} 

私はいつもでもI場合はエラーメッセージを持っていますOrderConfirmationControllerを\ Singletonで拡張します。

理由をよく理解できません。

答えて

0

シングルトンクラスを拡張するときに名前空間の参照を含めるようにしてください。簡単な方法は、コントローラーの上部にあるuseステートメントと適切なエイリアスです。

use \SingletonNamespace\Singleton as Singleton; 

または

あなたの答えのための
class OrderConfirmationController extends NameSpace\Singleton { 
+0

感謝。問題は、特定の名前空間にまだシングルトンを追加できないということです。これは、すべてのクラスを変更するための多くの作業になるためです。シングルトンはどの名前空間からも外れています。私がよく理解していれば、グローバル名前空間内にあるはずです。しかし、 'extends \ Singleton'でバックスラッシュを使用すると、エラーが発生します。 – Fred

+0

実際に 'spl_autoload_register'が呼び出され、' controller'名前空間にないために存在しない 'controller \ Singleton'クラスを探すようです。 **コントローラ**フォルダからサブフォルダ**テンプレート**をダウンロードしてください。 – Fred

関連する問題