php框架启动过程,自己写php框架启动类

单一入口文件:index.php

//入口文件,单一入口

//载入核心启动类

include "framework/core/framework.class.php";

Framework::run();

核心启动类文件:Framework.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 {

}

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值