PHP で Namespace をいじっていて、それを機能させようとしていましたが、失敗しました
コード例を示します。
test\views\classes\MainController.php
<?php
namespace test\views\classes;
class MainController
{
public function echoData()
{
echo 'ECHOD';
}
}
test\views\index.php
<?php
require_once '..\autoloader\autoloader.php';
use test\views\classes\MainController;
$cont = new MainController();
$cont->echoData();
test\autoloader\autoloader.php
<?php
spl_autoload_register(null, FALSE);
spl_autoload_extensions('.php');
function classLoader($class)
{
$fileName = strtolower($class) . '.php';
$file = 'classes/' . $fileName;
if(!file_exists($file))
{
return FALSE;
}
include $file;
}
spl_autoload_register('classLoader');
エラーをスローします:
Fatal error: Class 'test\views\classes\MainController' not found in ..\test\views\index.php on line 6
私は何かが欠けています!
編集: index.php と maincontroller.php の両方が同じディレクトリにあり、オートローダーを使用せずに require_once('maincontroller.php'); を使用すると、コードは正常に機能します。それらが異なるディレクトリにあり、オートローダー機能を使用している場合は機能しません。誰でもこれを整理できますか。
ありがとう