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引用地址改变变量值的问题
Mar 23 PHP
php中使用addslashes函数报错问题的解决方法
Feb 06 PHP
探讨方法的重写(覆载)详解
Jun 08 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
通过php修改xml文档内容的方法
Jan 23 PHP
PHP简单实现生成txt文件到指定目录的方法
Apr 25 PHP
Yii2中cookie用法示例分析
Jul 18 PHP
浅谈PHP中的数据传输CURL
Sep 06 PHP
PHP 接入支付宝即时到账功能
Sep 18 PHP
Zend Framework上传文件重命名的实现方法
Nov 25 PHP
php微信公众号开发之答题连闯三关
Oct 20 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
Apr 11 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
用缓存实现静态页面的测试
2006/12/06 PHP
PHP模块memcached使用指南
2014/12/08 PHP
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
2009/02/17 Javascript
利用javascript解决图片缩放及其优化的代码
2012/05/23 Javascript
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
JS函数的几种定义方式分析
2015/12/17 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
2019/11/06 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
Python中的random()方法的使用介绍
2015/05/15 Python
django实现分页的方法
2015/05/26 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
Python常用的json标准库
2019/02/19 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
公司新员工的演讲稿注意事项
2014/01/01 职场文书
李敖北大演讲稿
2014/05/24 职场文书
小学班主任培训方案
2014/06/04 职场文书
2015年企业新年寄语
2014/12/08 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
python缺失值的解决方法总结
2021/06/09 Python