#native_company# #native_desc#

PHP4/Zend OverView

By Zeev Suraski
on July 30, 2000

A lot of you were probably wondering about the recent
announcements and discussions about the future of the PHP
scripting language. You’ve probably heard the word
‘Zend’ at some point, a few shreds of information about
new features and functionalities, and that’s about it.
In this article I’ll try to lay out the way I see the future
of PHP in its upcoming release, version 4.0.
So, what’s Zend?
Even though I hope that by now the answer to that is pretty
clear (at least to people from the PHP community), the myths and
pieces of misinformation that surrounded its announcement
probably warrant yet another clear explanation.
Zend is a piece of software (component, in Microsoft speak),
that implements a scripting language engine. Theoretically
speaking, it’s not directly related to PHP.
Practically speaking, the fact that it ‘happens’ to
implement the very same language makes it the engine of choice
for executing PHP scripts.
Before Zend, PHP was powered by three different engines.
Rasmus Lerdorf, the inventor of PHP, has written the engines for
the first two versions of PHP/FI (he actually wrote just about
all of the other code that surrounded the engine for these
versions). Towards the end of 1997, Andi Gutmans and myself
have written a whole new engine that was later the base of PHP 3.0.
The new engine introduced increased performance and reliability,
a much more powerful and consistent language definition, and a
highly extendible API. All of you, today, benefit from the
features of this engine. The fact that I personally can no longer
remember all of the SQL servers and 3rd party libraries that are
supported by PHP demonstrates its tremendous success, not to
mention the various awards and enormous positive feedback it has
Since PHP 3.0 introduced many new language features, and since
it was a very stable development platform, people began writing
complex PHP scripts and packages. Admittedly, PHP 3.0 wasn’t
designed to run complex scripts or packages that include a large
number of files, in the sense that its efficiency dropped
significantly as the complexity of the script increased.
Recognizing this fact, Andi and I decided to try and design a new
engine, that will provide high performance for complex scripts,
without degrading the performance of short, simple scripts. That’s
how Zend was born.
Unlike any of the previous engines, which weren’t really
separate from the rest of PHP, Zend was designed as a standalone
library, that can be easily reused in programs other than PHP.
At this time, we have plans to incorporate Zend as a stored-procedure
language in the free high-performance SQL server, MySQL.
The fact that the code was written from the ground up to be
portable not only across computer platforms, but also across
different computer programs, makes this task feasible and doable
in a reasonable amount of time.