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面向对象全攻略 (一) 面向对象基础知识
Sep 30 PHP
PHP 判断变量类型实现代码
Oct 23 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
Apr 09 PHP
一些php项目中比较通用的php自建函数的详解
Jun 06 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
Nov 24 PHP
PHP+jquery+ajax实现即时聊天功能实例
Dec 23 PHP
php编程每天必学之验证码
Mar 03 PHP
PHP读取word文档的方法分析【基于COM组件】
Aug 01 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
May 24 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
Apr 02 PHP
php解决安全问题的方法实例
Sep 19 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 has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
用PHP查询搜索引擎排名位置的代码
2010/01/05 PHP
Laravel 实现关系模型取出需要的字段
2019/10/10 PHP
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
javascript面向对象之Javascript 继承
2010/05/04 Javascript
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
JavaScript中的对象与JSON
2015/07/03 Javascript
javascript实现控制的多级下拉菜单
2015/07/05 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
js实现table添加行tr、删除行tr、清空行tr的简单实例
2016/10/15 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
微信小程序之蓝牙的链接
2017/09/26 Javascript
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
[43:58]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第一场 1月8日
2021/03/11 DOTA
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
PyQt实现界面翻转切换效果
2018/04/20 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
领先的荷兰线上超市:荷兰之家Holland at Home(支持中文)
2021/01/21 全球购物
新闻学毕业生自荐信
2013/11/15 职场文书
经理秘书找工作求职信
2013/12/19 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
党员学习正风肃纪思想汇报
2014/09/12 职场文书
对照检查剖析材料
2014/09/30 职场文书
交心谈心活动总结
2015/05/11 职场文书
摩登时代观后感
2015/06/03 职场文书
社会心理学学习心得体会
2016/01/22 职场文书
html输入两个数实现加减乘除功能
2021/07/01 HTML / CSS
Go归并排序算法的实现方法
2022/04/06 Golang