decorative image for blog on picking the right php for ibm i
October 7, 2020

Picking the Right PHP for IBM i

IBM i
PHP Development

Like other platforms, users of the IBM i platform have two options when it comes to obtaining PHP; the certified PHP stack that is delivered as part of Zend Server (which has been available since 2006), or community PHP (which has been available since late 2019).

In this blog I want to explore important factors to consider when deciding on where to get PHP from for use on the IBM i platform.

A Note to Readers

Let me be clear and up-front at the start of this blog — I have a deep appreciation for the strength of open source projects and an understanding of the benefits that community approaches bring to software development.

Also, in the interest of full-disclosure, I am an employee of Perforce which is the provider of Zend Server. I have always had a strong ethic of putting the customer first, and I believe that it's imperative that I share with IBM i shops the state of PHP on the platform and the importance of making a wise decision when it comes to where you get your PHP from.

I have been studying and writing about Open Source for 20+ years and have reached the not too-surprising conclusion that community is the single most important aspect of the Open Source movement.

So, why start an article that discusses the importance of where you get your PHP from with a statement on community — because it's important to understand when community is working for the betterment of software development and when it's not.

Keys to a Successful Community Project

For a community project to be successful it must have a strong, vibrant community of contributors, maintainers, and users.

Take the Linux kernel as an example, there is a community of over 10,000 contributors around the globe constantly working and collaborating together both to ensure that any defects in the offering are resolved expeditiously but also to incorporate new features.

We can see the benefits of that community approach in any number of Linux-based embedded devices and server-based solutions.

The State of PHP on IBM i

Now, let's look at community PHP on IBM i. The sad reality is that while there have been attempts to foster a community around the offering, to date those efforts have met with limited success which has resulted in fragmentation of the community including several different entities providing their own repositories for community PHP and it’s extensions..

For those who want to have solutions developed on PHP you need to ask a foundational question — do you want a relationship that enables you to grow your applications with proven solutions? Or, do you want to be wedded to providers that don't participate in the community? The sad reality is that the level of participation differs between providers.

When you have someone implement a new PHP solution for you or migrate an existing PHP solution to community PHP ask the provider a four simple questions:

  1. What repository do the packages come from?
  2. Will I be able to get updates to the packages after the work is completed and where will those updates come from?
  3. Who is doing the package updates, and how long will they be maintained?
  4. Do I need to maintain a services agreement in order to obtain updates?

Community PHP vs. Zend Server PHP for IBM i

Additionally, be weary when claims are made of performance superiority of community PHP over the certified PHP stack delivered with Zend Server.

No benchmarks have been forthcoming that prove that out. And even if there are marginal differences between the 64bit community offering and the current 32bit Zend PHP offering, those differences will disappear with the upcoming release of Zend Server 2020 which will include a 64bit PHP.

Comparing Communities

But, let's get back to community. When working with a provider of community PHP you need to ensure that Quality Assurance (QA) is being performed on changes (if they are making any) being made to PHP and/or it’s extensions.  Additionally, it’s fair to ask the provider what their investment is regarding additional development specific to IBM i.

The community around the certified-PHP stack delivered with Zend Server is a dedicated team of software developers, testers, and support staff that develop new features, ensure those features leverage the best of the IBM i platform, and provide enterprise-level support to those shops that develop and implement solutions with PHP.

To be fair, the PHP delivered with Zend Server is the same PHP as we see in the community — with instrumentation supporting various Zend Server functionality. However, there is an entire eco-system of community that builds, maintains, and supports the offering.

Long Term Support

Another thing to keep in mind when deciding where your PHP should come from is how is PHP going to be maintained on your platform in the long term. The PHP delivered with Zend Server enjoys a much longer support-term then community PHP.

Take version 5.6 as an example. Community support for PHP 5.6 ended in December of 2018 while Zend's PHP offering for the same version goes out to January of 2023. This difference shouldn't be overlooked as it is not only advisable to keep current on security patches, sometimes legal regulations require it. This chart summarizes the support levels from the community and Zend for various versions of PHP:

support levels for community php vs zend php distributions

So ask your provider — who is going to back-port security fixes into PHP. To date, no one has stepped up to indicate that they are willing to take that on for the community PHP on IBM i offering.

PHP Upgrades

The other item to consider is the upgrade cycle. How often do you want to have to upgrade the version of the language your development efforts are based on? With the community model you will need to be considering upgrading every three years while the certified PHP provided with the Zend offerings goes out at least five years.

Keep in mind that PHP is more than a single package. There is the core of PHP and then a large set of extensions that provide additional, sometimes crucial functionality. As an example, some of the community PHP repositories only include 28 extensions for items such as support for curl, ODBC, calendar, and the PHP archive.

Compare that with the certified PHP stack included with the Zend offerings which has 80+ extensions including those provided with community PHP plus the ibm_db2 driver, as well as the mysql driver (critical if you are going to implement LAMP-based applications) just to name a couple.

Managing Extensions

And speaking of extensions, consider the case of deployment provided with Zend Server where the extensions are delivered and installed as part of Zend Server and their configuration is simplified through the Zend Server management interface. With community PHP each extension has to be installed and configured individually.

Zend’s Answer to Zend Server Basic License EOL

As many of you have already seen in various announcements, articles, and social media — IBM will no longer offer a free basic license of Zend Server starting in June 2021. Any users of the free basic license have until June 30, 2021 to move to a different license of Zend Server or a different source of PHP.

The Zend by Perforce team has an answer—the upcoming release of ZendPHP — Zend’s build of community PHP.

How Is ZendPHP Different From Other Sources of Community PHP?

First, it’s built by the same folks that have been building PHP for IBM i since 2006.

Second, it will have a number of important integration points, including automatic configuration of the Apache Web Server instance, as well as delivery of the Db2 database driver, and toolkit for integrating PHP with ILE programs and objects. In other words, ZendPHP provides one-and-done install of PHP in much the same way that Zend Server does.

You may be asking yourself what’s the cost? For those versions of PHP that are supported by the community (currently 7.2 – 7.4) ZendPHP will be available for free.

For those customers that want to continue to run on a version of PHP that is no longer supported by the community (such as the upcoming EOL for 7.1) they can continue to do so with ZendPHP by paying a license fee that extends the support. This support includes bug fixes and security patches that we already provide for Zend Server.

So whether you are looking for a full-fledged application server with certified PHP stack, or just the community build of PHP, the Zend by Perforce team has you covered.

Final Thoughts

Don't get me wrong, I'm a staunch advocate of Open Source. I've studied it relentlessly for 20+ years, I've advocated for at countless technical conferences and user-groups, written articles pointing out its advantages, and even wrote my master's thesis comparing the benefits of open source to proprietary development processes.

Open Source offerings are great if they have an active community around them. Unfortunately, PHP on IBM i doesn't have that community so far.

Finally, community PHP on the platform has its place — it can be useful for getting familiar with the language and putting together some rapid prototypes and proof-of-concepts. However, when you start to implement productivity solutions you need to ensure that you have a PHP that's going to be there for the long haul with all of the required extensions readily available and support that will be with you going forward.

Additional Resources

Want to learn more about how Zend and IBM i can combine for great results? Start with these resources!

Want to Learn More About Managing PHP on IBM i?

In this webinar, we look at how the PHP engine runs on IBM i, how to use the 5250-based management system, and discuss community PHP and what it offers the IBM i community.