My goal is to setup a proper development environment using Ubuntu 16.04 to build Joomla extensions.

Until now I've just been zipping my extension and reinstalling it. That should drive anyone crazy.

As I sometimes also want to debug using Xdebug and I want to directly view the effect of my code changes I thought it would be nice to develop the extension directly inside the Joomla installation directory and then copy it back again to an extension.

I've read https://docs.joomla.org/Extension_development_using_eclipse_and_phing.

They use Phing there as a build tool and propose some example build scripts for both development directions (from extension to Joomla installation directory and vice versa).

Then I found this Git repository: https://github.com/enav/phing-joomla-extension-builder. Which works and seems to be usable in tandem with Git.

Still, I'd like to know if someone already has come up with a more efficient and proven development environment?

Or maybe someone has some pointers for creating a sane development environment? I'm open to suggestions.

For anyone looking for the part about the file permissions issue: as suggested in the comments I've split up this question and placed it here:


  • I wouldn't normally say this, but it might be an idea to also post your question on Stack Overflow, where it may receive more attention – Lodder Oct 19 '17 at 11:10
  • @Lodder Thanks, I've followed your advice and created a very similar question here at StackOverflow: stackoverflow.com/questions/46832534/… – Wieger Oct 19 '17 at 14:42
  • 4
    For people looking at starting a dev environment, I would recommend checking out this tutorial -> vdespa.com/joomla-3-getting-started-with-extension-development It has a lot of good pointers. – TryHarder Oct 19 '17 at 22:40
  • 1
    @TryHarder Thank you for your suggestion and also the link you posted. I have split up the question. I will also read the page you posted regarding the development environment and test it. – Wieger Oct 20 '17 at 15:57
  • 1
    @TryHarder It is a pity that IDE is not free and I don't know if we will have enough RAM available for using a virtual machine (Vagrant) on top of the already running Ubuntu 16.04. Still, the tutorial is much appreciated, especially the tip of using symbolic links for extensions! – Wieger Nov 4 '17 at 23:54

Once a user recomend to me build a development environment using Ant

How to version a Joomla component

Also, you can build a structure usint git submodules. Where the project will be split in the joomla folders, and somewhere you'll keep a master git project for each components with all the submodules togheter. This will become the zip file

| improve this answer | |

My question was answered in the comments section by user TryHarder. I'll formulate it as follows:

The approach I'm using is this:

  • Take a copy of your component and install it;
  • Remove the installed component folders within your Joomla installation (administrator/components/com_component, components/com_component, media/com_component);
  • Then create symbolic links from those folders to folders within a copy of your component;
  • The referenced copy of your component can be properly versioned using Git.

If there are any database changes (e.g. SQL installation script changes) then one can execute some commands (e.g. ALTER TABLE or CREATE TABLE) to add the fields or tables, if one does not want to reinstall the component.

Another option is to just run the SQL uninstall script for your database and then run the SQL install script again, maybe even via a Git hook or semi-automatic via a script which invokes MySQL (or some other database) to execute the SQL.

Of course one can always remove the component from the Joomla installation and install again. If so, then the process in this post above needs to be repeated.

The creating of symbolic links could be automated using a script.

If you want your component to live inside the Joomla installation directory, this is also possible, e.g. living in say _source/components/com_mycomponent, then you just need to add the _source folder to your .gitignore file.

Source: http://vdespa.com/joomla-3-getting-started-with-extension-development/ (via user TryHarder).

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.