通过练习书写blog 进一步了解PHP 和 MVC方式
github 喜欢的给个star
-
分析需求
mvc方式实现个人blog
- 项目单入口
- 类以命名空间的方式引入
-
知识点
-
spl_autoload_register
spl_autoload_register
欲注册的自动装载函数。如果没有提供任何参数,则自动注册 autoload 的默认实现函数spl_autoload()。根据函数特性, 编写Loader类, 这里看出命名空间的名称和文件夹的名称有很大关系, 所以我这里采用的是命名空间名称和文件夹名称一样的,方便引入,其他方式也不是不行,具体引入标准看PHP PSR 代码规范
private static function findFile($class) { // 获取顶层命名空间 $vendor = substr($class, 0, strpos($class, '\\')); // 获取文件目录,默认命名空间就是目录 $filepath = substr($class, strlen($vendor)) . '.php'; return strtr(ROOT_PATH . $filepath, '\\', DIRECTORY_SEPARATOR); }
- trait的使用
原谅我也是php小白,之前没怎么接触果trait这个关键字特性,具体的trait特性
blog中我新建了一个ViewTrait, 方便控制器里引入获取到要渲染的模版
trait ViewTrait { protected $posts; public function getView($_name, $data) { $this->posts = $data; // 此处必须先赋值,否则模版里获取不到变量 require ROOT_PATH.'Views/'.$_name.'.php'; } }
- db的使用
本次开发使用的是mysql PDO
具体的不细说了。
-
网友评论