自己写php框架启动类

单一入口文件:index.php

<?php
//入口文件,单一入口
//载入核心启动类
include "framework/core/framework.class.php";

Framework::run();

核心启动类文件:Framework.php

<?php
//核心启动类
class Framework{
	//让项目run起来
	public static function run(){
		self::init();
		self::autoload();
		self::router();
	}

	//初始化方法
	public static function init(){
		//定义路径,获取当前工作路径 getcwd()
		define("DS", DIRECTORY_SEPARATOR);
		define("ROOT", getcwd() . DS);
		define("APP_PATH", ROOT . "application" . DS);
		define("FRAMEWORK_PATH", ROOT . "framework" . DS);
		define("PUBLIC_PATH", ROOT . "public" . DS);
		define("MODEL_PATH", APP_PATH . "models" . DS);
		define("VIEW_PATH", APP_PATH . "views" . DS);
		define("CONTROLLER_PATH", APP_PATH . "controllers" . DS);
		define("CONFIG_PATH", APP_PATH . "config" . DS);
		define("CORE_PATH", FRAMEWORK_PATH . "core" . DS);
		define("DB_PATH", FRAMEWORK_PATH . "database" . DS);
		define("HELPER_PATH", FRAMEWORK_PATH . "helpers" . DS);
		define("LIB_PATH", FRAMEWORK_PATH . "libraries" . DS);

		//前后台的控制器和视图目录怎么定义
		define("PLATFORM", isset($_REQUEST['p']) ? $_REQUEST['p'] : "home");
		define("CONTROLLER", isset($_REQUEST['c']) ? ucfirst($_REQUEST['c']) : "Index");
		define("ACTION", isset($_REQUEST['a']) ? $_REQUEST['a'] : "index");

		define("CUR_CONTROLLER_PATH", CONTROLLER_PATH . PLATFORM . DS);
		define("CUR_VIEW_PATH", VIEW_PATH . PLATFORM . DS);

	}

	//路由方法
	public static function router(){
		//确定类名和方法名
		$controller_name = CONTROLLER . "Controller";  //如GoodsController
		$action_name = ACTION . "Action";  //如addAction
		//实例化控制器,然后调用相应的方法
		$controller = new $controller_name;
		$controller -> $action_name();
	}

	//自动加载方法
	public static function autoload(){
		spl_autoload_register(array(__CLASS__, "load"));
	}

	//加载方法
	public static function load($classname){
		//只负责加载 application 下面的 控制器类和模型类, 如GoodsController, AdminModel
		if(substr($classname, -10) == 'Controller'){
			require CUR_CONTROLLER_PATH . "{$classname}.class.php";
		} elseif(substr($classname, -5) == 'Model') {
			require MODEL_PATH . "{$classname}.class.php";
		} else {

		}
	}	
}

?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值