5.13 跨模块调用

 
在开发过程中经常会在当前模块调用其他模块的方法,这个时候就涉及到跨模块调用,我们还可以了解到A和R两个快捷方法的使用。
例如,我们在Index模块调用User模块的操作方法
  1. class IndexAction extends Action{
  2. public function index(){
  3. //实例化UserAction
  4. $User = new UserAction();
  5. //其他用户操作
  6. //...
  7. $this->display(); //输出页面模板
  8. }
  9. }

因为系统会自动加载Action控制器,因此 我们不需要导入UserAction类就可以直接实例化。
并且为了方便跨模块调用,系统内置了A方法和R方法。
A方法表示实例化某个模块,例如,上面的方法可以改为:

  1. class IndexAction extends Action{
  2. public function index(){
  3. //实例化UserAction
  4. $User = A('User');
  5. //其他用户操作
  6. //...
  7. $this->display(); //输出页面模板
  8. }
  9. }
4
事实上,A方法还支持跨分组或者跨项目调用,默认情况下是调用当前项目下面的模块。
跨项目调用的格式是:
A('[项目名://][分组名/]模块名')
例如:
  1. A('User') //表示调用当前项目的User模块
  2. A('Admin://User') //表示调用Admin项目的User模块
  3. A('Admin/User') //表示调用Admin分组的User模块
  4. A('Admin://Tool/User') //表示调用Admin项目Tool分组的User模块
 
R方法表示调用一个模块的某个操作方法,调用格式是:
R('[项目名://][分组名/]模块名/操作名',array('参数1','参数2'…))
例如:
  1. R('User/info') //表示调用当前项目的User模块的info操作方法
  2. R('Admin/User/info') //表示调用Admin分组的User模块的info操作方法
  3. R('Admin://Tool/User/info') //表示调用Admin项目Tool分组的User模块的info操作方法

R方法还支持对调用的操作方法需要传入参数,例如User模块中我们定义了一个info方法:

  1. class UserAction extends Action{
  2. protected function info($id){
  3. $User = M('User');
  4. $User->find($id);
  5. //...
  6. }
  7. }

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

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

表示调用当前项目的User模块的info操作方法,并且id参数传入15

 
 
 

最新文章

  1. opencv计算运行时间
  2. MySQL 显示命令
  3. 今天学的是 HTML基本元素、基本语法元素特点等,就发图片吧。
  4. ASP.NET缓存全解析4:应用程序数据缓存 转自网络原文作者李天平
  5. Entity Framework问题:ReferentialConstraint 中的依赖属性映射由存储生成的列
  6. 20140708郑州培训第二题Impossible Game
  7. String,StringBuffer,StringBuilder的简单比较
  8. 到底该如何入门Keras、Theano呢?(浅谈)
  9. c语言中的#ifndef、#def、#endif等宏是什么意思
  10. ES6核心内容精讲--快速实践ES6(二)
  11. SNS团队第一次站立会议(2017.04.22)
  12. java--加强之 jdk1.5简单新特性,枚举,注解
  13. 同源策略 & 高效调试CORS实现
  14. Maven-常用插件
  15. 【dfs】P1433 吃奶酪
  16. 前端分辨pc和移动端导入不同css
  17. vue--移动端兼容问题
  18. 标准JSF的生命周期
  19. java-RAC Oracle 连接字符串
  20. 检测空值,以及会不会出现mapping类型不一致的问题

热门文章

  1. Linux下打包命令tar
  2. 【java】JDK安装后,没有配置环境变量,也可以java -version查看到版本信息
  3. 使用.reg文件删除暴风影视库图标和注册信息
  4. openstack如何设置cpu和内存的超配比例
  5. LINUX 和WINDOWS下的自动登录小脚本
  6. 基础普及-Jar、War、Ear
  7. unity3d NGUI 本地化 多语言
  8. POSTGRESQL同步——SLONY-I配置
  9. iOS 之UIBezierPath
  10. Hibernate中所有包作用详细讲解