Welcome to the tutorial. My name is Nohman Habib and I am a web developer, with over 8 years of professional experience. I will be your instructor in this course and will teach you how you can develop a complete joomla extension, from scratch. 8 years have been passed, since I first downloaded and used joomla and from that day I have fallen love with it and from that time, I am programming in it. I have developed a lot of custom extensions, including simple to most complex ones.
The reason that why I am writing this course is, I have come around a lot of joomla ebooks and online tutorials on how to program in joomla and how to create an extension in it but through that much time, none of them attracted me. The reason was, most of them are incomplete and does not cover all the major areas of creating a complete extension. There are a lot of junior developers in my area which contact me regarding guidance in joomla development and on the basis of their common questions I have developed this crash joomla extension development tutorial, in which I am covering its all points.
Before starting actual development, let me explain you the skills required to go through this tutorial. You must have a valid understanding and practical experience of working in Object Oriented PHP. Joomla is built on MVC design pattern, so if you have worked previously on an MVC based framework, it would be a great plus. Similarly working experience of HTML and CSS is also required. The second most important thing is familiarity with database quires. Not complex ones, but still you should know how they work and are are executed. Before starting the course, download and install latest Joomla version and get familiar with its backend and basic functionality. You must not be expert in these things but they are the basis of joomla programming.
This tutorial is divided into basic three parts, i.e, Component / Module and Plugin development, each is then divided into its further sub parts. The major one is component development, including backend and frontend portion. Along with each tutorial page, I have included the example component source code as a zip file. My intention is, you must be downloading and installing the component along with each step we would be making to create a complete extension.
What we are going to build:
We are going to create a Dog breed info component in which user can enter new dog breeds and these could be edited / deleted from backend and frontend as well. This component will then be extended through a latest breed small slideshow module and a breeds search plugin. I have tried my best to cover all points in this course session which could enable you to develop complex joomla extensions. I have adopted a detailed explanation approach in most simple words, but still if you didn't understand any thing or if any point is confusing , you can contact me through comments and I will be here to reply back to your inquiries.
If my life remained, I will go on creating updates to this whole tutorial according to latest Joomla releases and you will get this programming stuff according to those latest updates and best coding practices.
Tools required to develop a joomla extension
You must have these below listed software installed to setup a development environment in order to create the extension.
Setting up a Local web server
The first step is to setup a local web server. Apache is most popular among all of the servers, but you can also use IIS if you are in windows.
PHP and MySql
You will need at least PHP 5.3 version in order to run Joomla 3.x, which will be integrated with your selected web server. The next thing is MySql server for database support. Its version should be 5.0.4 or later or later. There are also bundle packages available such as XAMPP and WAMP for installataion on almost all platforms and it makes so much easier for you to install all the required softwares in one go. I normally use XAMPP as it is lightweight and posses all the required functionality.
Each package comes with builtin database administrator, such as phpMyAdmin and Sequel Pro. phpMyAdmin is the best one and largely used.
You must have all the latest browsers installed, including IE, Safari, Chrome, Opera etc. If you also install mobile simulators to check layout on various devices, it would be a great plus.