Jump to content

PHP

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Notheruser (talk | contribs) at 07:55, 17 August 2003 (PDF). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.


The computer language PHP (originally "Personal Home Page Tools", but now a recursive acronym for "PHP Hypertext Preprocessor") is a widely used open-source programming language used primarily for server-side applications, to develop dynamic web content such as the Wikipedia software. It can be seen as an open source alternative to Microsoft's Active Server Pages (ASP) system and to CGI/Perl system.

Its ease of use and similarity with the most common structured programming languages, most notably C, Java and Perl, allows most experienced programmers to start developing complex applications with a minimal learning curve. It also enables experienced developers to get involved with dynamic web content applications without having to learn a whole new set of functions and practices.

One of the more attractive parts of PHP is that it is not only a scripting language. Because it has been designed from the start to be modular, the PHP core has been used to develop desktop applications that are close to the same performance as traditional compiled applications, and it can be used from the command line just as Perl or Python can be.

PHP allows, among other things, easy interaction with a very large number of relational database systems (Oracle, DB2, MySQL, PostgreSQL, etc.), while maintaining a simple and straightforward syntax. PHP runs on every major operating system, including Unix, Linux, Windows, and Mac OS X and can interact with all major web servers. The PHP website (php.net) has some of the best documentation pages of any project, and a good deal of help with setting up PHP on obscure operating systems and web-servers. The Linux, Apache, MySQL, PHP (LAMP) architecture has become very popular in the industry for deploying reliable, scalable and secure web applications.

PHP is the result of the collective efforts of many contributors. It is licensed under a BSD-style license, the PHP license.

PHP's Libraries

PHP, unlike ASP and Perl, has some of the largest free and open-source libaries included with the core build. PHP is a fundamentally internet-aware system and as such there are modules built in for accessing FTP servers, all manners of database servers, LDAP servers and much more. In addition to this, the most used functions such as printf() and strstr() from C and other generic functions such as str_replace(), preg_match() are all available in the core of PHP.

PHP has a wide variety of extensions such as support for the Windows API, process management on Linux, cURL support, ZIP and GZip support. Some of the more unique features are PDF generation, Shockwave Flash generation (on the fly), integration with IRC and much more besides.

