tp5怎么跨控制器调用别的方法

以前tp3.2版本跨控制器调用方法的时候用的是A方法 即

    $IndexController = A("index");
    return $IndexController->index();
这样就能获取index控制器下面index方法的数据了 。但是TP5这个方法用不了 
是应为TP5取消了A方法 换成了controller
/**
 * 用于实例化访问控制器
 * @param string $name 控制器名
 * @param string $path 控制器命名空间(路径)
 * @return Think\Controller|false
 */
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;
    }
    if(class_exists($class)) {
        return new $class();
    }else {
        return false;
    }
}
同一个controller文件夹下的控制器可以直接调用 即

 $index = controller('Index');
 return $index->index();

不同控制器下的 文件想要掉用怎么办呢?比如mobile模块下想调用HOME模块下的短信发送方法 
首先要new 这个控制器 在进行调用就可以了

use app\common\controller\Sms;
$SmsController = new Sms;
return $SmsController ->getSms();

你可能感兴趣的:(php函数,php内功)