「这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战」
课程背景
- 最近完成一个项目 对于代码分层有了一丢丢了解 但是架构设计合理性上存在问题
万物看本质基本功硬 底层知识扎实才能写出更优质的代码 才能走得更远- 作为努力奔跑的程序员 又一次的去温习 思考 设计模式等基础的php知识
- 因为掘金粑粑有奖励,所以把学习的笔记整理记录并分享了出来。
正文开始
上一章节中我们介绍了PSR-0规范,并尝试使用自动加载来编写一个基础框架。我们在上一节中已经根据PSR-0规范建立好了目录结构,这里我们继续完善,实现类的自动加载的功能。 1 index.php入口文件中继续完善
<?php
\App\Controller\Index::test(); //执行方法
\Liiy\Obj::test();
2 下面我们继续编写自动加载类 \Liiy\Loader.php 指定了自动加载的方法
<?php
namespace Liiy;
class Loader{
public static function autoload($class){
require BASE_DIR . '\\' . $class .'.php';
}
}
3 然后再index.php中编写代码指定
<?php
define("BASE_DIR",__DIR__); //文件基础目录
require BASE_DIR . '\Liiy\Loader.php'; //加载自动加载类
spl_autoload_register("\Liiy\Loader::autoload"); //指定自动加载方法
\App\Controller\Index::test(); //执行方法
\Liiy\Obj::test();
4 此时当我们访问入口文件 index.php的时候
两个类都成功加载了,并打印出信息
这样我们就完成了一个能自动加载类的基础框架。而且这是主流的php框架通用的一个做法,只是我们现在这个Demo很基础,没有处理 composer文件的加载。真正的主流框架业务会比我们所编写的基础框架更复杂的多。但是原理都是这个原理。