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数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
Oct 29 PHP
php 保留字列表
Oct 04 PHP
深入理解require与require_once与include以及include_once的区别
Jun 05 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
Jul 01 PHP
thinkphp的CURD和查询方式介绍
Dec 19 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
Jun 13 PHP
php结合安卓客户端实现查询交互实例
May 05 PHP
PHP MVC框架路由学习笔记
Mar 02 PHP
PHP登录验证码的实现与使用方法
Jul 07 PHP
基于thinkPHP实现的微信自定义分享功能示例
Sep 23 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
php 广告点击统计代码(php+mysql)
Feb 21 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的伪静态模式
2015/12/31 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
jQuery无刷新分页完整实例代码
2015/10/27 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
jQuery实现查找链接文字替换属性的方法
2016/06/27 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
2016/07/19 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
angular2中使用第三方js库的实例
2018/02/26 Javascript
详解Angular操作cookies方法
2018/06/01 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
Javascript操作select控件代码实例
2020/02/14 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
Python脚本暴力破解栅栏密码
2015/10/19 Python
Python中强大的命令行库click入门教程
2016/12/26 Python
Python with标签使用方法解析
2020/01/17 Python
python实现移动木板小游戏
2020/10/09 Python
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
四种会话跟踪技术
2015/05/20 面试题
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
暑期培训心得体会
2014/09/02 职场文书
2014年国庆晚会主持词
2014/09/19 职场文书
2014年质检员工作总结
2014/11/18 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书
公司给客户的感谢信
2015/01/23 职场文书
法律讲堂观后感
2015/06/11 职场文书
教师节联欢会主持词
2015/07/04 职场文书
家电创业计划书
2019/08/05 职场文书
创业计划书之书店
2019/09/10 职场文书
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
2021/06/07 Python
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js