For example, if we need to call the time of the HTML generation module in the insert method of the news module, we need to call the cross-module method. So how does thinkphp call methods across modules?
For example, if we need to call the time of the HTML generation module in the insert method of the news module, we need to call the cross-module method. So how does thinkphp call methods across modules?
During php development, sometimes I write a method in a module, but I want to call it in another module. in this case, cross-module calls are required, for example, I now have a usersAction module with a test () method. how can I call it in company? There are two ways
1: $ User = A ("User"); // instantiate the UserAction controller object
$ User-> importUser (); // call the importUser operation method of the User module
Here, A ("User") is A shortcut, which is equivalent to the following code:
Import ("@. Action. UserAction ");
$ User = new UserAction ();
In fact, there are more simple calling methods than method A in this example, for example:
R ("User", "importUser"); // remotely call the importUser operation method of the UserAction controller
The above is only called in the current project. if you need to call methods between multiple projects, you can do the same:
$ User = A ("User", "App2"); // instantiate the UserAction controller object of the App2 project
$ User-> importUser ();
// Remotely call the importUser operation method of the UserAction controller of App2 project
R ("User", "importUser", "App2 ");
My example:
A project is divided into two groups: admin and home.
Home is a group by default:
When instantiating the module (the current position is instantiated in the index method of the IndexAction class in admin)
Import ("@. Action. Home. UserAction ");
$ User = new UserAction ();
$ User-> show ();
$ User-> add ();
Note: The called method must be public.
Another simple method is to write the test method to common. php, because the file has been called by default during loading.