我看过这些,
我可以改变,但在我的 MV* 结构中,我有:
/models
customer.class.php
order.class.php
/controllers
customer.controller.php
order.controller.php
/views
...
在他们的实际课程中,
class CustomerController {}
class OrderController{}
class CustomerModel{}
class OrderModel{}
我试图与名称保持一致。如果我没有添加类名后缀(Controller、Model),我将无法加载该类,因为那是在重新声明。
如果我保留我的类的名称,自动加载会失败,因为它会寻找一个名为
CustomerController
当文件名是真的,
customer.controller.php
我唯一的方法是(无顺序):
- 使用create_alias
- 重命名我的文件(customer.model.php 到 customermodel.php)
- 重命名我的课程
- 使用正则表达式
- 使用包含文件的引导程序(
include
,require_once
等)
?
示例代码,
function model_autoloader($class) {
include MODEL_PATH . $class . '.model.php';
}
spl_autoload_register('model_autoloader');
看来我必须重命名文件,
http://www.php-fig.org/psr/psr-4/
“终止类名对应于以 .php 结尾的文件名。文件名必须与终止类名的大小写匹配。”