It’s no secret that the Zend Framework has been in a steady decline over the last decade, as you can tell by the following Google Trends data:
But this isn’t the whole story. To understand what’s been happening with the Zend environment as of late, we have to understand the history of Zend and how it came to be.
Let’s find out.
Short history of Zend
Zend (the company) was founded in 1999 by two Technion graduates, Andi Gutmans and Zeev Suraski. To clarify, they were working on Zend (the technology) before they founded the company.
The first Zend (the technology) was a PHP extension that handled things somewhat differently than the tech it was based on (PHP). For example, Andi and Zeev initially rewrote the PHP-FI parser which resulted in PHP 3.
Later, in 1998, they completely redesigned the parser, resulting in the Zend Engine. These were the first steps toward what would eventually become the Zend Framework.
Over the years, a couple of essential changes happened (while the Zend Framework was still being worked on):
- In 2006, Zend raised $20M.
- In 2009, Zend changed leadership and recruited talent who formerly worked at MySQL.
- In 2015, Zend was acquired by Rogue Wave Software.
- In 2019, Perforce bought Rogue Wave Software.
- Also, in 2019, the Zend Framework (now owned by Perforce) was renamed Laminas and added as a separate project to the Linux Foundation.
As I stated above, what used to be Zend Framework is now known as the Laminas Project. Laminas Project is managed by the Linux Foundation.
In other words, Laminas Project is an updated version of Zend Framework, but the core features remain the same (except for the name change and some additional tidbits, which I’ll explain later).
Zend Framework was (remember, it’s Laminas Project now) a collection of PHP packages for web development that runs on PHP 5.6 and above. It provides object-oriented code to address most modern web development needs.
The most prominent features of Zend Framework include:
- Composer, used as a package dependency manager
- Travis CI, used as a Continuous integration service
- PHPUnit, used to test all packages
Zend Framework 3 is a successor to Zend Framework 1 and 2.
There are several projects from the Zend brand (commercial and open-source) worth mentioning:
Zend Server: A web server used to run and manage PHP applications. It has several features, including a web-based administrator console, app monitoring, problem diagnostics, and additional optimization (and caching) capabilities.
Zend Guard: A software protection utility that prevents PHP 4 and 5 code from being accessed, copied, or changed. Zend Guard doesn’t support PHP 7.
Zend Studio: An IDE (Integrated Development Environment) compatible with PHP.
Zend Engine: It’s considered the heart of PHP. Today’s support for Zend Engine is limited, but some developers are still contributing to it mainly through the PHP project.
Laminas: Laminas (or Laminas Project) is the continuation of the Zend Framework (some versions of Zend Framework still hold their own ground, but its applicability is severely limited either to experimental or legacy projects). Laminas API tools is an extension for the Laminas Project.
Laminas Project, the new Zend Framework
Now to try and define Laminas: Laminas Project is a renamed Zend Framework, so it’s essentially a collection of PHP packages for building web applications and websites.
Laminas continues to be open-source (as was the case with Zend Framework), but it’s now openly available to everyone (i.e., using the open governance model). In the past, Zend Framework was sponsored by Zend (the company), and despite also being open-source, the validity of its openness was questioned by some contributors.
Laminas is open-source and 100% openly governed—meaning that everyone can contribute and define the direction of where Laminas would go (and how it would develop) in the future.
In addition to the name change, the new curators also renamed several other Laminas features. These include:
- Mezzio: These were all the expressive components in Zend Framework; in Laminas, Mezzio is the middleware runtime.
- Apigility: in Zend Framework, this was the GUI for building, describing, and delivering your API; it still has the same functionality in Laminas, but now it has been renamed to Laminas API Tools.
Latest Zend updates
The latest Zend Framework update (on GitHub) ends with the Zend 3.0.1 dev maintenance release in 2017.
The last contribution is dated May 22, 2019, and contains an updated README link to the code of conduct and contributing files to the Zend Framework repository.
Although not as popular as its older, deprecated version, the Laminas project is still being worked on.
Some of the latest improvements include caching implementations, storage adapter updates, laminas MVC controller updates, and more. You can check this project here.
Is the Zend framework dead?
Zend is not dead, but it’s badly wounded.
For example, an official video from the Perforce YouTube channel (Laminas’ current owner and curator) titled “Is Zend Framework Dead?” has around 5K views (at the time of publishing this article).
In it, the principal Zend engineer and PHP expert Matthew Weier O’Phinney claims that Zend Framework is “not dead.” He then continues to explain the rebranding from Zend Framework to Laminas (including the name changes of the main tools, Mezzio and Apigility). Further, he states some additional facts about the Laminas development environment in general.
Matthew then states that they (what I assume to be Perforce developers under the banner of the same company) have started to measure some metrics in 2017, and they’ve come up with a really impressive number: Zend Framework had 140M total lifetime downloads in that year.
After putting out some additional numbers, Matthew concludes that Zend Framework is very popular and widely used, but it isn’t being talked about very much (both offline and online).
This can mean a couple of things:
Zend Framework (Laminas) is indeed widely used and very popular but not being talked about much. Personally, I can’t think of scenarios where this is really the case (if it’s popular, why is it not being talked about; it’s like a contradiction).
Engineers still have a high demand for Zend Framework because of legacy projects that still need to be maintained or migrated to newer technologies. In software development, legacy projects or legacy code refers to applications that were built on technology (languages, frameworks, libraries, and other tools) that are no longer maintained. By principle of transference, these projects will also be challenging to maintain when moving forward.
The numbers are wrong or are being presented incorrectly. I think this is the least likely, and I’m giving Perforce the benefit of the doubt. Still, you can draw your own conclusions.
How to migrate from Zend
If you want to migrate your Zend Framework projects from Zend 1, 2, or 3 to newer technology, or even migrate from Zend 1 to Zend 2 or 3, there are a couple of things to keep in mind:
- There aren’t any tools (so far) to help you automate the entire migration.
- There isn’t a single solution that will work for everyone across multiple projects or integrations.
- The migration will largely depend on your existing project (the version of your Zend Framework integration) and the technology you want to migrate to.
For example, if you decide to migrate from Zend Framework (1, 2, or 3) to Laravel, it will be tricky–but not impossible.
The complexity of the migration will largely depend on how much your code is tied to Zend Framework.
One of the best migration approaches is integrating some of the new framework's crucial components into an already existing codebase, such as Eloquent. Laravel Eloquent is an ORM (Object-relational mapper) that comes in a bundle together with the Laravel framework (basically, an ORM is software that handles database records by representing data in the form of objects).
Depending on your setup and workflow, Eloquent will replace components such as end_db, laravel request/response objects, zend_controller_request_http, and Laravel's IoC containers. This will make it possible to run Laravel and Zend in parallel and then phase out Zend from your project entirely.
If you want to migrate from ZF1 to ZF2, you can refer to this migration guide on Stack Overflow.
Talented Zend developers available now
Zaruhi is a motivated backend developer with nine years of experience. She is a very energetic self-starter and team builder, which makes her a great addition to any team...
Tadas is a seasoned Senior Software Engineer with more than 12 years of experience in the information technology industry.
Ahmed Moayad A.
Talented PHP, MySQL, MVC, CSS, Bootstrap, Zend developer with 5+ years of experience.
Senior Laravel Developer
Andrii has over 8 years of professional experience in development and extensive knowledge in back-end and front-end development and other programming languages.