规范:
1. 命名空间必须与绝对路径一致。
2. 类名首字母必须大写。
3. 除入口文件外,其他”.php”文件必须是一个类。
实例代码结构:
t3.php:
<?php
namespace m1\m2;
class T3{
static function t3(){
echo "t3";
}
}
t4.php
<?php
namespace m3;
class T4{
static function t4(){
echo "t4";
}
}
t5.php:在本实例中autoload函数接受到的$class分别为m1\m2\T3和m3\T4,也就是说,加载类时包含包名;为了其通用性,将分隔符转换为正斜杠/;并且autoload函数的名称可以自定义,只需在t1.php中将引入的的脚本方法写成自定义的即可;
<?php
namespace m3;
class T5{
static function autoload($class){
require BASE."/".str_replace("\\","/",$class).".php";
}
}
t1.php:BASE的E:/xampp1/htdocs/Design_Patterns,即当前脚本所在的目录;在自动加载的框架中,autoload函数所在的脚本需要手动加载
<?php
define("BASE",str_replace("\\","/",__DIR__));
include_once BASE."/m3/t5.php";
spl_autoload_register('\\m3\\T5::autoload');
m1\m2\T3::t3();
m3\T4::t4();