「这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战」
课程背景
- 最近完成一个项目 对于代码分层有了一丢丢了解 但是架构设计合理性上存在问题
万物看本质基本功硬 底层知识扎实才能写出更优质的代码 才能走得更远- 作为努力奔跑的程序员 又一次的去温习 思考 设计模式等基础的php知识
- 因为掘金粑粑有奖励,所以把学习的笔记整理记录并分享了出来。
正文开始
上一章节中用到了PSR-0规范,这里进行讲解。所谓规范就是大家都遵守的规则,这样就会避免很多的问题。比如说交通规则,类似的东西
PSR-0规范内容
- 命名空间必须与绝对路径一致
- 类名首字母必须大写
- 除入口文件外,其他 .php 文件必须只有一个类 很明显,上一节中的spl_autoload_register方法也是根据这个规则做的,因为返回的$class参数携带了命名空间的信息,这样只要我们把目录跟命名空间保持一致的话,就能通过命名空间找到相应的 .php文件了。 基本所有的框架都是这么做的,所以我们在开始学习ThinkPHP Laravel等框架的时候,都是先建目录,然后再根据目录在文件中写命名空间,有时候写错字母或者大小写就死活找不到文件,就是这个原因。
根据规范写一个基础的 自动加载类的架构
1 先建立目录结构
目录结构决定了 文件的命名空间,所以每一个文件除了 index.php文件中根据目录定义命名空间,这样自动加载才能找得到。
Obj.php
<?php
namespace Liiy;
class Obj{
static function test(){
echo 'obj class test method';
}
}
Index.php文件
<?php
namespace App\Controller;
class Index{
static function test(){
echo 'index class test method';
}
}