aboutsummaryrefslogblamecommitdiffstats
path: root/doc/faq_developers.bb
blob: 192dcb5c5d9b2abfabf4b1161f957c642fa30f38 (plain) (tree)


























                                                                                                                                                                                                                                                                                                                                                  
[size=large][b]Frequently Asked Questions For Developers[/b][/size]

(...) still needs to be written (...)

[ul]
[*][b]What does $a mean?[/b]
$a is a class defined in boot.php and passed all around Red Matrix as a global reference variable. It defines everything necessary for the Red Matrix application: Server variables, URL arguments, page structures, layouts, content, installed plugins, output device info, theme info, identity of the observer and (potential) page owner ... 
We don't ever create more than one instance and always modify the elements of the single instance. The mechanics of this are somewhat tricky. If you have a function that is passed $a and needs to modify $a you need to declare it as a reference with '&' e.g. 

[code]function foo(&$a) { $a->something = 'x'; // whatever };

*or* access it within your function  as a global variable via get_app()

function foo() {
    $a = get_app();
    $a->something = 'x';
}


function foo($a) { $a->something = 'x'; }; 

will *not* change the global app state. 

function foo() {
   get_app()->something = 'x';
}
[/code]
[/ul]