This is the present list of all officially documented libaries :- (Source: http://www.php.net/manual/en/)

  • Apache
  • BCMach
  • Bzip2
  • Calendars
  • CCVS
  • COM
  • ClibPDF
  • cURL
  • Cybercash
  • dBase
  • DBM
  • dbx
  • DB++
  • LDAP
  • DOM XML
  • .NET
  • FrontBase
  • filePro
  • FriBiDi
  • FTP
  • Gettext
  • GNU MP Libary
  • Hyperwave
  • iconv
  • IMAP, POP3 and NNTP
  • Informix
  • Interbase
  • Ingres II
  • IRC
  • Java
  • SMTP
  • DNS
  • mailparse
  • MCAL
  • Mcyrpt
  • MCVE
  • Mhash
  • Mimetype Functions
  • MS-SQL
  • Ming
  • mnoGoSearch
  • mSQL
  • MySQL
  • Mowhawk
  • muscat
  • Ncurses
  • Lotus Notes
  • Session Handling
  • SNMP
  • Sockets
  • Streams
  • Sybase
  • Tokens
  • OBDC
  • Oracle
  • OpenSSL
  • Ovrimos SQL
  • PDF
  • PayFlow Pro
  • POSIX
  • PostgreSQL
  • Printer
  • PSpell
  • GNU Readline
  • GNU Recode
  • Regular Expressions
  • QT-Dom
  • Semaphores
  • Shared Memory
  • SESAM
  • vpopmail
  • Windows 32 API
  • WDDX
  • XML (Expat)
  • XML-RPC
  • XSLT
  • YAZ
  • Yellow Pages / NIS
  • ZIP
  • Zlib

Object Orientation

Up until version 4 PHP had no Object Orientated (OO) features. In version 4 basic OO functionality was added, but the implementation still lacked the powerful and useful features of other OO programming languages like C++ and Java.

In version 5, currently in development as of this writing, PHP's OO functionality is very much enhanced and is a lot more robust and complete. Here are a summary of some of the changes in PHP 5 (also known as Zend Engine 2) taken from this page.

New Object Model.
PHP's handling of objects has been completely rewritten, allowing for better performance and more features. In previous versions of PHP, objects were handled like primitive types (for instance integers and strings). The drawback of this method was that semantically the whole object was copied when a variable was assigned, or pass as a parameter to a method. In the new approach, objects are referenced by handle, and not by value (one can think of a handle as an object's identifier).
Private and Protected Members
PHP 5 introduces private and protected member variables, they allow you to define the visibility of class properties.
Private and protected methods
Private and protected methods are also introduced.
Abstract Classes and Methods
PHP 5 also introduces abstract classes and methods. An abstract method only declares the method's signature and does not provide an implementation. A class that contains abstract methods needs to be declared abstract.
Interfaces
A class may implement an arbitrary list of interfaces.
Object Cloning
When the developer asks to create a new copy of an object, the Zend Engine will check if a __clone() method has been defined or not. If not, it will call a default __clone() which will copy all of the object's properties. If a __clone() method is defined, then it will be responsible to set the necessary properties in the created object. For convenience, the engine will supply a function that imports all of the properties from the source object, so that they can start with a by-value replica of the source object, and only override properties that need to be changed.
Unified Constructors
PHP 5 introduces a standard way of declaring constructor methods by calling them by the name __construct().
Destructors
PHP 5 introduces a destructor concept similar to that of other object-oriented languages, such as Java: When the last reference to an object is destroyed the object's destructor, which is a class method named __destruct() that recieves no parameters, is called before the object is freed from memory.
Exceptions
PHP 4 had no exception handling. PHP 5 introduces a exception model similar to that of other programming languages.

For more additions and examples of the additions mentioned above, please visit this page.

History

PHP was originally designed as a wrapper around Perl by Rasmus Lerdorf in 1994 to display his resume information, and collect some data, such as how many hits it was generating. Others first used "Personal Home Page Tools" in 1995, which Lerdorf had combined with his own Form Interpreter to create PHP/FI. Zeev Suraski and Andi Gutmans, two Israeli developers of the Technion - Israel Institute of Technology rewrote the parser in 1997, forming the basis of PHP 3. They also changed the name to its current recursive form. After months in beta, the development team officially released PHP/FI 2 in November 1997. Public testing of PHP 3 began immediately and the official launch came in June 1998. Suraski and Gutmans started a new rewrite of PHP's core, producing the Zend engine in 1999. In May 2000, PHP 4 powered by the Zend Engine was released. Development continues toward PHP 5 with Zend Engine 2.

Popularity of PHP

PHP is one of the most popular server-side scripting systems on the Web. It's been widely adopted since the release of version 4, which was the first version powered by the powerful Zend Engine from Zend Technologies.

According to Netcraft's April 2002 survey, PHP is now the most-deployed server-side scripting language, running on around 9 million of the 37 million domains in their survey. This is confirmed by PHP.net's own figures, which show PHP usage measured on a per-domain basis growing at around 5% per month. In May 2003, almost 13 million domains were using PHP, based on the same source.

However, PHP is not the most commonly used tool if measurements are made on a per-page basis. Another estimate in March 2002, based on searching for Web pages by their suffix, places PHP in second place at 30% of measured pages, behind 48% using Microsoft's ASP, but also shows PHP growing rapidly in market share. However, this method is notoriously inaccurate for measuring PHP popularity as some PHP systems dispense with the file names, using only directories, while other sites tend to dispense with the .php extension.

Due to PHP's popularity, a new breed of programmers has emerged who are only familiar with PHP, which in turn forced open the door towards a command line interface for PHP, along with support for GUI functions, such as Gtk support. This is a major step for PHP, because it represents its adoption as a genuine programming language (i.e. running autonomously on a stand-alone machine, as opposed to its original purpose of serving web pages to client machines from a server).

Software built with PHP