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动态创建Flash动画
Oct 09 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
逆序二维数组插入一元素的php代码
Jun 08 PHP
header中Content-Disposition的作用与使用方法
Jun 13 PHP
php中数字0和空值的区别分析
Jun 05 PHP
php 删除cookie方法详解
Dec 01 PHP
php实现粘贴截图并完成上传功能
May 17 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
Sep 22 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
Jan 24 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
Nov 07 PHP
Laravle eloquent 多对多模型关联实例详解
Nov 22 PHP
PHP实现打包zip并下载功能
Jun 12 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实现下载功能的代码
2012/09/29 PHP
基于wordpress主题制作的具体实现步骤
2013/05/10 PHP
PHP实现采集中国天气网未来7天天气
2014/10/15 PHP
Linux下安装PHP MSSQL扩展教程
2014/10/24 PHP
php中使用url传递数组的方法
2015/02/11 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
非常好的js代码
2006/06/27 Javascript
JavaScript DOM 学习第九章 选取范围的介绍
2010/02/19 Javascript
避免回车键导致的页面无意义刷新的解决方法
2011/04/12 Javascript
Javascript闭包用法实例分析
2015/01/23 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
JavaScript队列、优先队列与循环队列
2016/11/14 Javascript
如何提高数据访问速度
2016/12/26 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
跟老齐学Python之模块的加载
2014/10/24 Python
python3实现短网址和数字相互转换的方法
2015/04/28 Python
说一说Python logging
2016/04/15 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
Python实现Word表格转成Excel表格的示例代码
2020/04/16 Python
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
名词解释型面试题(主要是网络)
2013/12/27 面试题
生物医学工程专业学生求职信范文分享
2013/12/14 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
档案接收函格式
2015/01/30 职场文书
英文自荐信范文
2015/03/25 职场文书
英语演讲开场白
2015/05/29 职场文书
2016教师节感恩话语
2015/12/09 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
如何正确理解python装饰器
2021/06/15 Python