As much as I love Joomla!, there is a shortcoming compared to the other two major Open Source PHP CMS, WordPress and Drupal: it doesn’t come with a command-line interface like wp-cli or drush. This is a bit of a problem when you’re in need of mass-provisioning sites with extensions or updates in an unattended manner. Using a CLI tool is the only way to provide a scriptable, efficient and unattended method of doing so. In this post we’ll see a practical way to overcome this limitation. Continue reading Installing Joomla! extensions from the command line

Hello, I’m Nicholas. Most of you know me as the author of popular components like Akeeba Backup and Admin Tools. Some of you know me as a frequent code contributor to Joomla!. I’m very outspoken to the point that people think I’m an asshole. Most likely I am. I was working as a business consultant long before I turned to full time software development and, as you know, business consultants are always seen as assholes, usually ranking lower in being well-liked than accounting and legal departments. But you know what else business consultants do besides being assholes? They know how to make an organisation do more with the same people (or even less, which is why people think we are assholes). So there you have it, I was refactoring businesses before I got to refactoring code. This is my take on refactoring Joomla!’s organisation structure. It’s a long read, ideal for a Sunday morning. Continue reading Refactoring Joomla!

My last week’s blog post on running Apache, MySQL and multiple PHP versions on Windows seems to have been a smash hit. This week we’ll be doing the same thing on Mac OS X. For those of you who didn’t click the link, I decided it would be a cool, geeky project to implement an Apache-MySQL-PHP web server without using a pre-packaged server like MAMP or Zend Server. My goal was to have the same sites run under different versions of PHP by just visiting a different URL on my browser. This makes cross-PHP testing of sites a piece of cake.

I just bought an Intel NUC (Next Unit of Computing) mini-PC to serve as my secondary, Windows-powered development machine (the primary is an Apple Mac Mini). I decided it would be a fun* weekend project to implement an Apache-MySQL-PHP web server without using a pre-packaged server like XAMPP, WAMPServer etc. My goal was to have the same sites run under different versions of PHP by just visiting a different URL on my browser.

Two weeks ago we transferred our business site, AkeebaBackup.com, to a new host with a downtime of less than 15 minutes. The transfer of course took longer than that. Many people asked how we pulled this off. Keep reading on to find out!

I’m quite sure that most of you wouldn’t bat an eyelid on losing a pro bono job. You proposed to do some work for free, the other party didn’t agree for some odd reason, less work for you, end of story. But once in a while there’s a lesson to be had from such an experience, leading to interesting ripple effects. For example, a Joomla! guy ended up with a WordPress blog. Intrigued?

Joomla! 3.2 includes an abundance of new features appealing to end users and developers alike. One of these new features is two factor authentication. In this tutorial you will learn what two factor authentication is and how you can use it in your components to enhance the security of potentially dangerous or important operations, just like most banks do. Continue reading Joomla! 3.2 – Two Factor Authentication for Developers

As I’ve said many times, I am an avid user of Zend Server for local development on my Mac. It has pretty much everything you need, including a simple to use back-end for viewing issues occuring on your server which make debugging easier. Well, on the debugging front it has a major shortcoming: it comes with Zend Debugger which only works with the very expensive Zend Studio IDE. All other IDEs (Eclipse, NetBeans, phpStorm, …) only provide support for XDebug. Every time I update Zend Server I have to install and enable XDebug instead of Zend Debugger. It’s easy and will help you debugging your PHP applications easily on your local environment. This article describes how to do it. Continue reading Enabling XDebug on Zend Server on Mac OS X

As a Joomla! developer I often find myself providing support to users of my software. Sometimes, despite my best intentions, I hit a stone wall: a server setting is amiss. In this case I explain to my users what the problem is and ask them to contact their host to rectify it. One of the most irritating situations I’ve found myself dealing with is when a host replies “we can’t do this for security reasons”. I would generally accept that, if only the host actually knew what they’re talking about. And, yes, I am specifically talking about the fopen URL wrappers and the fact that they are stupidly disabled on many hosts. Continue reading Flicking the wrong switch