Главная Статьи Написать
 
Начнём
Введение
Инсталяция
Конфигурирование
Безопасность
Справочник Языка
Базовый синтаксис
Типы
Переменные
Константы
Выражения
Операции
Структуры управления
Функции
Классы и Объекты
Ссылки. Разъяснение.
Возможности
Обработка Ошибок
Создание изображений и манипуляции с ними
HTTP-аутентификация в PHP
Куки
Обработка загрузки файлов
Использование удалённых файлов
Обслуживание соединений
Постоянные соединения с базами данных
Безопасный режим
Использование PHP из командной строки
Функции. Справочник.
Функции, специфические для Apache
Array-функции
Aspell-функции [не рекомендуются]
BCMath математические функции произвольной точности
Bzip2 Compression-функции
Calendar-функции
CCVS API-функции
Функции поддержки COM для Windows
Class/Object-функции
ClibPDF-функции
Crack-функции
CURL, Client URL Library-функции
Cybercash payment-функции
Crédit Mutuel CyberMUT-функции
Cyrus IMAP -функции администрирования
Функции типов символов
Функции абстрактного слоя БД (dbm-стиль)
Дата и Время
dBase-функции
DBM-функции
dbx-функции
DB++-функции
Direct IO-функции
Функции директорий
DOM XML-функции
.NET-функции
Обработка ошибок и логинг
FrontBase-функции
filePro-функции
Функции файловой системы
Forms Data Format-функции
FriBiDi-функции
FTP-функции
Функции работы с функциями
Gettext
GMP-функции
HTTP-функции
Hyperwave-функции
Hyperwave API-функции
ICAP-функции [не рекомендуются]
iconv-функции
Image-функции
IMAP, POP3 и NNTP-функции
Informix-функции
InterBase-функции
Ingres II-функции
IRC Gateway-функции
Java
LDAP-функции
Mail-функции
mailparse-функции
Mathematical-функции
Многобайтные строки
MCAL-функции
Mcrypt Encryption-функции
Mhash-функции
Mimetype-функции
Microsoft SQL Server-функции
Ming-функции для Flash
Прочие функции
mnoGoSearch-функции
mSQL-функции
MySQL-функции
Mohawk Software -функции обработчика сессии
muscat-функции
Network-функции
Ncurses -функции управления терминалом
Lotus Notes-функции
Unified ODBC-функции
Oracle 8-функции
OpenSSL-функции
Oracle-функции
Ovrimos SQL-функции
Управление выводом
Перегрузка свойств объектов и вызовов методов
PDF-функции
Verisign Payflow Pro-функции
PHP. Опции & Информация
POSIX-функции
PostgreSQL-функции
Управление процессом
Выполнение программы
Printer-функции
Pspell-функции
GNU Readline
GNU Recode-функции
Функции регулярных выражений (Perl-совместимые)
qtdom-функции
Функции регулярных выражений (POSIX расширенная)
Semaphore, Shared Memory и IPC-функции
SESAM database-функции
Обслуживание сессий
Shared Memory-функции
Shockwave Flash-функции
SNMP-функции
Socket-функции
String-функции
Sybase-функции
URL-функции
Функции переменных
vpopmail-функции
W32api-функции
WDDX-функции
XML parser-функции
XMLRPC-функции
XSLT-функции
YAZ-функции
YP/NIS-функции
Zip File-функции (доступ только для чтения)
Zlib Compression-функции
Расширение PHP 4.0
Обзор
Возможность расширения
Строение исходного кода
Система автоматического построения РНР
Создание расширений
Использование расширений
Решение проблем
Исходные Ресурсы. Обсуждение.
Приём аргументов
Создание переменных
Дублирование содержимого переменной: конструктор Copy
Возвращаемые значения
Печать информации
Startup и Shutdown-функции
Вызов пользовательских функций
Поддержка файлов инициализации
Что дальше?
Справочник: некоторые макросы конфигурации
Макросы API
FAQ: Frequently Asked Questions
Общая информация
Списки рассылки
Получение PHP
Вопросы о базах данных
Инсталяция
Проблемы построения
Использование PHP
PHP и HTML
PHP и COM
PHP и другие языки
Переход от PHP 2 к PHP 3
Переход от PHP 3 к PHP 4
Другие вопросы
Приложения
История PHP и смежных проектов
Переход от PHP 3 к PHP 4
Переход от PHP/FI 2 к PHP 3
Отладка PHP
Расширение PHP
Список псевдонимов функций
Список зарезервированных слов
Список типов ресурсов
Список лексем разборщика
Об этом учебнике




