J2.5 talk

Creating a System Plugin to augment JRouter

From Joomla! Documentation

Revision as of 15:46, 10 April 2012 by Garyamort (Talk | contribs)

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 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.