从零开始搭建自己的mvc(二)类的自动加载
2016-12-26 13:29
225 查看
1、判断是否有相应的类
首先我们在入口文件(index.php)进行判断
使用函数<?php
/*入口文件
*定义常量
*加载函数库
*启动框架
*/
define('FRAMEWORK',dirname(__FILE__));
define('CORE',FRAMEWORK.'/core');//主要核心文件
define('APP',FRAMEWORK.'/app');//控制器模型文件
define('MODULE','app');
define('DEBUG',true);//调试模式
if (DEBUG){
ini_set('display_error','On');
} else {
ini_set('display_error','Off');
}
include CORE.'/common/function.php';//加载文件
include CORE.'/framework.php';//核心文件
//判断
spl_autoload_register('\core\framework::load');//判断类是否存在 若不存在就执行函数中相关的路径
\core\framework::run();//调用方法执行入口文件
?>2、因为不存在我们自动引用相关路径(\core\framework::load)framework.php中的load方法
public static $classMap = array();
static public function load($class)//我们会经常调用到所以设置为静态方法
{
//自动加载类库
if(isset(self::$classMap[$class])){
return true;
} else {
$class = str_replace('\\', '/', $class);//把\替换成/
$file = FRAMEWORK.'/'.$class.'.php';//我们需要把路径拼接成项目路径
if(is_file($file)){
include $file;
self::$classMap[$class] = $class;
} else {
return false;
}
}
}3、在core文件夹下创建一个新的文件夹lib用于存放我们的配置文件建立我们的路由类
在core 下创建lib,lib 下建立route.php(路由类)
<?php
namespace core;
class route
{
public funtion __construct()
{
echo "route ok";
}
}
?>4、在调用入口文件方法run()中 new 路由方法
$route = new\core\route();
print_r($route);
5、成功输出route ok
首先我们在入口文件(index.php)进行判断
使用函数<?php
/*入口文件
*定义常量
*加载函数库
*启动框架
*/
define('FRAMEWORK',dirname(__FILE__));
define('CORE',FRAMEWORK.'/core');//主要核心文件
define('APP',FRAMEWORK.'/app');//控制器模型文件
define('MODULE','app');
define('DEBUG',true);//调试模式
if (DEBUG){
ini_set('display_error','On');
} else {
ini_set('display_error','Off');
}
include CORE.'/common/function.php';//加载文件
include CORE.'/framework.php';//核心文件
//判断
spl_autoload_register('\core\framework::load');//判断类是否存在 若不存在就执行函数中相关的路径
\core\framework::run();//调用方法执行入口文件
?>2、因为不存在我们自动引用相关路径(\core\framework::load)framework.php中的load方法
public static $classMap = array();
static public function load($class)//我们会经常调用到所以设置为静态方法
{
//自动加载类库
if(isset(self::$classMap[$class])){
return true;
} else {
$class = str_replace('\\', '/', $class);//把\替换成/
$file = FRAMEWORK.'/'.$class.'.php';//我们需要把路径拼接成项目路径
if(is_file($file)){
include $file;
self::$classMap[$class] = $class;
} else {
return false;
}
}
}3、在core文件夹下创建一个新的文件夹lib用于存放我们的配置文件建立我们的路由类
在core 下创建lib,lib 下建立route.php(路由类)
<?php
namespace core;
class route
{
public funtion __construct()
{
echo "route ok";
}
}
?>4、在调用入口文件方法run()中 new 路由方法
$route = new\core\route();
print_r($route);
5、成功输出route ok
相关文章推荐
- PHP搭建自己的MVC框架4 类自动加载
- 从零开始打造自己的框架 - 类的自动加载
- 从零开始搭建自己的mvc(一)入口文件
- ASP.NET MVC搭建项目后台UI框架—11、自动加载下拉框查询
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(四)-使用Travis自动部署Hexo(2)
- 一步步搭建自己的轻量级MVCphp框架-(四)一个国产轻量级框架Amysql源码分析(3) 总进程对象
- 自己搭建MVC时遇到的一些问题及解决办法
- DWZ 用dialog调用MVC自动生成的密码修改页面一直出现“数据加载中,请稍等...”和去掉“数据加载中,请稍等”的方法
- 自己动手搭建MVC之三
- linux如何实现开机加载完图形界面后自动运行自己写的一个程序
- eclipse+maven搭建自己web系统的骨架,解决自带骨架加载无限慢的问题
- 自己动手搭建MVC之五
- Extjs4.1.x 框架搭建 采用Application动态按需加载MVC各模块
- 让Lua自己把文件夹下面的所有文件自动加载起来吧
- 微信公共号(企业号)开发框架-gochat的从零开始教程(二): 5分钟快速搭建自己的公共号
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(四)-使用Travis自动部署Hexo(2)
- 动手开发自己的mvc-2----完善控制层,提供自动注入和注解上传等功能
- Extjs4.1.x 框架搭建 采用Application动态按需加载MVC各模块-完美解决(二)
- 服务器会自动加载index.php文件和一些自己的常用疑问