A quick Joomla component development introduction

Saying Joomla development is a trivial task would be a lie. You'll agree to that as soon as you recognize Joomla as a huge PHP Application Framework. And it of course always takes some time to get used to a framework like that. Incidentally that's the situation for all frameworks of this kind, whether it's Drupal, the Zend Framework or whatever software you like. So it's not just a Joomla property and no reason to choose another framework at all.

The great advantages of Joomla are it's large developer community and it's clear structure. I'm unfortunately able to compare Joomla directly to Drupal, because I yet still maintain two Drupal sites and developed some Drupal modules. And from this experience I now can say: Drupal is almighty, but lacks structure.

Back to Joomla, the overhauled code of Joomla 1.5 should belie all them calling PHP a nightmare. Well PHP is very flexible and thus opens many ways for developers to break their code somehow. It furthermore is simple and tolerant to enable absolute beginners to write some lines of functional code. I tend to compare PHP to BASIC, which is a programming language with tons of built in functions making coding very simple. And the Joomla framework lifts PHP to the level of a full featured object related programming language utilizing the concept of MVC and Design Patterns.

This article will continue with an introduction in developing Internet applications on the Joomla MVC framework. As the article is yet not completed, I now provide you with some very important information and Internet sources about application development for Joomla:

Joomla extension types

  • Modules
    A module is a rather simple kind of extension. It can be used to display information besides the main content. A module is similar to Drupal's "Blocks", displayed left or right on the page, or whereever the template designer enabled the template to host the module.
  • Plugins
    A plugin is a kind of framework hook. It allows for modifying the behavior of Joomlas system features. There are different kinds of plugins, enabling you to enhance for example the user authentication or adding features to the Joomla search feature. In Drupal world these plugins would be implemented via certain Drupal hooks.
  • Components
    Components are the most complex kind of Joomla extension. They are displayed in the content area of a template. The content view is a component. The search feature is another component. Look at the components directory of you Joomla installation to see all Joomla core components. Components are Joomla applications. This article is about introducing these components and the first step of developing own components to you.
  • Templates
    Joomlas output is template driven. As well as that's a very interesting part of Joomla, it's not part of this article.
  • Translations
    Joomla can easily be internationalized. Again, a very interesting feature, but not part of this article.

Web-Links for beginners in Joomla component development

[TO BE CONTINUED]