Joomla and PHP 7

Joomla 3.5 with PHP 7 Support

What is Joomla

Joomla is a free content management system. As per a past survey, more than 25 million website owners have deployed Joomla services to keep their sites vibrant and operational. The company holds more than 10.3% of the market share and offers services in more than 204 countries.

In this article, we'll go through features of Joomla 3.5 and compare it to features introduced in Joomla 3.4 and focus on big change in PHP world – PHP 7. We'll also focus on native support of PHP 7 in Joomla 3.5 and how it's possible use PHP 7 in Joomla 3.4

Joomla 3.5 and its PHP 7 support and introduction of other new features

Many users always look forward to new versions of their preferred software tool as it could bring them new features for getting the desired outcomes comfortably and Joomla 3.5 is not an exception. Joomla always encourages contributions for a particular release. The CMS developer pays heed to the patches that are required to be tested and ensures that the features identified by Joomla on the roadmap for that specific release are addressed by volunteers who are curious to get involved.

You may be thinking what Joomla 3.5 brings to you. As an online blog or e-commerce store owner, how you can offer a pleasing shopping experience to your customers.

Long awaited PHP 7 Support in Joomla

Hot news in Joomla 3.5 is that it can finally support PHP 7! Using PHP 7 can improve the speed of the site dramatically.

Joomla always puts efforts to design advanced CMS solutions. With the release of version 3.5, PHP 7 is officially supported. It has been proven that it's nearly 50% increase in performance. This is in some cases outperforms Facebook's HHVM, which utilizes its own JIT (Just-In-Time) compiler.

Why You Need to Switch Over to Joomla 3.5?

With each PHP release, you could find that new functionality was added. In addition, stability and speed were improved. PHP 5 supported object-oriented programming, which allowed developers of Joomla for writing better codes and take advantage of object-oriented programming paradigms. The security and stability of Joomla are highly influenced by the features that are added to PHP and its version. We don't have to repeat, that it's important to stay up to date with most recent stable PHP version, because older major version is going to be discontinued as per Joomla's support policy. It happened in the past that there were security issues found in older versions of PHP. If such website used older version, it could not be able to get security patch that easily.

Improvements Done in PHP 7 and how they affect Joomla

After testing PHP 7 with the Beta 2 version of Joomla 3.5, the loading time of HTML output was reduced by 10% to 30% approximately. This is a major achievement from a simple change in the PHP version.

The improvement on PHP 7 is much noticeable on high traffic pages. If the web server fulfills around 100 requests per second with PHP 5.6, then the same server can handle between 200 and 300 requests per second with PHP 7. PHP 7 can offer advantages to computationally intensive and complex extensions of Joomla.

Backward Compatibility

Why Joomla's internal code had to be slightly changed and released? Joomla deployed JString as a class with the launch of Joomla 1.5. A framework package was introduced in Joomla 3.3 which had a duplicate class known as “string”. JSstring was made for extending the framework string package because they were duplicates. In PHP 7, “String” is a protected class name. This causes conflict with PHP 7 class. If you keep using JString, you would not experience issues of backwards compatible break. However, if you use the framework package directly, then backward compatibility break would occur.

Many users do not understand whether they need to switch over to PHP 7

Currently, many web hosting companies still prefer PHP 5.6 or 5.5. For web host, providing new PHP version involves cost, which companies tend to avoid. Users could potentially blame web hosting company instead checking the compatibility list themselves. You can directly ask your hosting company to offer PHP 7 support.

Importance of PHP 7 for Extension Developers

Any person who works on code with the “String” of PHP 7 has to upgrade the code and replace the same with “StringHelper”. If the code has not undergone update, the extension would stop working with Joomla 3.5. This change can be made easily.

Relase Date of Joomla 3.5

Official date of Joomla 3.5 release is February 17, 2016.

How to Test Website Speed with Existing PHP 5?

