thinkphp跨模块调用方法

thinkphp跨模块调用方法 在开发crm项目中经常遇到当前模块调用其他模块的方法涉及到跨模块调用,了解到A和R两个快捷方法的使用。

创新互联公司客户idc服务中心,提供绵阳电信机房、成都服务器、成都主机托管、成都双线服务器等业务的一站式服务。通过各地的服务中心,我们向成都用户提供优质廉价的产品以及开放、透明、稳定、高性价比的服务,资深网络工程师在机房提供7*24小时标准级技术保障。

例如,在Index模块调用User模块的操作方法

class IndexAction extends Action{

publicfunction index(){

$user=newUserAction();//实例化UserAction();

$this->display();

}

}

?>

因为系统会自动加载Action控制器,因此我们不需要导入UserAction类就可以直接实例化。

并且为了方便跨模块调用,系统内置了A方法和R方法。

A方法表示实例化某个模块,例如,上面的方法可以改为:

class IndexAction extends Action{

publicfunction index(){

$user=A(‘User’);//实例化UserAction();

$this->display();

}

}?>

事实上,A方法还支持跨分组或者跨项目调用,默认情况下是调用当前项目下面的模块。

跨项目调用的格式是:

A(''[项目名://][分组名/]模块名'')

A(''User'')表示调用当前项目的User模块

A(''Admin://User'')表示调用Admin项目的User模块

A(''Admin/User'')表示调用Admin分组的User模块

A(''Admin://Tool/User'')表示调用Admin项目Tool分组的User模块

R方法表示调用一个模块的某个操作方法,调用格式是:

R(''[项目名://][分组名/]模块名/操作名'',array(''参数1'',''参数2''…))

R(''User/info'')表示调用当前项目的User模块的info操作方法

R(''Admin/User/info'')表示调用Admin分组的User模块的info操作方法

R(''Admin://Tool/User/info'')表示调用Admin项目Tool分组的User模块的info操作方法R方法还支持对调用的操作方法需要传入参数,例如User模块中我们定义了一个info方法:ClassUserActionextendsAction{

Protectedfunctioninfo($id){

$User=M(''User'');

$User->find($id);

…..

}

}

接下来,我们可以在其他模块中调用:

R(''User/info'',array(15))

表示调用当前项目的User模块的info操作方法,并且id参数传入15
网站栏目:thinkphp跨模块调用方法
标题链接:http://myzitong.com/article/eephjh.html