aboutsummaryrefslogtreecommitdiffstats
path: root/doc/faq_developers.bb
diff options
context:
space:
mode:
Diffstat (limited to 'doc/faq_developers.bb')
-rw-r--r--doc/faq_developers.bb28
1 files changed, 28 insertions, 0 deletions
diff --git a/doc/faq_developers.bb b/doc/faq_developers.bb
new file mode 100644
index 000000000..192dcb5c5
--- /dev/null
+++ b/doc/faq_developers.bb
@@ -0,0 +1,28 @@
+[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]