基础类学习及理解

原创 2018-11-19 13:31:09 303
摘要:<?php // 概述 // 基础类是框架运行的保障,主要用调试设置,类的自动加载和启动功能,几乎所有PHP框架都有一个基础类, // 可能有的框架叫做引导类,但实质都是一样的 // 1.1 调试模式 //  开发模式,开启,抛出错误;上线后,关闭调试模式 // 1.2 自动加载 //  将自定
<?php
// 概述
// 基础类是框架运行的保障,主要用调试设置,类的自动加载和启动功能,几乎所有PHP框架都有一个基础类,
// 可能有的框架叫做引导类,但实质都是一样的
	// 1.1 调试模式
	// 	开发模式,开启,抛出错误;上线后,关闭调试模式
	// 1.2 自动加载
	// 	将自定义的类加载函数把它注册到系统中去,这样,我们在New一个类的时候,这个类就自动加载到当前脚本中。
	// 1.3 启动框架
	// 	一般是设置一个run或者start方法,所谓启动,实际上就是一个请求路由分发的过程。

namespace ma;
/****
* 框架基础类
* 1.调试模式
* 2.自动加载
* 3.启动框架
****/

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();

		$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();
	}
}

// 附:配置文件
// 文件位置:app/ma/config.php

return [
	// 应用配置
	'app' =>[
	// 调试开关
	'debug' =>'true',
	],

	// 路由配置
	'route' =>[
	// 默认模块
	'module' =>'admin',
	// 默认控制器
	'controller' =>'Index',
	// 默认操作
	'action' =>'Index',

	],

	// 数据库配置
	'db' =>[
	// 数据类型
	'database_type' =>'mysql',
	// 默认的数据库名称
	'database_name' =>'frame',
	// 默认主机名
	'server' =>'127.0.0.1',
	// 默认用户名
	'username' =>'root',
	// 用户密码
	'password' =>'root',
	// 默认客户端的字符码集
	'charset' =>'utf8',
	// 默认的服务器端口号
	'port' =>'3306',


	],
	]

 ?>


发布手记

热门词条