我这样做
spl_autoload_register();
我有一个名为libs的文件夹,我的所有文件都是这样的:user.php / orm.php等,每个类里面都有我这样的文件
namespace libs;
class User { }
像这样调用类
$app = new libs\User;
这似乎有用,但是如果我想要自动加载一个不仅仅在libs文件夹里面的类,我会怎么做,例如里面的内容:
libs / example / example.php
我该如何自动加载该课程?
答案 0 :(得分:1)
如果类定义和命名空间看起来像这样......
namespace libs\example;
class Example { ... }
自动加载器应该能够找到它。
请注意,默认的spl_autoload
会降低命名空间和类名称的大小,因此您的文件名和路径都应该是小写的(您似乎已经开始这样做了,但我只是想提到它)。
另请注意,为保持一致性,您还应设置相应的自动加载扩展名,例如
spl_autoload_extensions('.php');
spl_autoload_register();
答案 1 :(得分:0)
只要命名空间一致,默认的SPL自动加载器就会找到它。使用您的示例,类的名称应为example
,它应位于libs\example
命名空间中,包含它的文件应为libs/example/example.php
。