История PHP

PHP/FI

PHP появился как развитие другого продукта, PHP/FI. PHP/FI был создан Rasmus'ом Lerdorf'ом в 1995 году, сначала как простой набор Perl-скриптов для отслеживания доступа к его собственному online-резюме. Он назвал этот набор скриптов 'Personal Contents Page Tools'. Поскольку требовалось б́ольшая функциональность, Rasmus написал расширенную реализацию C, которая могла работать с базами данных (БД), и дал пользователям возможность разрабатывать простые динамические Web-приложения. Rasmus решил опубликовать исходный код PHP/FI для широкого доступа, чтобы любой мог использовать, расширять и улучшать его.

PHP/FI, Personal Contents Page / Forms Interpreter, имел некоторую основную функциональность того PHP, который известен нам теперь. Он имел Perl-подобные переменные, автоматическую интерпретацию переменных форм и синтаксис, внедрённый в HTML. Сам по себе синтаксис напоминал Perl, хотя и более ограниченный, упрощённый и неполный.

В 1997 году PHP/FI 2.0, вторая версия C-реализации, имел несколько тысяч поклонников по всему миру (ориентировочно), приблизительно 50,000 доменов, на которых он был установлен, что составляло примерно 1% всех доменов Internet. Поскольку множество людей предоставляли блоки кода для этого проекта, он перестал быть проектом одного человека.

PHP/FI 2.0 был официально выпущен только в ноябре 1997 года, после того как просуществовал в основном в виде beta-релизов. Вскоре после этого этого появились первые alphа PHP 3.0.

PHP 3

PHP 3.0 бал первой версией, похожей на сегодняшний PHP. Его создали Andi Gutmans и Zeev Suraski в 1997 году как полностью переписанный язык, поскольку они нашли его PHP/FI 2.0 недостаточно мощным для разработки их собственных eCommerce-приложений. С целью кооперации усилий, Andi, Rasmus и Zeev создали и выпустили PHP 3.0 как официальный преемник PHP/FI 2.0, и развитие PHP/FI 2.0 в основном остановилось.

Одной из сильных сторон PHP 3.0 была возможность его расширения. Кроме того, предоставляя конечным пользователям прочную инфраструктуру для различных БД, протоколы и APIs, возможности расширения PHP 3.0 побуждали десятки разработчиков поставлять новые модули расширения. Возможно именно в этом был секрет ошеломляющего успеха PHP 3.0.
Другой ключевой особенностью PHP 3.0 стала поддержка объектно-ориентированного синтаксиса и намного более мощный и цельный синтаксис языка.

Язык был назван PHP: Hypertext Preprocessor.

В конце 1998 года PHP стал базой для десятков тысяч пользователей (ориентировочно) и сотен тысяч Web-сайтов. В момент пика своего успеха PHP 3.0 был установлен приблизительно на 10% Web-серверов Internet.

PHP 3.0 был официально выпущен в июне 1998 года после примерно 9 месяцев публичного тестирования.

PHP 4

Зимой 1998 года, вскоре после официальной публикации PHP 3.0, Andi Gutmans и Zeev Suraski начали переработку ядра PHP с целью повысить производительность при работе сложных приложений и улучшить модульность кодовой базы PHP. Такие приложения были возможны в PHP 3.0, но PHP 3.0 не разрабатывался для эффективного обслуживания сложных комплексных приложений.

Новая машина, 'Zend Engine' (по именам создателей - Zeev и Andi), успешно решила эти задачи и появилась сначала в середине 1999 года. PHP 4.0, основанный на этой машине и оснащённый большим количеством новых возможностей, был официально выпущен в мае 2000 года, спустя почти два года после своего предшественника, PHP 3.0. Помимо значительно возросшей производительности в этой новой версии, PHP 4.0 ввёл такие новые ключевые возможности, как поддержка большого количества Web-серверов, HTTP-сессий, буферизации вывода, более безопасные способы работы с пользовательским вводом и различные новые конструкции языка.

PHP 4 является в данный момент последней версией PHP. Уже началась работа по модификации и улучшению Zend Engine для её интеграции в PHP 5.0.

Сегодня PHP используется сотнями тысяч разработчиков (ориентировочно), и несколько миллионов сайтов сообщают о его установке, что составляет свыше 20% доменов Internet.

Команда создателей PHP состоит из десятков разработчиков, а также из десятков тех, кто работает над связанными с PHP проектами, такими как PEAR и проект документации.