我是命名空间的新手,我想在SplClassLoader的方法中自动加载。我已经尝试过搜索很多教程但没有太多运气。也许你们可以帮助我实现这个目标吗?
目录结构
- Oram
- Lib
- Classes
Test.php
- index.php
- SplClassLoader.php
test.php的
<?php
namespace Oram\Lib\Classes;
class Test
{
function __construct()
{
echo "Test Class loaded";
}
}
的index.php
<?php
require_once('SplClassLoader.php');
$loader = new SplClassLoader('Lib', 'Oram\Lib');
$loader->register();
use Oram\Lib\Classes\Test;
$test = new Test();
这一切都在localhost / website / btw里面,因为我在WAMP上运行它。
Fatal error: Class 'Oram\Lib\Classes\Test' not found in C:\Program Files\wamp\www\website\index.php on line 10
任何建议或者如果有人可以指点我一些阅读资源来解决这个问题会很棒。
谢谢
答案 0 :(得分:1)
修改强> 我有它! 我认为你必须将反斜杠(\)更改为斜杠(/)。
<?php
require_once('SplClassLoader.php');
$loader = new SplClassLoader('Lib', 'Oram/Lib');
$loader->register();
use Oram\Lib\Classes\Test;
$test = new Test();
?>
Take a look on [this][1].
试试吧。我在命名空间之前添加了一个\。这可能就是答案:
$loader = new SplClassLoader('Lib', '\Oram\Lib');