从零开始写自己的PHP框架系列教程[App.php]
Posted cbw7172002
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始写自己的PHP框架系列教程[App.php]相关的知识,希望对你有一定的参考价值。
从这一个文件开始以后加载的均以类加载,请注意命名空间和所在文件的路径
APP.php的这个类所在路径:根目录frameworkApp.php
直接上代码
namespace framework; class App { /** * 初始化配置 * @Author yiwanxifan */ static protected function init() { Config::init( ROOT_PATH ); Config::loadConfig( CONFIG_PATH . ‘global.php‘ ); Config::loadConfig( CONFIG_PATH . Config::get(‘ENV‘) . ‘.php‘ ); date_default_timezone_set( Config::get(‘TIMEZONE‘) ); //error display if ( Config::get(‘DEBUG‘) ) { ini_set("display_errors", 1); error_reporting( E_ALL ^ E_NOTICE ); } else { ini_set("display_errors", 0); error_reporting(0); } include_once ROOT_PATH.‘data/version.php‘; } /** * 运行框架 * @Author yiwanxifan */ static public function run() { try{ self::init(); Hook::init(ROOT_PATH); Hook::listen(‘appBegin‘); Hook::listen(‘routeParseUrl‘, array( Config::get(‘REWRITE_RULE‘), Config::get(‘REWRITE_ON‘))); //默认路由设置 if( !defined(‘APP_NAME‘) || !defined(‘CONTROLLER_NAME‘) || !defined(‘ACTION_NAME‘)){ Route::parseUrl( Config::get(‘REWRITE_RULE‘), Config::get(‘REWRITE_ON‘) ); } $controller = ‘app\‘. APP_NAME .‘\‘. CONTROLLER_NAME;$action = ACTION_NAME; if( !class_exists($controller) ) { throw new Exception("Controller ‘{$controller}‘ not found", 404); } $obj = new $controller(); if( !method_exists($obj, $action) ){ throw new Exception("Action ‘{$controller}::{$action}()‘ not found", 404); } Hook::listen(‘actionBefore‘, array($obj, $action)); $obj ->$action(); Hook::listen(‘actionAfter‘, array($obj, $action)); } catch(Exception $e){ Hook::listen(‘appError‘, array($e)); } Hook::listen(‘appEnd‘); } }
代码里面的Config.php和Hook.php跟App.php 在同一个目录
Config.php为配置文件
Hook.php为钩子文件(什么叫钩子文件,说白了就是在程序的运行当中调用其他钩子的一个类)
以上是关于从零开始写自己的PHP框架系列教程[App.php]的主要内容,如果未能解决你的问题,请参考以下文章
《从零开始,学会Python爬虫不再难!!!》系列导航(持续更新中)
《从零开始,学会Python爬虫不再难!!!》系列导航(持续更新中)