Testing Joomla installations and extensions can be a tedious task. You need to setup different versions of Joomla, install extensions, configure Joomla, run different tests, etc. Doing all this manually is very laborious and time consuming.
At Joomlatools we are testing almost daily and had to come up with a better way to quickly and automatically install Joomla sites. Meet, Joomla Console.
Joomla Console is a command line console for common Joomla operations like creating and deleting sites, installing extensions, symlinking files etc. Here is a quick video how to use it to setup a Joomla site with just one command.
The console is built on the awesome Symfony Console package. It can do quite a lot. Below is an overview of the basic commands we have added so far.
How does it work?
You can create as many Joomla sites as you want using the simple
joomla site:create command. You want to test your extension with the latest released Joomla version? Just run
joomla site:create testsite.
Maybe you would like to help out with Joomla development and testing and ensure your extensions latest and greatest features will work with the next Joomla release? Just run
joomla site:create testsite --release=3.3-dev. It’s that easy!
Don’t need a site anymore? No problem. You can discard and delete it at any time. Running
joomla site:delete testsite will remove it completely, including the database.
Need to install multiple extensions? We got you covered. Extensions can be installed from the command line by running
joomla extension:install site com_my_extension. Nifty huh!
Try it yourself
Is that all? Nope! The console has some more tricks up its sleeve. Make sure to check out the documentation for more information on other commands.
The console is part of our Joomla Vagrant box, if you install the box all your need to do is execute
vagrant ssh to get access to the box shell to start using it.
The console can also be installed stand alone on any server. Instructions can be found in the console documentation.
Want to contribute to console or fix a bug? Don’t hesitate to fork us on GitHub and send a Pull Request!