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 ftp文件上传函数(基础版)
Jun 03 PHP
完美实现GIF动画缩略图的php代码
Jan 02 PHP
php去除重复字的实现代码
Sep 16 PHP
全新的PDO数据库操作类php版(仅适用Mysql)
Jul 22 PHP
PHP文件上传类实例详解
Apr 08 PHP
简单理解PHP的面向对象编程方式
May 17 PHP
php实现头像上传预览功能
Apr 27 PHP
PHP下用Swoole实现Actor并发模型的方法
Jun 12 PHP
php实现银联商务公众号+服务窗支付的示例代码
Oct 12 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
Apr 06 PHP
PHP7 标准库修改
Mar 09 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
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
php echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
在openSUSE42.1下编译安装PHP7 的方法
2015/12/24 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
Javascript 强制类型转换函数
2009/05/17 Javascript
kmock javascript 单元测试代码
2011/02/06 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
小结Node.js中非阻塞IO和事件循环
2014/09/18 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
学习使用bootstrap3栅格系统
2016/04/12 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
2017/08/23 jQuery
iview table render集成switch开关的实例
2018/03/14 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
Python上下文管理器和with块详解
2017/09/09 Python
Python最小二乘法矩阵
2019/01/02 Python
python读取Excel表格文件的方法
2019/09/02 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
python使用 cx_Oracle 模块进行查询操作示例
2019/11/28 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
夜大自我鉴定
2013/10/31 职场文书
公关活动策划方案
2014/05/25 职场文书
销售会议开幕词
2015/01/28 职场文书
复兴之路观后感
2015/06/02 职场文书
门球健将观后感
2015/06/16 职场文书
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis