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 相关文章推荐
PHP4与PHP5的时间格式问题
Feb 17 PHP
php横向重复区域显示二法
Sep 25 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
May 29 PHP
PHP 获取文件路径(灵活应用__FILE__)
Feb 15 PHP
php实现分页工具类分享
Jan 09 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
Feb 07 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
Apr 30 PHP
PHP session垃圾回收机制实例分析
Jun 28 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
Dec 16 PHP
laravel添加角色和模糊搜索功能的实现代码
Jun 22 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
国外十大最流行的PHP框架排名
2013/07/04 PHP
一个好用的PHP验证码类实例分享
2013/12/27 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
js控制div弹出层实现方法
2015/05/11 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
Node.js文件编码格式的转换的方法
2018/04/27 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
python双向链表实现实例代码
2013/11/21 Python
python简单获取数组元素个数的方法
2015/07/13 Python
python中import学习备忘笔记
2017/01/24 Python
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
详解python中executemany和序列的使用方法
2017/08/12 Python
python移位运算的实现
2019/07/15 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
Python的对象传递与Copy函数使用详解
2019/12/26 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
2020/03/10 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
Python logging模块写入中文出现乱码
2020/05/21 Python
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
数字漫画:comiXology
2020/06/13 全球购物
PHP如何设置和取得Cookie值
2015/06/30 面试题
数控技术学生的自我评价
2014/02/15 职场文书
先进基层党组织事迹材料
2014/12/25 职场文书
靠谱的活动总结
2019/04/16 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
golang在GRPC中设置client的超时时间
2021/04/27 Golang
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技