我不知道为什么我的自动加载器类不能工作
我得到以下错误:
致命错误:在第10行的D:''wamp''www''Opdrachten''MVC eindopdracht''app/controllers''content.php中找不到类"files''testmodel"
自动加载器类:app/core/autoloader.php
class Autoloader
{
protected $directories = array();
private function loadClass($class)
{
if ($class[0] == '''')
{
$class = substr($class, 1);
}
$class = str_replace(array('''', '_'), '/', $class). '.php';
foreach ($this->directories as $directory)
{
if (file_exists($path = $class))
{
require_once $path;
echo $path;
return true;
}
}
}
public function register()
{
spl_autoload_extensions('php');
spl_autoload_register(array($this, 'loadClass'));
}
public function addDirectories($directories)
{
$this->directories = (array) $directories;
}
}
MyIndex.php
use app'core as core;
use app'lib as lib;
include('./app/core/autoloader.php');
$autoloader = new Autoloader();
$autoloader->addDirectories(
array(
'lib',
'controllers',
'core',
'models'
));
$autoloader->register();
$route = new core'Router();
$route->route();
我的测试类app/models/files/testmodal.php
namespace files;
class testmodel
{
public function $user;
public function test()
{
$user = 'pieter';
return $user;
}
}
内容类:在app/controllers/Content.php 中
class content
{
public $title;
public $data;
public function __construct()
{
$this->_model = new files'testmodel();
}
public function home()
{
$this->title = "Home";
$this->data = array('test', 'test123', 'test456');
$user = $this->_model->test();
$this->user = $user;
}
}
我使用以下代码修复了它:
class autoloader
{
protected $directories = array();
private function loadClass($class)
{
if($class[0] == '''')
{
$class = substr($class, 1);
}
$class = str_replace(array('''','_'), '/', $class).'.php';
foreach($this->directories as $directory)
{
if(file_exists($path = $directory.'/'.$class))
{
require_once $path;
return true;
}
}
}
public function register()
{
spl_autoload_extensions('php');
spl_autoload_register(array($this,'loadClass'));
}
public function addDirectories($directories){
$this->directories = (array) $directories;
}
}