PHP命名空间结合自动加载spl_autoload_register使用

 1、控制器命名空间controller/index.php

<?php
namespace app\admin\controller;
class index {
    public  function test(){
         echo "运行\admin\controller\index-> test()";
    }
}

2、模型命名空间model/index.php

<?php
namespace app\admin\model;
class test {
    public  function getTable(){
        echo "testModel";
    }
}

3、自动加载autoload.php 

<?php
spl_autoload_register(function ($className) {
    // 将命名空间分隔符(\)替换为目录分隔符(/)
    $className = str_replace('\\', '/', $className);
    // 拼接类文件路径
    $filePath = __DIR__ . '/' . $className . '.php';
    // 如果文件存在,则包含该文件
    if (file_exists($filePath)) {
        include_once $filePath;
    }
});

4、控制器和模型调用 

<?php
include 'autoload.php';
// 使用类
use app\admin\controller\index as indexController;
use app\admin\model\test as testModel;
//控制器
$obj = new indexController();
$obj->test();
//模型
$obj = new testModel();
$obj->getTable();

猜你喜欢

转载自blog.csdn.net/weixin_39934453/article/details/132366206