#PSR-0规范约定
- 命名空间必须与绝对路径一致(目录名)
- 类名首字母必须大写
- 除入口文件外,其他“.php"文件必须只有一个类,不能有其他科执行代码
- 类名和文件名绝对一致
#一个符合规范的基础框架
- 全部使用命名空间
- 所有php (类)文件必须自动载入,不能有include/require
- 只有一个单一入口index.php
- 类名和文件名保持一致
###目录架构
-
类库文件夹(.php文件)
-
逻辑业务文件夹(contorller)
-
入口文件
#自定载入类
index.php
define('__ROOT__',__DIR__);//定义根目录
include __ROOT__.'/lib/Loader.php';//引入自定加载类,可以写为函数
spl_autoload_register('\\lib\\Loader::autoload');
App\Home\Controller\Index::test();//类文件和方法
Loader.php
namespace Lib;
class Loader{
static function autoload($class)
{
注意 $class是包含命名空间的一个字符串
example:
require __DIR__.'/'.str_replace('\\', '/', $class).'.php';
}
}
##类名与实际的磁盘文件映射规则的实现。 require DIR.'/'.str_replace('\', '/', $class).'.php';
命名空间是反斜线,引入路径是正斜线,所以要做字符串替换
##定义根目录
define('__ROOT__',str_replace('\\','/' ,__DIR__));//定义根目录