While there are some restrictions as to what we can do in Joomla!, there are many ways to achieve the same goal. You should never feel restricted by conventional extension design, but you should always work with Joomla! and take advantage of the facilities that it provides.
Building supporting classes that do not relate specifically to part of the Joomla! framework is a common way to extend Joomla! beyond its intended scope. Making extensions easy to build is all part of the logic behind helper classes. These static classes allow us to categorize functionality and increase the code reuse.
Programming patterns are one of the weapons we can use to tackle a problem. Joomla! uses patterns extensively, from the complex MVC to basic iterators. When we create extensions, we can make use of existing classes and data stores to enhance and assist us. We can use the JRegistry
class to store and retrieve configuration data from the registry, the JUser
class to retrieve current user information...