在thinkphp裏面我們如何跨模塊調用(這裏使用Action舉例:如果項目需要的話,還有可能跨分組調用,所以有時候需要調用其他組的Action)。
我在開發的過程中經常會在當前Action中調用其他Action中的方法,這就涉及到跨Action的調用,我們還可以瞭解到A和R兩個快捷鍵方法的使用。
舉例A和R的用法:
- $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中IndexAction類的index方法中實例化)
- import("@.Action.Admin.UserAction"); //Admin就是組的名字
- $user = new UserAction();
- $user->add();
我們需要注意的是:調用的方法必須是 public型的, 本文中的Action爲縮寫,具體寫法:Action(或者分組Action)