热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ThinkPHP跨模块调用方法

比如我们需要在新闻模块的insert方法里调用HTML生成模块的时间生成新闻方法,我们就需要用到跨模块方法的调用。那么在thinkphp如何跨模块调用方法呢

比如我们需要在新闻模块的insert方法里调用HTML生成模块的时间生成新闻方法,我们就需要用到跨模块方法的调用。那么在thinkphp如何跨模块调用方法呢?

在做php开发的时候,有时候我在一个模块里面写了一个方法,但是我要在另外的一个模块内调用,此时就需要跨模块调用了,比如现在我有一个usersAction这个模块 内有一个test()方法 我在company内要调用 此时如何进行呢?有2种办法

一:$User = A("User"); // 实例化UserAction控制器对象

$User->importUser(); // 调用User模块的importUser操作方法

这里的A("User") 是一个快捷方法,和下面的代码等效:

import("@.Action.UserAction");

$User = new UserAction();

事实上,在这个例子里面还有比A方法更简单的调用方法,例如:

R("User","importUser"); // 远程调用UserAction控制器的importUser操作方法

上面只是在当前项目中调用,如果你有需要在多个项目之间调用方法,一样可以完成:

$User = A("User","App2"); // 实例化App2项目的UserAction控制器对象

$User->importUser();

// 远程调用App2项目的UserAction控制器的importUser操作方法

R("User","importUser","App2");

我的一个例子:

一个项目下面分了两个组:admin和home

home默认是组:

实例化模块的时候(当前位置是在admin中IndexAction类的index方法中实例化)

import("@.Action.Home.UserAction");

$User=new UserAction();

$User->show();

$User->add();

注:调用的方法必须是 public型的

另外还有一种简单的办法就是 把test方法写到common.php内即可 因为这个文件在加载的时候已经默认的调用了


推荐阅读
author-avatar
qiuyaji4379
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有