J2.5 talk

Difference between revisions of "Creating a System Plugin to augment JRouter"

From Joomla! Documentation

 
(No difference)

Latest revision as of 08:13, 15 July 2013

From within a plugin, there are 2 ways to get the currently active application context. One is to use the global $app variable:

    global $app;

The other is to use JFactory to get the application.

 $app = JFactory::getApplication('site');

Which is the preferred option?



Use of global is a smell of bad code. It will import any variable from the global name space identified by its name, regardless of its meaning. In an ideal world the global namespace would not be polluted with global variables. So the latter option is the (only) right one. Nibra 13:53, 10 April 2012 (CDT)



Thanks....updated. At the end of the day there should be one 'someplace' to get default system objects. It doesn't really matter to me which one it is...as long as it is maintained for backwards compatibility. Some of the getInstance functions haven't been, so I always debate internally whether I want to count on the api....or an existing known variable.



Whilst I was testing this I saw that the callbacks added with $router->attachBuildRule have their return values are discarded. Callbacks added with $router->attachParseRule have their return $var's used. tracesOfNut (talk) 04:29, 26 September 2012 (CDT)