In order to compare speed of your website before and after upgrade of PHP version, you can use any free tool. There are plenty of them, one of those which we use is the Pingdom tool. This tool gives you also further insight on how to improve the speed of your website by optimizing loading speed of various other web resources and order in which they are being loaded.

Pingdom allows you to know whether your site is fast or slow.

With Pingdom, you can view load times, file sizes and gather details of every single element.

Get Performance Overview

Pingdom offers performance grade and tips. You can learn how your site conforms to performance best practices from Google Page Speed. The speed testing tool allows you to test the speed of your site from multiple locations. We'd recommend to choose location from which there's the majority of your customers.

All results are saved during the test. Users can review the results later and learn how things change over time. After you have performed the speed test, you can share the result with your peers, colleagues or hosting companies just by copying a single link which represents rendered result.

How Pingdom Works?

Test is conducted is conducted on real web browser. Therefore, the results match with the experience of end users. Tests are done through dedicated Pingdom servers.

All tests are conducted on real web browsers, so that results could exactly match with the experience of end user. All you have to do is to enter your URL at on-screen test box and press the “Test Now” button. After the speed test, you would get a report comprising of several sections. The sections include page analysis that helps you in identifying the causes of slow speed and the suggestions for fixing those issues. For details, visit

How to Test PHP 7 on Your Local Windows Environment?

There are many copy&paste articles on how to make an upgrade. We don't want to repeat it even here, so we'll give you rather a link:

Upgrading the local windows WAMP server to PHP 7:https://john-dugan.com/upgrade-php-wamp/

Good guide on upgrading to PHP 7 on Linux environment: https://www.digitalocean.com/community/tutorials/how-to-upgrade-to-php-7-on-ubuntu-14-04

Importance of upgrading Joomla on regular basis

In order to keep the security of your website intact, you should update the Joomla version that you use. It takes a few steps to complete the upgrade process.

Joomla currently offers two major versions that are supported officially which are Joomla 3.x and Joomla 2.5. There are unfortunately still many websites running on Joomla 2.5, because the migration to Joomla 3.x is not that smooth as you'd expect. The Joomla project developers work on both versions and offer bug fixes and security for both versions. Upgrading to a new version within the same branch can be performed easily through Joomla administrator.

Old versions like Joomla 1 and 1.5 are no longer supported and reached it's end of life. When the 3.5 version would be released, it would become a recommended version. Users of Joomla 2.5 are advised to move to the new branch soon after the release of 3.5 version.

How to Upgrade Within the Same Joomla Major Version?

If you want to go for manual upgrade, then you have to open the administrative area of . When you have done that, Joomla 3 would check the new versions at its official repository automatically. If any new version is available, you would receive a notification in quick links. Press the “update now” button to start the process.

After you have clicked on the update now link, the Joomla update page would open where you could see the information on the latest Joomla version, the installation procedure and the update package URL. Just click on the “Install the Update” button.

How to Migrate From One Major Joomla Version to Another?

Migrating to new major version is bit challenging because the extensions and templates which you use currently may not be compatible with the latest version. When you complete the migration task, you need to transfer your contents to new Joomla version. However, you may be required to update or change all extensions and templates before your site starts working.

In order to start the migration task, you have to access the administrative area. Then open . You would be taken to the Joomla update page. To enter the update server, you to choose the short term release settings by clicking the Options button.

A window containing the Joomla update component would pop up with the available settings. Provide click on the drop menu and choose Short Term Support. Click on Save & Close. When you switch to short term update server, Joomla would detect an available update immediately. You need to press Install the Update option to begin the migration. Joomla would take some time for migrating your content.

Updating from Joomla 3.4 to Joomla 3.5

We'd recommend you to do this on your local environment with PHP 7 installed. After you have installed WAMP server with PHP 7, you can upgrade your website with Joomla 3.5, which runs on Joomla 3.4 currently directly from localhost.

Step 1 – You have to analyze the system requirements for Joomla 3.5 and ensure that the sever environment fulfills those requirements.

Step 2 – Ensure that the extensions include templates are compatible with Joomla 3.5. You can do this by checking template's website or template's update in Joomla extension manager.

https://docs.joomla.org/images/0/04/J25-extension-plugin-remember-me-en.png

Step 3 – You have to develop a test site and conduct the upgrade test.

Step 4 – If you are unable to build the test site and conduct the upgrade test, you can seek assistance from a reliable Joomla developer. This step is irreversible, and your local website might be not accessible and all you'll see is just a blank screen. Make sure you have a backup of your existing files and database. It's a good practice to use some version control software such as Subversion (SVN) or Git to keep history of changes on your website. There are plenty of providers who offer this for free such as bitbucket.org or github.com. If you create such repository, make sure it's not PUBLIC! Never ever submit any files with passwords to remote repository. SVN or Git are for more advanced website owners, basic users could achieve the same with website's content and database being copied to safe location.

https://docs.joomla.org/images/9/96/J32-administrator-overview-en.png

Step 5 – When you are ready, you have to go to the Joomla Update component.

Step 6 – Click on the “Options” tab and change the setting to Short Term Support. Then, press Save to save the setting. You would be informed about the availability of Joomla 3.5. Click the button to begin the installation process.

https://www.siteground.com/img/knox/tutorials/uploaded_images/images/joomla/migration_3.png

Step 7 – Clear the cache of the browser in order to see the latest changes.

Testing Joomla Plugins after Updating to PHP 7

After you upgraded to Joomla 3.5 from Joomla 3.4, you can check whether the plugins are working properly.

Other features of Joomla 3.5

Joomla’s 3.5 update also features UX improvements, complete set of modern emojis, editor image drag and drop facility and update notification.

The UX improvements mostly focus on shortcuts to crucial repetitive tasks. You can easily flip your image and save time for your next article.

Update email notifications would allow you to know when you need to upgrade your website powered by Joomla. When you look at the set of available emojis, you would expect that they would make their way into third party extensions. Those extensions are not required to carry their own sets. It is a matter of surprise that Joomla can perform the task of a content management system, which fulfills your requirements.

Update Email Plugin

Joomla fixes bugs and conducts security updates after certain intervals. However, many users never come to know about these updates if they are not at the back-end of their websites. When an update is available, the users are notified by email.

Count Items

This is a set of pull requests to Joomla code base that add the number of unpublished, trashed and published articles in the Category Manager. If you are not familiar with Category Manager yet, it organizes contacts, banners, newsfeeds and articles.

Plugin to gather Anonymized Data

unnamed.png

This plugin sends basic statistics result on your server from the central server controlled by Joomla. This is quite controversial plugin. Main goal of this plugin is, that people who develop Joomla need to know its user base better. According to official statement, Joomla takes care of the privacy of its users. The CMS never collects personally identifiable data. It sends data related to database engine and version, Joomla version, server operating system and PHP version. In order to maintain the transparency, the data are made public through API. The added feature of this plugin is that Joomla community will be able to see stats available from developer.joomla.org and would be easily able to go through the graphical display of database engines, PHP version and Joomla version.

Data cannot be collected unless the user opts for that plugin. As per the requirement, the plugin can be disabled at any point in time. After users install the plugin, a post install message would be delivered to them. We don't recommend to enable this plugin.

Admin Links to Module User Status

This a new feature of Joomla 3.5 that adds switches to mod_status module. The option hides or displays links to the backend and frontend of the website.

Environment Information/ Download System

The module has been developed by Roberto Segura and Radek Suski. With this option, you can implement a possibility of downloading environment or system information to fulfill support purposes.

Adding User CSS File to Protostar

The option allows you to add and check whether the CSS file exists. If that file is present then you can go for user customization.

TinyMCE Drag and Drop Images

Finally! This option allows the user to drag and drop images into TinyMCE editor. The user can add extra features as per the requirement or drop some features.

What are your experiences with Joomla 3.5 and PHP 7?

Does your web hosting provider already support PHP 7?

What kind of trouble did you experience with during an update of PHP version?

Did you experience faster load times?