2017-04-01 7 views
0

私はネームスペースを使って最初のフレームワークを作成しようとしています。 クラスControllerの拡張に問題があります。 私はPHPでネームスペースを持つクラスを拡張する

Fatal error: Class 'Controller' not found in xxx/src/controllers/index.php on line 3

Aコントローラがあることになります取得:

namespace src\libs; 
class Controller 
{} 

そして、ここではsrc/controllers/

namespace src\controllers; 
use src\libs as libs; 
class Index extends libs\Controller 
{} 

の私のインデックスクラスである私の自動ロード:

function autoLoader($class) 
{ 
    $class = str_replace('\\', '/', $class); 
    if (file_exists('./' . $class . '.php')) { 
     require('./' . $class . '.php'); 
    } else { 
     $class = explode('/', $class); 
     if (file_exists(LIBS . end($class) . '.php')) { 
      require(LIBS . end($class) . '.php'); 
     } else { 
      echo 'Critical error!!'; 
      exit; 
     } 
    } 
} 

LIBS = ./src/libs/

AutLoaderは、クラスControllerのファイルが含まれているため、エラーは発生しません。なぜ私はそれが仕事ではないのか分かりません。

+0

あなた 'Controller'の場所とは何ですか? –

+0

src/libs/Controller.php – demotywatorking

+0

これはコードのデバッグに役立つことを願っています。 –

答えて

0

それは私のために

ファイル正常に動作している:/var/www/html/PHP/Randoms/src/libs/Controller.php

<?php 
namespace src\libs; 
class Controller 
{ 

} 

をファイル:/var/www/html/PHP/Randoms/src/controllers/Index.php

namespace src\controllers; 
use src\libs as libs; 
spl_autoload_register(function($classname){ 
    $classPath=str_replace("\\", "/", $classname); 
    $filePath= dirname(__FILE__)."/../../".$classPath.".php"; 
    if(file_exists($filePath)) 
    { 
     require_once $filePath; 
    } 
}); 
class Index extends libs\Controller 
{} 
+0

Bootstrapにバグがあったので、今は動作しています。私は名前空間で初心者です;) – demotywatorking

関連する問題