When using Actions, all the modules who will be receiving requests should map their actions in the Module::mapActions method, by calling Actions::mapAction.
​Actions is the default base core module because it is what you'll need in most cases. If you're experimenting with different ways of using Cherrycake, you can specify a different set of base modules in Engine::init​
When a request is received, Actions will look through all the mapped actions. If any of them matches the current request, it will load the associated module and run the mapped method.
​Actions calls mapActions methods on all available modules during its initialization, using the Engine::callMethodOnAllModules​
For example, the following module maps a simple action named home
that will call the viewHome
method when the root page /
is requested:
<?php​namespace CherrycakeApp\Modules;​class Home extends \Cherrycake\Module {​public static function mapActions() {global $e;$e->Actions->mapAction(["home",new \Cherrycake\ActionHtml(["moduleType" => \Cherrycake\ACTION_MODULE_TYPE_APP,"moduleName" => "Home","methodName" => "viewHome","request" => new \Cherrycake\Request(["pathComponents" => false])])]);}function viewHome() {// Show the home page}​}