自己打造php框架,首先要对自己的框架定位,为什么现在已经有这么多非常成熟的框架而不用,要用自己的php框架。
1、为了更快的开发效率
2、为了更高的运行效率
3、彰显出自己的实力
一、框架流程
要想打造一个自己的php框架还要了解框架的运行流程
入口文件---->定义常量----->引入函数库---->自动加载类----->启动框架----->路由解析------>加载控制器------>返回结果
二、入口文件定义 index.php
/**
* 入口文件
* 1、定义常量
* 2、加载常量
* 3、启动框架
*/
define('LHY', realpath('./')); //根目录
define('CORE',LHY.'/core'); //框架核心文件目录
define('APP',LHY.'/app'); //项目文件目录(控制器、模型、视图)
define('MODULE','app');
define('DEBUG',true); //是否开启php错误提示
if(DEBUG){
ini_set('display_error','On');
}else{
ini_set('display_error','Off');
}
三、类的自动加载 index.php
spl_autoload_register('\core\lhy::load'); //实例化时自动加载类
四、路由类
路由类就是解析网站参数,并且获取控制器、方法和参数
<?php
namespace core\lib;
class route{
public function __construct(){
if(isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI']!='/'){
$path = $_SERVER['REQUEST_URI'];
$path = explode('/',trim($path,'/'));
if(isset($path[0])){
$this->ctrl = $path[0];
}
unset($path[0]);
if(isset($path[1])){
$this->action = $path[1];
unset($path[1]);
}else{
$this->action = 'index';
}
$count = count($path)+2;
$i = 2;
while($i<$count){
if(isset($path[$i+1]))
{
$_value[$path[$i]] = $path[$i+1];
}
$i+=2;
}
}else{
$this->ctrl = 'index';
$this->action = 'index';
}
}
}
?>
未完待续。。。