#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__));//定义根目录