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代码的53条建议
Mar 27 PHP
PHP4中session登录页面的应用
Jul 25 PHP
PHP 出现乱码和Sessions验证问题的解决方法!
Dec 06 PHP
php与php MySQL 之间的关系
Jul 17 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
PHP中使用socket方式GET、POST数据实例
Apr 02 PHP
PHP常用工具类大全附全部代码下载
Dec 07 PHP
详解Window7 下开发php扩展
Dec 31 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
Jul 08 PHP
php递归函数怎么用才有效
Feb 24 PHP
PHP队列场景以及实现代码实例详解
Feb 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 mcrypt可逆加密算法分析
2011/07/19 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
PHP微信支付结果通知与回调策略分析
2019/01/10 PHP
解决laravel session失效的问题
2019/10/14 PHP
项目实践之javascript技巧
2007/12/06 Javascript
JS window.opener返回父页面的应用
2009/10/24 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
2014/06/15 Javascript
js中运算符&amp;&amp; 和 || 的使用记录
2014/08/21 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
[32:07]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第一场 12.16
2020/12/17 DOTA
python Manager 之dict KeyError问题的解决
2019/12/21 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
护理实习自我鉴定
2013/12/14 职场文书
复核员上岗演讲稿
2014/01/05 职场文书
校企合作协议书
2014/04/16 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
大学生个人求职信例文
2014/07/07 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
道歉情书大全
2015/05/12 职场文书
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript