It's only taken four and a bit years, but I finally got around to updating ExpressionEngine on this site. The site was running 2.11.9 and it's now on the latest version, 5.2.4. The main reason for the upgrade was because the way I had been dealing with images and code in blog posts wasn't ideal, it wasn't very flexible or user-friendly when creating content, and on the front end, the output wasn't responsive enough.
And funnily enough I deployed the newly-upgraded site just a few days after EllisLab launched the new version of the ExpressionEngine site. Great minds think alike 😉
Fluid fieldtype
These days 'content' or 'page' builders are quite common features in different CMSs, giving you the ability to add sequential blocks of content where you can choose different content types for each block. That's what I wanted too, being able to mix images and code with text and have the CMS perform certain manipulations on the images and code without having to enter mark-up manually into a WYSIWYG editor.
With EE 2.x, there was no native way to achieve that. There were a couple of third party add-on options, Blocks and Content Elements, but neither are available anymore to download for EE2, so I was going to have to upgrade anyway. And by upgrading I'd be able to take advantage of EE's native Fluid fieldtype which does the same as the previously mentioned add-ons and more recent updates on the theme like Bloqs.
Hurdles (not many)
With such a long time between upgrades, I was expecting the process to be quite troublesome, but it was fairly straightforward. The site used to use Matrix and Playa but, as with the Fluid field, I decided to go with all native EE fieldtype replacements, Grid and Relationships. EllisLab provide the Playa & Matrix Importer for ExpressionEngine 2 and it works fine, creating duplicate fields while leaving your existing Matrix and Playa fields in place.
So the most time-consuming aspect of the upgrade was updating templates to use the new fieldtypes. But I also had a small issue with something trying to load Matrix even though I'd converted all the fields to Grid and then removed the fields and uninstalled the add-on. But if I removed the actual Matrix add-on folder, I'd get an error, even though I went through all the obvious places in the database and manually removed any table rows that were referencing Matrix. So for now, the Matrix folder is still in my add-ons folder, even though it's not being used.
I also spent a bit of time making some older plugins compatible with the new version of EE which in most cases just meant creating an addon.setup.php
file, removing the $plugin_info
array from the plugin file and adding the details to addon.setup.php
instead.
There were quite a few add-ons too which just weren't needed anymore so I simply removed them, so overall add-on usage is much lighter.
Performance
I had thought that upgrading to a more recent version of any CMS (assuming that everything else was pretty much the same as in my case) would naturally mean a site would get faster. But it didn't really work out that way. Admittedly, my testing very comprehensive, I just ran the site through wbench once before and after deploying the upgrade. And while the fastest times were tiny bit faster, the median times were a bit slower and the slowest times, a full second slower.
Not really enough of a decline to be concerned about and it's quite likely that my sample size was too small for both before and after to draw any meaningful conclusions. Any improvement in site performance was only going to be a by-product anyway, with the main benefit being a site which is now easier to create content with, and to keep up to date, than it previously was.
So if anyone needs help upgrading ExpressionEngine to the latest version, let me know.