自定义插件控件器 3.2.3

浏览:1538 发布日期:2015/05/17 分类:技术分享 关键字: 自定义插件控件器 3.2.3
3.2.3 自定义插件控制器
参考教程http://www.thinkphp.cn/document/491.html
官方文档更新了,
http://document.thinkphp.cn/manual_3_2.html#addon_controller
啥时候更新了这块的?之前好像没有看到
开始动手
在common/conf/config.php定义'VAR_ADDON'    =>    'addons'访问url: /upload/ke_upimg/addons/EditorForAdmin
(其实 /upload/ke_upimg [CONTROLLER_LEVEL==1] 就等同于 常用的 /控制器名/方法名 这样子的一个访问方式,只是定义了 VAR_ADDON 并在url中传入$_GET[VAR_ADDON] = 插件名,系统就会调用定义在其它位置的函数)
找到 controller() 函数,把$class输出可以知道,实际实例化的是 Addon\EditorForAdmin\Controller\UploadController类,调用 ke_upimg[ACTION_SUFFIX] 方法function controller($name,$path=''){
    $layer  =   C('DEFAULT_C_LAYER');
    if(!C('APP_USE_NAMESPACE')){
        $class  =   parse_name($name, 1).$layer;
        import(MODULE_NAME.'/'.$layer.'/'.$class);
    }else{
        $class  =   ( $path ? basename(ADDON_PATH).'\\'.$path : MODULE_NAME ).'\\'.$layer;
        $array  =   explode('/',$name);
        foreach($array as $name){
            $class  .=   '\\'.parse_name($name, 1);
        }
        $class .=   $layer;
    }
    echo $class;die;
    if(class_exists($class)) {
        return new $class();
    }else {
        return false;
    }
}
函数在/Thinkphp/common/functions.php
自定义 VAR_ADDON,只是修改了 url 的参数名,
找到 /Thinkphp/Thinkphp.php 64行 修改 ADDON_PATH 如:defined('ADDON_PATH')   or define('ADDON_PATH',     APP_PATH.'Addons');实例化对象变成了 Addons\EditorForAdmin\Controller\UploadController
这时候,可以把插件控制器放置到[参考onethink]
/Addons/EditorForAdmin/Controller/UploadController.class.php

最佳答案
评论( 相关
后面还有条评论,点击查看>>