php定义核心启动类

启动方法 run()
初始化方法(定义路径)init()
自动加载功能 autoload() spl_autoload_register()
路由功能 router()

项目启动run()

public static function run(){
    self::init();
    self::autoload();
    self::router();
}

初始化方法(定义路径)init()

public static function init(){
    //1.定义路径  getcwd()获取当前工作路径
    define('DS', DIRECTORY_SEPARATOR);//统一linux和windows的目录分隔符
    define('ROOT', getcwd().DS);//网站根目录/var/www/local.so.xywy.com/
}

路由方法router() 实例化对象并使用方法

public static  function router(){
    //确定类名和方法名
    $controller_name = CONTROLLER . 'Controller';
    $action_name = ACTION . 'Action';
    //实例化控制器,然后调用相应的方法
    $controller = new $controller_name; //如果没有加载类,则使用自动加载
    $controller->$action_name();
}

自动加载方法autoload()

//注册加载方法
public static function autoload(){
    spl_autoload_register([__CLASS__,'load']);
}
//加载方法
public function load$classname){
    if(substr($classname, -10) == 'Controller'){
        require CONTROLLER_PATH."{$classname}.class.php";
    }elseif(substr($classname, -5) == 'Model'){
        require MODEL_PATH."{$classname}.class.php";
    }else{
        //暂无
    }
}

如何实现自动加载呢?
1. 直接在index.php中,直接使用__autoload()方法
2. 在类中定义一个方法,然后将其注册为自动加载方法spl_autoload_register()(用法:如果是普通方法,只需要填写函数名即可;如果是类的方法,需告知是那个类的那个方法,用数据传递(__CLASS__魔术方法表示当前类))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值