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

相关推荐
qq_3729069311 分钟前
如何在 Vuetify 中可靠捕获 Chip 关闭事件(包括键盘触发)
jvm·数据库·python
lcj092466614 分钟前
磁控U位管理系统与DCIM对接实现:筑牢数据中心精细化运维底座
大数据·数据库·人工智能
zopple27 分钟前
ThinkPHP5常见问题及解决方案
python·php·laravel
独自归家的兔28 分钟前
OCPP 1.6 协议详解:StatusNotification 状态通知指令
开发语言·数据库·spring boot·物联网
RNEA ESIO1 小时前
PHP进阶-在Ubuntu上搭建LAMP环境教程
开发语言·ubuntu·php
qq_372154231 小时前
SQL嵌套查询中常见报错排查_语法与权限处理
jvm·数据库·python
0xDevNull1 小时前
MySQL 别名(Alias)指南:从入门到避坑
java·数据库·sql
2401_887724502 小时前
CSS如何设置文字溢出显示省略号_利用text-overflowellipsis
jvm·数据库·python
m0_747854522 小时前
golang如何实现应用启动耗时分析_golang应用启动耗时分析实现思路
jvm·数据库·python
雪碧聊技术2 小时前
下午题_试题二
数据库