您的位置:首页 > 编程语言 > PHP开发

自动载入实战---构造一个PSR-0的简易框架

2016-07-27 07:43 567 查看

PSR-0规范是什么

命名空间与绝对路径一致

类名首字母大写

除入口文件外,其他PHP文件必须只有一个类

建立目录结构

---App
------Controller
---------Home
------------Index.php
---All
------Object.php
------Loader.php
---index.php


上面是本框架的目录结构。

自动载入

\App\Controller\Home\Index.php源代码如下:

<?php
//命名空间与绝对路径一致
namespace Apps\Controller\Home;
Class Index{
public static function test(){
echo __METHOD__;
}
}


\All\Object.php的源代码如下:

<?php
namespace All;
Class Object{
public static function test(){
echo __METHOD__;
}
};


\All\Loader.php是一个自动加载类:

<?php
namespace All;
class Loader{
public static function autoload($className){
$className=str_replace("\\",'/',$className);
//BASEDIR是在index.php中定义的
require BASEDIR.'/'.$className.".php";
}
}


index.php中的源代码如下:

<?php
define("BASEDIR",__DIR__);
//加载Loader.php文件
include BASEDIR.'/Imooc/Loader.php';
//使用此函数注册autoload
spl_autoload_register("\\Imooc\\Loader::autoload");
//会把Apps\Controller\Home\Index传入注册的autoload函数,从而自动加载Apps\Controller\Home\Index这个类
Apps\Controller\Home\Index::test();
Imooc\Object::test();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 框架