Code Monkey home page Code Monkey logo

ppf's Introduction

ppf框架的基本介绍

  • ppf框架是一个基于mvc模式的框架
  • 有着最简单的路由分发以及mvc组件构成的框架。
  • 模仿来自于thinkphp 以及zendframe。以及加入了类似smarty的模版引擎。全方面实现了一个框架从路由分发。载入配置文件。mvc模式以及最后的模版引擎实现。

ppf 简单实现原理如下

  • PHP每次接收到请求时都要初始化全部资源
  • 处理完毕后再释放全部的资源
  • ppf框架接收到用户的请求后,需要一个初始化的过程
  • 在初始化时实例化框架的核心模块,然后在把请求传送给框架的相应模块进行处理
  • 所以在初始化完成后,我们还需要根据用户的请求来调用相应的控制器,所以我们需要一个分发器(dispatch)来对用户的请求进行分发。在控制器里,我们就可以调用数据模型和视图来处理用户的请求了。
  • 要处理用户的请求需要先初始化框架的核心模块
  • 如分发器模块,所以用户的请求首先需要被重定向至一个初始化页面,重定向可以使用.htaccess文件来实现
  • 在我们这个框架里,我们首先把所有的请求都重定向至index.php里,在index.php里面完成初始化操作:初始化核心模块,我们还可以在初始化时读入框架的配置文件信息
  • 然后调用分发器把请求分发到相应的控制器,实例化这个控制器,并调用控制器中的方法来处理用户的请求。
  • 在控制器里,我们可以获取用户的输入,判断用户的请求,然后调用相应的数据模型进行数据处理,控制器得到数据后,把数据传给视图,视图根据得到的数据返回一个页面给用户,请求结束。

ppf使用流程说明

http请求->.htaccess->index.php->载入config.php(实例化核心模块)->dispath:init()->调用相应的控制器->view 在视图类中加了自定义的模版引擎。可以自己配置属于自己的模版语言以及方法 具体模版类在/Library/Template.php 以及/Library/Compile.php

ppf 目录结构

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可忽略的文件

ppf 框架版本更新情况

version 1

  • 可支持的模版引擎实现功能有

{$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;?>

version 1.2

  • 修改了结构展现形式,新增了Library/Common目录,里面存放公用的方法函数
  • 完善了模版引擎功能,新增了多维数组赋值以及多维数组循环功能(具体代码可以参考Application/Test/Controller/IndexController.php以及Test/View/Index/add.html)
  • 增加异常处理模块,可自定义,以及对应异常状态码的设定
  • 数据库链式操作(现已更新查询操作)

version 1.3

  • 新增支持的模版引擎

{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

ppf's People

Contributors

taweisuode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

im286er

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.