本文背景前提,针对php入门新手,对于大部分主流php框架,其框架代码过于繁杂,不易于理解,为了更好便于的理解PHP框架中MVC的运行原理和流程。
写下了dennisFramework框架,框架的代码地址 https://github.com/dennishao/dennisFramework 。
警告:此框架千万不可用于线上环境,仅供初学者理解使用.
正文开始:
先介绍框架目录及其说明.
-
applications 应用文件目录
- config 配置文件
- controllers 控制器目录
- models 模型目录
- views 视图目录
- config 配置文件
-
framework 框架目录
- core 框架核心目录
- database 框架数据库目录
- helpers 框架第三方函数目录
- libraries 框架第三方类库目录
- core 框架核心目录
-
public 公共文件目录
- css css样式目录
- images 图片文件目录
- js js函数目录
- uploads 上传目录
- css css样式目录
- index.php 入口文件
开始框架允许流程讲解
1.单一入口文件index.php
<?php//引入框架核心类文件require "framework/core/framework.class.php" ;//开启报错信息ini_set( "display_errors" , "on" ) ;error_reporting(- 1 ) ;//启动框架framework:: run () ;
2.框架核心类文件framework.class.php,
(1)对框架各个部分路径,进行定义常量。
(2)引入框架的核心类库
(3)解析URL路由,其中包括了php的autoload和spl_autoload_register魔术方法,方法参考手册http://php.net/manual/zh/function.spl-autoload-register.php
(4)开启session
<?php class framework { public static function run() { self::init(); self::autoload(); self::dispatch(); } private static function init() { //定义常量 define("ROOT", dirname(dirname(dirname(__FILE__)))); define("APP_PATH", ROOT . "/applications");