Controllers
Controllers add dynamic abilities to your views and are the interface between views and models. The controller file is optional and pages will load fine with only a view file, but controllers significantly increase your available functionality.
The controller file must contain a class inside it with the same name as the filename plus "Controller" appended to it, eg. in a crayons file you would have a
Each methods inside the class is an action that corresponds to the second tier of the URL, so a
The
so a method returning:
Would have
If an action method exists then everything works normally. If no method exsists then it will send the request to the
The controller file must contain a class inside it with the same name as the filename plus "Controller" appended to it, eg. in a crayons file you would have a
crayonsController class. The name of the file will always match the first tier of the URL to access it, eg.: www.MySite.com/crayonsEach methods inside the class is an action that corresponds to the second tier of the URL, so a
green() method of the crayonsControllers class in the crayons file would have a URL of www.MySite.com/crayons/greenThe
index() method is a special method that is used when no action is set in the URL www.MySite.com/crayons). An associative array returned from the method gets extracted as local variables within the view, layout and elements.so a method returning:
return array('favoriteColor' => 'blue');Would have
$favoriteColor set to blue in the view, layout and elements.Implicit actions
There is a special constant that when set to true will make the action segment of the URL optional:const optionalAction = true;If an action method exists then everything works normally. If no method exsists then it will send the request to the
index() method; when this occurs the mvc::$action property is set to index and the mvc::$params array will contain URL segments beginning immediately after the contoller, so www.MySite.com/crayons/green/melted would have param 0 as green and param 1 as melted. If a green method was defined in the crayons controller than it would handle the request and mvc::$action would be green and param 0 would be melted.

