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程序
Oct 09 PHP
SSI指令
Nov 25 PHP
PHP 超链接 抓取实现代码
Jun 29 PHP
PHP开发中四种查询返回结果分析
Jan 02 PHP
PHP中设置时区方法小结
Jun 03 PHP
PHP之APC缓存详细介绍 apc模块安装
Jan 13 PHP
使用Composer安装Yii框架的方法
Mar 15 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 PHP
使用PHPMailer发送邮件实例
Feb 15 PHP
php中Redis的应用--消息传递
Mar 28 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
Sep 16 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
2021年最新CPU天梯图
2021/03/04 数码科技
解决File size limit exceeded 错误的方法
2013/06/14 PHP
thinkPHP学习笔记之安装配置篇
2015/03/05 PHP
php.ini中的request_order推荐设置
2015/05/10 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
2019/12/13 PHP
Javascript操纵Cookie实现购物车程序
2006/11/23 Javascript
JavaScript 事件记录使用说明
2009/10/20 Javascript
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
Backbone.js框架中Model与Collection的使用实例
2016/05/07 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
jquery 仿锚点跳转到页面指定位置的实例
2017/02/14 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
2017/03/14 Javascript
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
2018/08/19 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
2018/11/15 Javascript
教你30秒发布一个TypeScript包到NPM的方法步骤
2019/07/22 Javascript
python3实现UDP协议的服务器和客户端
2017/06/14 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
python+pyqt5实现KFC点餐收银系统
2019/01/24 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
Django框架模板的使用方法示例
2019/05/25 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
python3中确保枚举值代码分析
2020/12/02 Python
编辑个人求职信范文
2013/09/21 职场文书
软件毕业生个人鉴定
2014/03/03 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
信息合作协议书
2014/10/09 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
MySQL 全文检索的使用示例
2021/06/07 MySQL