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获取类中常量,属性,及方法列表的方法
Apr 09 PHP
PhpMyAdmin中无法导入sql文件的解决办法
Jan 08 PHP
PHP提取数据库内容中的图片地址并循环输出
Mar 21 PHP
Linux下实现PHP多进程的方法分享
Aug 16 PHP
php构造函数的继承方法
Feb 09 PHP
php限制上传文件类型并保存上传文件的方法
Mar 13 PHP
PHP中4种常用的抓取网络数据方法
Jun 04 PHP
php实现的简单美国商品税计算函数
Jul 13 PHP
Yii2中DropDownList简单用法示例
Jul 18 PHP
apache php mysql开发环境安装教程
Jul 28 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
Oct 18 PHP
Laravel模型事件的实现原理详解
Mar 14 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
《雄兵连》《烈阳天道》真的来了
2020/07/13 国漫
PHP 类相关函数的使用详解
2013/05/10 PHP
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
NodeJS学习笔记之网络编程
2014/08/03 NodeJs
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
js限制文本框只能输入整数或者带小数点的数字
2015/04/27 Javascript
js print打印网页指定区域内容的简单实例
2016/11/01 Javascript
JS访问DOM节点方法详解
2016/11/29 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
js中的面向对象入门
2017/03/06 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
微信分享调用jssdk实例
2017/06/08 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
Python tkinter事件高级用法实例
2018/01/31 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
pytorch 实现模型不同层设置不同的学习率方式
2020/01/06 Python
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
美国户外运动商店:Sun & Ski
2018/08/23 全球购物
班主任寄语大全
2014/04/04 职场文书
自我推荐信范文
2014/05/09 职场文书
教研处工作方案
2014/05/26 职场文书
给校长的一封检讨书
2014/09/20 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL
分析Python list操作为什么会错误
2021/11/17 Python