- ppf框架是一个基于mvc模式的框架
- 有着最简单的路由分发以及mvc组件构成的框架。
- 模仿来自于thinkphp 以及zendframe。以及加入了类似smarty的模版引擎。全方面实现了一个框架从路由分发。载入配置文件。mvc模式以及最后的模版引擎实现。
- PHP每次接收到请求时都要初始化全部资源
- 处理完毕后再释放全部的资源
- ppf框架接收到用户的请求后,需要一个初始化的过程
- 在初始化时实例化框架的核心模块,然后在把请求传送给框架的相应模块进行处理
- 所以在初始化完成后,我们还需要根据用户的请求来调用相应的控制器,所以我们需要一个分发器(dispatch)来对用户的请求进行分发。在控制器里,我们就可以调用数据模型和视图来处理用户的请求了。
- 要处理用户的请求需要先初始化框架的核心模块
- 如分发器模块,所以用户的请求首先需要被重定向至一个初始化页面,重定向可以使用.htaccess文件来实现
- 在我们这个框架里,我们首先把所有的请求都重定向至index.php里,在index.php里面完成初始化操作:初始化核心模块,我们还可以在初始化时读入框架的配置文件信息
- 然后调用分发器把请求分发到相应的控制器,实例化这个控制器,并调用控制器中的方法来处理用户的请求。
- 在控制器里,我们可以获取用户的输入,判断用户的请求,然后调用相应的数据模型进行数据处理,控制器得到数据后,把数据传给视图,视图根据得到的数据返回一个页面给用户,请求结束。
http请求->.htaccess->index.php->载入config.php(实例化核心模块)->dispath:init()->调用相应的控制器->view 在视图类中加了自定义的模版引擎。可以自己配置属于自己的模版语言以及方法 具体模版类在/Library/Template.php 以及/Library/Compile.php
ppf ppf框架目录
├─Application 应用目录
│ ├─Config 配置文件目录
│ │ ├─Config.php 配置路径文件
│ │ └─Database.php 数据库配置文件
|
│ ├─module_name 模块目录
│ │ ├─Controller 控制器目录
│ │ ├─Model 模型目录
│ │ └─View 视图目录
|
│ ├─other_module_name 其他模块目录
│ │ ├─Controller 控制器目录
│ │ ├─Model 模型目录
│ │ └─View 视图目录
|
├─Cache 缓存目录
|
├─Public css,js,image存放目录
│ ├─Css
│ ├─Image
│ └─Js
├─Library
│ ├─Common 框架公用的函数方法存放目录
│ | ├─Function.php 框架公用的函数方法
| ├─ErrorCode.php 异常状态码类
| ├─ErrorCodeCN.php 异常状态码对应中文解释文件
│ ├─Exception 框架异常处理模块
| └─FrameException.php 模版异常处理类
|
│ ├─Sys 框架系统核心
│ ├─Compile.php 模版引擎编译类
│ ├─Controller.php 控制器基类
│ ├─Db_Table_Abstract.php 数据库表抽象类
│ ├─Dispath.php 路由分发单例类
│ ├─Model.php Model基类
│ ├─Template.php 模版引擎基类
| └─View.php view视图基类
│
├─index.php 入口文件
├─.htaccess 用于apache的重写
├─README.MD 就是本页面
├─.gitignore git可忽略的文件
- 可支持的模版引擎实现功能有
{$add} => <?php echo $add;?>
{if $add >0}aaa{else}bbb{/if} => <?php if($add > 0){aaa}else{bbbb} ?>
{foreach name=$aaa}{$key}{$val}{/foreach} => <?php foreach($aaa as $key=>$val){$key $val} ?>
{php echo 111;}{/php} => <?php echo 111;?>
- 修改了结构展现形式,新增了Library/Common目录,里面存放公用的方法函数
- 完善了模版引擎功能,新增了多维数组赋值以及多维数组循环功能(具体代码可以参考Application/Test/Controller/IndexController.php以及Test/View/Index/add.html)
- 增加异常处理模块,可自定义,以及对应异常状态码的设定
- 数据库链式操作(现已更新查询操作)
- 新增支持的模版引擎
{include Public/header.html} => <?php include "/Library/WebServer/Documents/mywebsite/Application/Index/View/Public/header.html";?>
{foreach name=$aaa item=key value=val}{$key}{$val}{/foreach} => <?php foreach($aaa as $key=>$val){$key $val} ?>
QQ:556830740