Mach-II for PHP: A Preview - Basic Coding Techniques
(Page 6 of 7 )
Creating Listeners
Key to understanding Mach-II is discovering how to access variables passed in an event. For Fusebox developers the technique will feel similar to referencing form variables in the attributes scope: the framework does the conversion of form and url variables to properties of a Mach-II event (Event).
In our demo we post a form and process the variables with a Mach-II listener class. This class is a regular PHP class that extends MachII.framework.Listener:
class phpMachII_model_processForm extends MachII_framework_Listener
{
function configure() {} // Called automatically by framework
}
Figure 9 ./model/processForm.php ~ A listener class
These variables are accessed by the listener class by calling Event like this:
$event->getArg(‘username’);
Figure 10 Accessing a value in Event
Listener classes are called by the framework using the mappings defined in the type attribute of a <listener> node (fig. 8). A method is defined in the event handler and then passed to the listener. Mach-II locates the listener class in its directory and calls the desired method. Finally, the listener receives the Event object and processes the request.
class phpMachII_model_processForm extends MachII_framework_Listener
{
// Called automatically
function configure() {}
function validateForm($event) {
// Retrieves values posted in form
$thisUN = $event->getArg('username');
$thisPW = $event->getArg('password');
if (isset($thisUN) && isset($thisPW) && $thisUN == "admin" && $thisPW == "machii") {
$message = "Success";
$this->announceEvent('success', $message);
} else {
$message = "Failure";
$this->announceEvent('noSuccess', $message);
}
return $message;
}
}
Figure 11 ./model/processForm.php ~ accessing form variables from a listener by executing Event’s getArg method.
Next: Creating Views >>
More PHP Articles
More By Mike Britton