ThinkPHP实现跨模块调用操作方法概述
2015-07-13 14:50
537 查看
使用 $this 可以调用当前模块内的方法,但是很多情况下经常会在当前模块中调用其他模块的方法。这篇文章主要介绍了ThinkPHP跨模块调用操作,需要的朋友可以参考下
使用 $this 可以调用当前模块内的方法,但是很多情况下经常会在当前模块中调用其他模块的方法。ThinkPHP内置了A方法与R方法这两个特殊的大写字母方法来处理跨模块调用的问题。
目前Index模块内有index操作User模块有showName操作User模块及showName操作具体代码如下:
?
我们将在 Index 模块的 index 操作中调用上面的 showName 操作。
通过 A 方法跨模块调用操作
A 方法用于实例化其他模块(当于 new 关键字),模块被实例化之后,就可以以对象的方式调用模块内的操作。
在 Index 模块的 index 操作中调用 User 模块的 showName 操作实例:
?
A 方法还支持跨分组调用和跨项目调用模块,语法如下:
A('<项目名://><分组名/>模块名')
?
通过 R 方法跨模块调用操作
ThinkPHP 还提供了 R 方法,可直接调用其他模块的操作方法,将上面使用 A 方法的例子更改为 R 方法:
?
R 方法同样也支持跨分组调用和跨项目调用方法,语法如下:
R('<项目名://><分组名/>模块名/操作'<, array()>)
?
该例子表示 showName 操作将接受 5 这样一个参数。而对应的 showName 操作可能为:
?
要传入多个参数,那么将 R 方法的 array() 参数数组依次定义多个元素即可。
A 方法还是 R 方法?
从上面的例子可以看出,A 方法和 R 方法都可以调用其他模块的操作,那是使用 A 方法好还是 R 方法好呢?在此建议如下:如果要使用其他模块内的多个方法,那么建议使用 A 方法,通过对象的方式调用该模块的不同方法,避免多次实例化对象;如果只需要使用其他模块内的其中一个方法,那么无疑 R 方法是最简洁的。
使用 $this 可以调用当前模块内的方法,但是很多情况下经常会在当前模块中调用其他模块的方法。ThinkPHP内置了A方法与R方法这两个特殊的大写字母方法来处理跨模块调用的问题。
目前Index模块内有index操作User模块有showName操作User模块及showName操作具体代码如下:
?
通过 A 方法跨模块调用操作
A 方法用于实例化其他模块(当于 new 关键字),模块被实例化之后,就可以以对象的方式调用模块内的操作。
在 Index 模块的 index 操作中调用 User 模块的 showName 操作实例:
?
A('<项目名://><分组名/>模块名')
?
ThinkPHP 还提供了 R 方法,可直接调用其他模块的操作方法,将上面使用 A 方法的例子更改为 R 方法:
?
R('<项目名://><分组名/>模块名/操作'<, array()>)
?
?
A 方法还是 R 方法?
从上面的例子可以看出,A 方法和 R 方法都可以调用其他模块的操作,那是使用 A 方法好还是 R 方法好呢?在此建议如下:如果要使用其他模块内的多个方法,那么建议使用 A 方法,通过对象的方式调用该模块的不同方法,避免多次实例化对象;如果只需要使用其他模块内的其中一个方法,那么无疑 R 方法是最简洁的。
相关文章推荐
- PHP mail()函数
- php实现通过cookie换肤的方法
- PHP Session
- PHP SPL他们留下的宝石
- ContentProvider总结
- php数组合并
- 通过php 执行git pull 自动部署
- 【2015.07.13周一】【Thinkphp】【3.2.3完全开发手册】很多东西都可以在这本手册中找到答案,还是多翻阅吧
- php一些常识
- About php Extensions
- php解决各种excel表格形式导出问题
- 【2015.07.13周一】【Thinkphp】【URL重写】隐藏index.php的步骤
- php接口和多态的概念以及简单应用
- php+mysql实现简单的增删改查功能
- Php Socket
- zend studio 11.0.0 官方版+破解文件+注册机
- PHP中new static()与new self()的区别
- GetPrivateProfileString函数--INI配置文件
- 【问底】王帅:深入PHP内核(二)——SAPI探究
- phpcms v9 如何实现用户登录