PHP从零开始打造自己的MVC框架之入口文件实现方法详解


Posted in PHP onJune 03, 2019

本文实例讲述了PHP从零开始打造自己的MVC框架之入口文件实现方法。分享给大家供大家参考,具体如下:

首先来了解一下框架的运行流程:

入口文件 -> 定义常量 -> 引入函数库 -> 自动加载类 -> 启动框架 -> 路由解析 -> 加载控制器 -> 返回结果

PHP从零开始打造自己的MVC框架之入口文件实现方法详解

入口文件index.php:

<?php
/*
入口文件
1.定义常量
2.加载函数库
3.启动框架
*/
// 定义当前框架所在的根目录
define('IMOOC', __DIR__);
// 定义框架核心文件所在的目录
define('CORE', IMOOC.'/core');
// 项目文件所在目录
define('APP', IMOOC.'/app');
// 定义项目调试模式
define('DEBUG', true);
// 判断项目是否处于调试状态
if (DEBUG) {
  // 设置报错级别:显示所有错误
  ini_set('display_error', 'On');
}else{
  ini_set('display_error','Off');
}
// 加载函数库
include CORE.'/common/function.php';
// 加载框架核心文件
include CORE.'/imooc.php';
\core\Imooc::run();

框架核心目录里的公共函数function.php:

<?php
/*
输出对应的变量或者数组
*/
function p($var){
  if(is_bool($var)){
    var_dump($var);
  }elseif (is_null($var)) {
    var_dump(NULL);
  }else{
    echo '<pre style="position:relative;z-index:1000;padding:10px;border-radius:5px;background:#f5f5f5;border:1px solid #aaa;font-size:14px;line-height:18px;opacity:0.9;">'.print_r($var,true).'</pre>';
  }
}

框架核心文件imooc.php:

<?php
namespace core;
class Imooc
{
  static public function run()
  {
    p('ok');
  }
}

运行项目,访问入口文件index.php,浏览器如期输出一个:ok

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
浅谈PHP语法(1)
Oct 09 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
Dec 12 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
Nov 02 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
Feb 05 PHP
PHP输出时间差函数代码
Jan 28 PHP
8个必备的PHP功能实例代码
Oct 27 PHP
ThinkPHP中的系统常量和预定义常量集合
Jul 01 PHP
php导出CSV抽象类实例
Sep 24 PHP
php使用类继承解决代码重复的问题
Feb 11 PHP
php生出随机字符串
Jul 06 PHP
php双层循环(九九乘法表)
Oct 23 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 PHP
PHP工厂模式、单例模式与注册树模式实例详解
Jun 03 #PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
May 31 #PHP
PHP使用ActiveMQ实现消息队列的方法详解
May 31 #PHP
php中的buffer缓冲区用法分析
May 31 #PHP
PHP实现基于状态的责任链审批模式详解
May 31 #PHP
Laravel框架实现调用百度翻译API功能示例
May 30 #PHP
Laravel框架学习笔记之批量更新数据功能
May 30 #PHP
You might like
php array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
PHP递归算法的详细示例分析
2013/02/19 PHP
解析php如何将日志写进syslog
2013/06/28 PHP
php采集文章中的图片获取替换到本地(实现代码)
2013/07/08 PHP
php+xml结合Ajax实现点赞功能完整实例
2015/01/30 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
jQuery Ajax 加载数据时异步显示加载动画
2016/08/01 Javascript
纯js实现手风琴效果代码
2020/04/17 Javascript
AngularJS入门教程之路由机制ngRoute实例分析
2016/12/13 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
Vue中使用clipboard实现复制功能
2018/09/05 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
2019/04/07 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
ES6函数实现排它两种写法解析
2020/05/13 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
[01:46]辉夜杯—打造中国DOTA新格局
2015/12/25 DOTA
[00:15]天涯墨客终极技能展示
2018/08/25 DOTA
用Python遍历C盘dll文件的方法
2015/05/06 Python
Python爬虫常用小技巧之设置代理IP
2018/09/13 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
CSS3教程(2):网页边框半径和网页圆角
2009/04/02 HTML / CSS
HTML5 CSS3打造相册效果附源码下载
2014/06/16 HTML / CSS
全球领先的各类汽车配件零售商:Advance Auto Parts
2016/08/26 全球购物
罗马尼亚在线杂货店:Pilulka.ro
2019/09/28 全球购物
final, finally, finalize的区别
2012/03/01 面试题
缅怀先烈演讲稿
2014/09/03 职场文书
公务员考察材料范文
2014/12/23 职场文书