构建一个基础的PHP框架知识点总结

构建一个自己的框架是很有必要的:

1、可以让我们巩固一些基础知识点
2、可以增进我们对项目的整个架构理解
3、可以让我们了解框架的各部分实现原理和逻辑
4、可以让我们更好的去学习和使用其他框架

一:首先了解一个简单的mvc框架的运行逻辑

-->发起http请求
-->所有的请求都重定向到入口文件
-->进行路由解析获得我们需要请求的控制器和动作
-->创建对应的实例对象并调用相应动作
-->从数据库模型中取得需要的数据
-->返回请求数据、渲染相应视图。

二:构建框架

1、规划基础的项目目录

moral 根目录
  app 存在项目代码
    controller 存放控制器
    model    存放数据库模型类
    views    存放视图文件
  core 存放框架核心代码
    common 存放公共函数库
    config 存放项目配置文件
    lib   存放框架核心类
    mortal.php 框架核心基类
  index.php 入口文件

2、入口文件我们需要干的事情

1、定义基础常量,例如:define('ROOT',dirname(__FILE__));
2、加载公共函数库
3、启动框架

3、mortal.php核心基类需要我们实现的

1、启动框架的方法 run
2、类的自动加载方法 load   
  (知识点:spl_autoload_register 实例一个不存在的类时触发)
3、向视图传值的方法 assign  
(知识点:extract 分割数组为变量)
4、渲染视图的方法 display

4、lib下需要实现的框架核心类

1、路由的解析类 Route  (知识点:$_SERVER )
2、日志类(实现不同的存储驱动,如存文件、存数据库等) Log
(文件驱动知识点:file_put_content函数)
3、数据库操作类 Model(可以直接继承\PDO)
4、配置类 Config

5、创建控制器、视图、数据库模型测试基础框架

三:优化扩展框架

1、安装composer优化扩展框架
2、根目录新建composer.json 文件,并编写内容,例如:

{
 "name":"augus/motal",
 "description":"framework",
 "type":"framework",
 "keywords":[
     "php",
     "framework"
 ],
 "require":{
     "php": ">=5.4.0",
     "catfan/medoo": "*"
 },
 "autoload": {
     "files": ["core/function.php"],#自动加载文件不是类
     "psr-4": {
           # 按照psr-4自动加载自己的类
          "命名空间": "路径"
      },
      "classmap": {#加载根目录所有的类文件
         "./"
     }
 }
}

第一次命令行执行 composer install
之后只需要 composer update
更多的composer知识内容,参考官方文档。

3、在项目中引入composer加入的扩展。

四:基础扩展推荐

数据库:catfan/medoo
模版引擎: twig/twig
错误诊断组件: filp/whoops

你可能感兴趣的:(构建一个基础的PHP框架知识点总结)