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 相关文章推荐
建立文件交换功能的脚本(三)
Oct 09 PHP
php 字符串函数收集
Mar 29 PHP
php visitFile()遍历指定文件夹函数
Aug 21 PHP
php模板函数 正则实现代码
Oct 15 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
Apr 24 PHP
php通过ajax实现双击table修改内容
Apr 28 PHP
PHP设计模式之装饰者模式代码实例
May 11 PHP
PHP的运行机制与原理(底层)
Nov 16 PHP
php、java、android、ios通用的3des方法(推荐)
Sep 09 PHP
PHP检测数据类型的几种方法(总结)
Mar 04 PHP
Laravel框架路由设置与使用示例
Jun 12 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
Sep 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
typecho插件编写教程(三):保存配置
2015/05/28 PHP
10个超级有用的PHP代码片段果断收藏
2015/09/23 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
javascript中的有名函数和无名函数
2007/10/17 Javascript
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
2013/07/09 Javascript
在JS中解析HTML字符串示例代码
2014/04/16 Javascript
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
2015/08/17 Javascript
javascript数组去重小结
2016/03/07 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
2017/05/20 jQuery
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
Canvas放置反弹效果随机图形(实例)
2017/08/17 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
跟老齐学Python之有点简约的元组
2014/09/24 Python
利用Python脚本实现ping百度和google的方法
2017/01/24 Python
python处理xml文件的方法小结
2017/05/02 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
Python Pillow Image Invert
2019/01/22 Python
Python使用Pandas库常见操作详解
2020/01/16 Python
Python日志打印里logging.getLogger源码分析详解
2021/01/17 Python
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
Giglio英国站:意大利奢侈品购物网
2018/03/06 全球购物
G-Form护具官方网站:美国运动保护装备
2019/09/04 全球购物
波兰在线杂货店:Polski Koszyk
2019/11/02 全球购物
屈臣氏菲律宾官网:Watsons菲律宾
2020/06/30 全球购物
CSMA/CD介质访问控制协议
2015/11/17 面试题
微型企业创业投资计划书
2014/01/10 职场文书
打架检讨书500字
2014/01/29 职场文书
小学生检讨书大全
2014/02/06 职场文书
2015年度员工自我评价范文
2015/03/11 职场文书