82)PHP,基本框架类步骤

Posted 小油菜123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了82)PHP,基本框架类步骤相关的知识,希望对你有一定的参考价值。

framework.class.php

        

 

基本代码展示:

    

  1 <?php
  2 
  3 /**
  4  * 框架初始化功能类
  5  */
  6 class Framework {
  7     /**
  8      * 入口
      * 里面的static和self是一样的,都是表示当前类
9 */ 10 public static function run() { 11 //声明路径常量 12 static::_initPathConst(); 13 //确定分发参数 14 static::_initDispatchParam(); 15 // 当前平台相关的路径常量 16 static::_initPlatformPathConst(); 17 // 注册自动加载 18 static::_initAutoload(); 19 20 // 请求分发 21 static::_dispatch(); 22 } 23 24 /** 25 * 声明路径常量 26 */ 27 private static function _initPathConst() { 28 //目录基础常量的定义 29 define(\'ROOT_PATH\', getCWD() . \'/\');//getCWD()获得当前目录 30 define(\'APPLICTION_PATH\', ROOT_PATH . \'application/\'); 31 define(\'FRAMEWORK_PATH\', ROOT_PATH . \'framework/\'); 32 define(\'TOOL_PATH\', FRAMEWORK_PATH . \'tool/\'); 33 } 34 /** 35 * 初始化分发参数 36 */ 37 private static function _initDispatchParam() { 38 // 确定分发参数 39 // 平台 40 $default_platform = \'back\'; 41 define(\'PLATFORM\', isset($_GET[\'p\']) ? $_GET[\'p\'] : $default_platform); 42 // 控制器类 43 $default_controller = \'Manage\'; 44 define(\'CONTROLLER\', isset($_GET[\'c\']) ? $_GET[\'c\'] : $default_controller); 45 // 动作 46 $default_action = \'index\'; 47 define(\'ACTION\', isset($_GET[\'a\']) ? $_GET[\'a\'] : $default_action); 48 } 49 /** 50 * 声明当前平台路径常量 51 */ 52 private static function _initPlatformPathConst() { 53 //当前平台相关的路径常量 54 define(\'CURRENT_CONTROLLER_PATH\', APPLICTION_PATH . PLATFORM . \'/controller/\'); 55 define(\'CURRENT_MODEL_PATH\', APPLICTION_PATH . PLATFORM . \'/model/\'); 56 define(\'CURRENT_VIEW_PATH\', APPLICTION_PATH . PLATFORM . \'/view/\'); 57 } 58 /** 59 * 自动加载方法 60 */ 61 public static function userAutoload($class_name) { 62 //先处理确定的(框架中的核心类) 63 // 类名与类文件映射数组 64 $framework_class_list = array( 65 // \'类名\' => \'类文件地址\' 66 \'Controller\' => FRAMEWORK_PATH . \'Controller.class.php\', 67 \'Model\' => FRAMEWORK_PATH . \'Model.class.php\', 68 \'Factory\' => FRAMEWORK_PATH . \'Factory.class.php\', 69 \'mysqlDB\' => FRAMEWORK_PATH . \'MySQLDB.class.php\', 70 \'SessionDB\' => TOOL_PATH . \'SessionDB.class.php\', 71 ) ; 72 //判断是否为核心类 73 if (isset($framework_class_list[$class_name])) { 74 //是核心类 75 require $framework_class_list[$class_name]; 76 } 77 //判断是否为可增加(控制器类,模型类) 78 //控制器类,截取后是个字符,匹配Controller 79 elseif (substr($class_name, -10) == \'Controller\') { 80 // 控制器类, 当前平台下controller目录 81 require CURRENT_CONTROLLER_PATH . $class_name . \'.class.php\'; 82 } 83 //模型类,截取后5个字符,匹配Model 84 elseif (substr($class_name, -5) == \'Model\') { 85 // 模型类,当前平台下model目录 86 require CURRENT_MODEL_PATH . $class_name . \'.class.php\'; 87 } 88 } 89 /** 90 * 注册自动加载 91 */ 92 private static function _initAutoload() { 93 spl_autoload_register(array(__CLASS__, \'userAutoload\')); 94 } 95 /** 96 * 分发请求 97 */ 98 private static function _dispatch() { 99 //实例化控制器类,并调用动作方法 100 $controller_name = CONTROLLER . \'Controller\'; 101 //实例化 102 $controller = new $controller_name();//可变类 103 //调用方法(action动作) 104 //拼凑当前的方法动作名字符串 105 $action_name = ACTION . \'Action\'; 106 $controller->$action_name();//可变方法 107 } 108 }

 

以上是关于82)PHP,基本框架类步骤的主要内容,如果未能解决你的问题,请参考以下文章

java:Spring框架1(基本配置,简单基础代码实现)

php基本框架目录

php基本框架目录

将非框架 PHP 项目移植到 Laravel 4.x

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

php_mvc实现步骤八