Tuesday, July 18, 2006

Where PHP come and Where PHP go, Now its a bigger and better



“The best security against revolution is in constant correction of abuses and
the introduction of needed improvements. It is the neglect of timely repair
that makes rebuilding necessary.” - Richard Whately

IN THE BEGINNING

It was eight years ago, when Rasmus Lerdorf first started developing PHP/FI.
He could not have imagined that his creation would eventually lead to the
development of PHP as we know it today, which is being used by millions of
people. The first version of “PHP/FI,” called

Personal Homepage Tools/

Form Interpreter, was a collection of Perl scripts in 1995.1One of the basic features was a Perl-like language for handling form submissions, but it lacked many common useful language features, such as for loops.

1 http://groups.google.com/groups?selm=3r7pgp$aa1@ionews.io.org.

PHP/FI 2

A rewrite came with PHP/FI 22
in 1997, but at that time the development was
almost solely handled by Rasmus. After its release in November of that year,
Andi Gutmans and Zeev Suraski bumped into PHP/FI while looking for a language
to develop an e-commerce solution as a university project. They discovered
that PHP/FI was not quite as powerful as it seemed, and its language was
lacking many common features. One of the most interesting aspects included
the way while loops were implemented. The hand-crafted lexical scanner would
go through the script and when it hit the while keyword it would remember its
position in the file. At the end of the loop, the file pointer sought back to the
saved position, and the whole loop was reread and re-executed.

PHP 3

Zeev and Andi decided to completely rewrite the scripting language. They then
teamed up with Rasmus to release PHP 3, and along also came a new name: PHP:
Hypertext Preprocessor
, to emphasize that PHP was a different product and not
only suitable for personal use. Zeev and Andi had also designed and implemented
a new extension API. This new API made it possible to easily support additional
extensions for performing tasks such as accessing databases, spell checkers and
other technologies, which attracted many developers who were not part of the
"core" group to join and contribute to the PHP project. At the time of PHP 3's
release3 in June 1998, the estimated PHP installed base consisted of about 50,000
domains. PHP 3 sparked the beginning of PHP’s real breakthrough, and was the
first version to have an installed base of more than one million domains.

PHP 4

In late 1998, Zeev and Andi looked back at their work in PHP 3 and felt they
could have written the scripting language even better, so they started yet
another rewrite. While PHP 3 still continuously parsed the scripts while executing
them, PHP 4 came with a new paradigm of “compile first, execute later.” The
compilation step does not compile PHP scripts into machine code; it instead
compiles them into byte code, which is then executed by the
Zend Engine(Zend stands for Zeev & Andi), the new heart of PHP 4. Because of this new
way of executing scripts, the performance of PHP 4 was much better than that
of PHP 3, with only a small amount of backward compatibility breakage4.
Among other improvements was an improved extension API for better run-time
performance, a web server abstraction layer allowing PHP 4 to run on most popular
web servers, and lots more. PHP 4 was officially released on May 22, 2002,
and today its installed base has surpassed 15 million domains.

2 http://groups.google.com/groups?selm=Dn1JM9.61t%40gpu.utcc.utoronto.ca.
3 http://groups.google.com/groups?selm=Pine.WNT.3.96.980606130654.-317675I-100000%40shell.lerdorf.on.ca.
4 http://www.php.net/manual/en/migration4.php.

In PHP 3, the minor version number (the middle digit) was never used,
and all versions were numbered as 3.0.x. This changed in PHP 4, and the minor
version number was used to denote important changes in the language. The first
important change came in PHP 4.1.0,5 which introduced superglobals
such as $_GET and $_POST. Superglobals can be accessed from within functions without
having to use the global keyword. This feature was added in order to allow the
register_globals INI option to be turned off. register_globals is a feature in
PHP which automatically converts input variables like "?foo=bar" in http://php.net/?foo=bar
to a PHP variable called $foo. Because many people do not
check input variables properly, many applications had security holes, which
made it quite easy to circumvent security and authentication code.
With the new superglobals in place, on April 22, 2002, PHP 4.2.0 was
released with the register_globalsturned off by default. PHP 4.3.0, the last
significant PHP 4 version, was released on December 27, 2002. This version
introduced the Command Line Interface(CLI), a revamped file and network
I/O layer (called streams), and a bundled GD library. Although most of
those additions have no real effect on end users, the major version was
bumped due to the major changes in PHP’s core.

PHP 5

Soon after, the demand for more common object-oriented features increased
immensely, and Andi came up with the idea of rewriting the objected-oriented
part of the Zend Engine. Zeev and Andi wrote the "Zend Engine II: Feature
Overview and Design" document6 and jumpstarted heated discussions about
PHP's future. Although the basic language has stayed the same, many features
were added, dropped, and changed by the time PHP 5 matured. For
example, namespaces and multiple inheritance, which were mentioned in the
original document, never made it into PHP 5. Multiple inheritance was
dropped in favor of interfaces, and namespaces were dropped completely. You
can find a full list of new features in Chapter, "What Is New in PHP 5?"
PHP 5 is expected to maintain and even increase PHP's leadership in
the web development market. Not only does it revolutionizes PHP’s objectoriented
support but it also contains many new features which make it the
ultimate web development platform. The rewritten XML functionality in
PHP 5 puts it on par with other web technologies in some areas and overtakes
them in others, especially due to the new SimpleXML extension which
makes it ridiculously easy to manipulate XML documents. In addition, the
new SOAP, MySQLi, and variety of other extensions are significant milestones
in PHP's support for additional technologies.

5 http://www.php.net/release_4_1_0.php.
6 http://zend.com/engine2/ZendEngine-2.0.pdf.

source : http://php5powerprogramming.com

0 Comments:

Post a Comment

<< Home