PHP自己的框架2.0版本目录结构和命名空间自动加载类(重构篇一)

目录

1、目录结构演示效果

2、搭建目录结构,以及入口public->index.php

3、引入core下面core->base.php

4、自动加载实现core->fm->autoload.php

5、框架运行文件core->fm->core.php

6、最终运行index.php结果


1、目录结构演示效果

2、搭建目录结构,以及入口public->index.php

php 复制代码
<?php
namespace fm;
// 加载基础文件
require __DIR__ . '/../core/base.php';
core::run();

3、引入core下面core->base.php

php 复制代码
<?php
namespace fm;
require __DIR__.'/fm/autoload.php';

autoload::register();

4、自动加载实现core->fm->autoload.php

php 复制代码
<?php
namespace fm;
class autoload{
    public static  function register(){
        spl_autoload_register(array(__CLASS__,'_autoload'));
    }
    public static function _autoload($className){
        $path=dirname(dirname(str_replace('\\','//',__FILE__)));
        $file=$path.'/'.$className.'.php';
        if(is_file($file))  include $file;
    }

}

5、框架运行文件core->fm->core.php

php 复制代码
<?php
namespace fm;
class core{
    public static function run(){
      echo '框架运行中';
    }

}

6、最终运行index.php结果

localhost/frame/public/index.php

相关推荐
IvorySQL2 分钟前
PostgreSQL 日报| relchecks 溢出导致表无法删除(9 月 28 日)
数据库·人工智能·ai·postgresql·区块链
帷幕落秋6 分钟前
Redis主从复制
运维·数据库
寺中人7 分钟前
Xshell 完全入门指南:从安装到实战,远程连接+文件传输+会话管理全拆解
git·ssh·github·php·远程连接·xshell·运维工具
帷幕落秋9 分钟前
Mysql主从复制
运维·数据库
暖核14 分钟前
MySQL 高级运维核心:备份恢复、主从复制与 MHA 高可用复习总结
运维·数据库·mysql
hengdonghui2 小时前
Writeup 4 津门杯 2021 Web hate_php
php·web·ctf·通配符
加油yx2 小时前
数据库基础
数据库
天桥下的卖艺者2 小时前
chrals.CTI函数升级版发布,增加了CTI衍生的脂肪指数提取
数据库·r语言
帷幕落秋3 小时前
Mysql多实例——一个服务器多个mysql服务
运维·数据库
帷幕落秋3 小时前
Mysql备份
运维·数据库