PHP 设计模式三 PSR-0规范

198 阅读2分钟

「这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战

课程背景

  • 最近完成一个项目 对于代码分层有了一丢丢了解 但是架构设计合理性上存在问题
  • 万物看本质基本功硬 底层知识扎实才能写出更优质的代码 才能走得更远
  • 作为努力奔跑的程序员 又一次的去温习 思考 设计模式等基础的php知识
  • 因为掘金粑粑有奖励,所以把学习的笔记整理记录并分享了出来。

正文开始

上一章节中用到了PSR-0规范,这里进行讲解。所谓规范就是大家都遵守的规则,这样就会避免很多的问题。比如说交通规则,类似的东西

PSR-0规范内容

  • 命名空间必须与绝对路径一致
  • 类名首字母必须大写
  • 除入口文件外,其他 .php 文件必须只有一个类 很明显,上一节中的spl_autoload_register方法也是根据这个规则做的,因为返回的$class参数携带了命名空间的信息,这样只要我们把目录跟命名空间保持一致的话,就能通过命名空间找到相应的 .php文件了。 基本所有的框架都是这么做的,所以我们在开始学习ThinkPHP Laravel等框架的时候,都是先建目录,然后再根据目录在文件中写命名空间,有时候写错字母或者大小写就死活找不到文件,就是这个原因。

根据规范写一个基础的 自动加载类的架构

1 先建立目录结构

image.png 目录结构决定了 文件的命名空间,所以每一个文件除了 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';
    }
}