命名空间与自动加载(以laravel框架举例)

命名空间

1.namespace 必须是文件的第一句。前面可以有注释
2.namespace 定义命名空间时。最前面不能有 \
3.use导入命名空间时。前面可以有\ 但不建议加
4.定义和导入命名空间时,统一前面不加\
5.所有类均由use导入。有冲突就as一下
6.禁止使用相对命名空间
7.命名空间建议和目录一致。但也可以弄一套跟目录结构不一样的命名空间,但是容易混乱,不方便管理

自动加载

_autoload

当new一个类的对象时,如果当前文件中木有这个类,则自动触发_autoload()

function  __autoload($class){
     $classpath =  "{$class}.php";
     if(file_exist($classpath)){
        include_once($classpath);
     }else{
        echo $classpath."not found";
     }
}

spl_autoload_register

自定义函数替代__autoload()
使用方法跟__autoload()相似

function myAutoload($class){
    $classpath = "{$classpath}.php";
    if(file_exists($classpath)){
        include_once($classpath);
    }else{
        echo $classpath."not found";
   }
   
}
spl_autoload_register("myAutoload");
1.当文件中同时出现__autoload 和 spl_autoload_register.以spl_autoload_register为准
2.spl_autoload_register可多次调用。注册的多个函数以事件的先后顺序进行调用

你可能感兴趣的:(命名空间与自动加载(以laravel框架举例))