摘要:入口文件:
//加载Composer自动加载器
require __DIR__.'/vendor/autoload.php';
//加载框架基础类
require 'pig/Base.php';
//定义项目根目录
define('ROOT_PATH',__DIR__.'/');
//导入配置文件
$conf入口文件:
//加载Composer自动加载器
require __DIR__.'/vendor/autoload.php';
//加载框架基础类
require 'pig/Base.php';
//定义项目根目录
define('ROOT_PATH',__DIR__.'/');
//导入配置文件
$config = require __DIR__.'/pig/config.php';
//获取URL中查询字符串
$queryStr = $_SERVER['QUERY_STRING'];
//启动框架
(new \pig\Base($config,$queryStr))->run();
基础类:
namespace pig;
class Base
{
//框架配置
protected $config = [];
//路由信息
protected $queryStr = '';
//构造方法
public function __construct($config,$queryStr='')
{
$this->config = $config;
$this->queryStr = $queryStr;
}
//设置调试模式
public function setDebug()
{
//debug == true
if($this->config['app']['debug'])
{
error_reporting(E_ALL);
ini_set('display_errors','On');
}
else
{
//error_reporting(E_ALL);
ini_set('display_errors','Off');
ini_set('log_errors','On');
}
}
//注册自动加载器:自动加载的是类
public function loader($class)
{
// new \app\admin\controller\Stu() , app/admin/controller/Stu.php
// new Stu()
// $class == \app\admin\controller\Stu
// /app/admin/controller/Stu
$path = ROOT_PATH.str_replace('\\','/',$class).'.php';
//如果没有找到类文件,就直接返回默认首页
if(!file_exists($path))
{
header('Location: /');
}
require $path;
}
//启动框架
public function run()
{
//调试模式
$this->setDebug();
//自动加载
spl_autoload_register([$this,'loader']);
//请求分发
echo (new Route($this->config['route']))->parse($this->queryStr)->dispatch();
}
}