Перейти к содержимому
Поиск
Php Разработка

PHP: полный мануал с примерами, функциями и ООП

Практический мануал PHP: от переменных и читаемого кода до безопасных форм, интеграций, базы данных и ООП на примере магазина. Учебный маршрут, поиск функций, подробные примеры, разбор ошибок и исходники для скачивания.

Александр НекрасовИзменено:
Практический мануал PHP: от переменных и функций к объектной модели интернет-магазина
PHP 8.5.11468 глав6256 карточек справочника
Дерево руководства

Глава 459 · Официальная база → практическое применение

История PHP: как старые решения попали в современный проект

От PHP/FI до PHP 8.5 — без заучивания дат, с практической связью между эпохой кода, runtime и миграцией.

История PHP и связанных проектов

История здесь нужна не для запоминания дат. Она объясняет, почему в старом проекте встречаются разные модели объектов, функции-алиасы и давно снятые расширения, а современный код предъявляет другие требования к типам и ошибкам.

Полный официальный договор страницы

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

История PHP и смежных проектов

PHP прошёл долгий путь с момента рождения в середине 1990-х. От скромного появления до превращения в один из самых популярных языков веб-программирования. Эволюция PHP — сказка для компьютерных фанатов. Такой взрывной рост был нелёгкой задачей. Краткую историю становления PHP рассказывают главы этого раздела. Частичку истории Интернета хранят » в Музее PHP старые выпуски языка.

Нормативный английский оригинал из frozen baseline

Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.

History of PHP and Related Projects

PHP has come a long way since its birth in the mid-1990's. From humble beginnings to becoming one of the most prominent languages powering the web, the evolution of PHP is a geek's fairy tale. Mind you, such explosive growth was no easy task. Those of you interested in briefly seeing how PHP grew to become what it is today, read on. If you'd like to touch a piece of Internet history, you can find old releases of PHP in the » PHP Museum.

Проверить минимальную версию перед запуском задачиСамостоятельный пример
<?php
$minimum = '8.4.0';
$ready = version_compare(PHP_VERSION, $minimum, '>=');
echo $ready ? "Можно запускать\n" : "Нужно обновление\n";
Ожидаемый результат
Можно запускать

version_compare учитывает компоненты версии. Для расширения одной проверки PHP_VERSION недостаточно: отдельно проверяют extension_loaded и нужный символ.

От PHP/FI к PHP 8: зачем менялся язык

История здесь нужна не для запоминания дат. Она объясняет, почему в старом проекте встречаются разные модели объектов, функции-алиасы и давно снятые расширения, а современный код предъявляет другие требования к типам и ошибкам.

Полный официальный договор страницы

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

PHP Tools, FI, Construction Kit и PHP/FI

PHP, как знают фанаты языка, — преемник продукта, который назывался PHP/FI. Первое воплощение PHP, которое в 1994 создал Расмус Лердорф, было простым набором CGI-скриптов на языке программирования Си. Изначально Расмус пользовался скриптами, чтобы отслеживать посещения своего веб-резюме, и назвал набор этих скриптов Personal Homepages Tools («Инструменты для персональных домашних страниц»), но чаще упоминалось название PHP Tools. Со временем требовалось всё больше улучшений функциональности. Расмус переписал PHP Tools и создал более крупную и богатую реализацию. Новая реализация умела взаимодействовать с базами данных и решать другие задачи. Так появилась платформа, на которой пользователи создавали простые динамические веб-приложения наподобие гостевых книг. В июне 1995 года Расмус » выложил исходный код PHP Tools в открытый доступ, что позволило разработчикам использовать наработки Лердорфа по своему усмотрению. Это также разрешало и поощряло пользователей исправлять ошибки в коде и улучшать его.

В сентябре того же года Расмус посмотрел на PHP шире и — на короткое время — убрал из названия аббревиатуру PHP. Теперь в виде инструмента FI (сокращение от «Интерпретатор Форм») новая реализация включала в себя набор основных функций того PHP, который мы знаем сегодня. Функции языка включали Perl-подобные переменные, автоматическую интерпретацию форм и встраиваемый в HTML синтаксис. Синтаксис языка был похож на язык программирования Perl, хотя и был гораздо более ограниченным, простым, и отчасти противоречивым. Чтобы вставлять код в HTML-файл, разработчикам пришлось использовать HTML-комментарии. Хотя этот метод был недостаточно хорошо принят, FI по-прежнему набирал популярность как CGI-инструмент, но всё-таки не как язык. Однако перемены начались в следующем месяце, когда в октябре 1995 года Расмус выпустил полностью переписанный код. С вернувшимся именем PHP, но уже сокращённым от Personal Home Page Construction Kit, это был первый релиз, который мог похвастаться расширенным интерфейсом сценариев. Язык намеренно напоминал язык программирования Си по структуре, поэтому разработчики, которые были знакомы с Си, Perl и похожими языками, легко воспринимали язык. Поскольку до сих пор разработчики ограничивались UNIX- и POSIX-совместимыми системами, они стали исследовать пути работы с PHP на системах Windows NT.

Код получил ещё одно существенное преобразование в апреле 1996 года. Объединив названия предыдущих версий, Расмус представил PHP/FI. Реализации второго поколения начали по-настоящему развивать PHP из набора инструментов в самостоятельный язык программирования. PHP включал в себя встроенную поддержку баз данных DBM, mSQL и Postgres95, блоки данных cookies, поддержку функций, которые определяли пользователи, и многое другое. В июне PHP/FI присвоили версию 2.0. Интересный факт — существовала только одна полная версия PHP 2.0. Когда она, наконец, в ноябре 1997 года вышла из статуса бета-версии, базовый движок синтаксического анализа уже полностью переписали.

Несмотря на короткую историю разработки, PHP/FI продолжал набирать популярность в молодом мире веб-разработки. В 1997 и 1998, PHP/FI стал культом для нескольких тысяч пользователей по всему миру. Исследования Netcraft в мае 1998 года показали, что почти 60 тысяч доменов передавали заголовки, которые содержали значение «PHP», что подтверждало установку на сервере языка PHP. Это число равнялось примерно 1 % от всех доменов в Интернете в то время. Несмотря на эти впечатляющие цифры, развитие PHP/FI было обречено на ограничения; хотя ряд участников вносил незначительный вклад, язык по-прежнему в основном разрабатывал один человек.

Пример #1 Пример кода на PHP/FI

<!--include /text/header.html-->

<!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
  Эй, у вас Нетскейп!<p>
<!--endif-->

<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
  Извините, такой записи нет<p>
<!--endif exit-->
  Добро пожаловать, <!--$user-->!<p>
  На вашем счету осталось <!--$index:0--> "кредитов".<p>

<!--include /text/footer.html-->

PHP 3

PHP 3.0 был первой версией, которая напоминала PHP, каким его знают сегодня. Посчитав PHP/FI 2.0 всё ещё неэффективным и недостаточно функциональным для написания кода в коммерческих приложениях, которые разрабатывали для университетского проекта, Энди Гутманс и Зив Сураски из Тель-Авива начали ещё раз заново переписывать парсер в 1997 году. Связавшись с Расмусом, они обсудили различные аспекты текущей реализации и их новой разработки PHP. Чтобы улучшить движок и использовать существующую базу пользователей PHP/FI, Энди, Расмус и Зив решили сотрудничать для развития нового, независимого языка программирования. Этот совершенно новый язык выпустили под новым названием, без упоминания о персональном назначении, как в PHP/FI 2.0. Язык переименовали просто в PHP, а его значение превратилось в рекурсивный акроним — PHP: Hypertext Preprocessor.

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

В июне 1998 года со множеством новых разработчиков со всего мира, которые присоединились к проекту, новая команда разработчиков PHP объявила PHP 3.0 официальным преемником PHP/FI 2.0. Активная разработка PHP/FI 2.0, которая практически прекратилась в ноябре предыдущего года, теперь официально закончилась. Примерно через девять месяцев открытого публичного тестирования, когда объявили об официальном выпуске PHP 3.0, PHP уже установили на более чем 70 000 доменах по всему миру и язык больше не ограничивается POSIX-совместимыми операционными системами. Относительно небольшая доля доменов с установленным PHP размещалась на серверах под управлением Windows 95, 98 и NT, и Macintosh. На пике популярности доля веб-серверов в Интернете, на которые установили PHP 3.0, составляла около 10 %.

PHP 4

К зиме 1998 года, практически сразу после официального выхода PHP 3.0, Энди Гутманс и Зив Сураски начали переработку ядра PHP. В задачи входило увеличение производительности сложных приложений и улучшение модульности кодовой базы PHP. PHP 3.0 разрешил подобным приложениям успешно работать с набором баз данных и поддерживать большое количество API-интерфейсов и протоколов, но у PHP 3.0 не было качественной поддержки модулей и приложения работали неэффективно.

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

PHP 5

В июле 2004, после долгой разработки и нескольких предварительных выпусков, выпустили PHP 5. В основном версия управляется ядром Zend Engine 2.0 с новой объектной моделью и десятком других нововведений.

Команда разработчиков PHP включает в себя десятки разработчиков, а также десятки других организаций, которые работают над проектами, которые связаны с PHP и поддержкой языка: библиотекой PEAR, репозиторием PECL и документацией, а также базовой инфраструктурой сети более чем из ста серверов на шести из семи континентах мира. Основываясь на статистике прошлых лет, можно с уверенностью предположить, что PHP теперь установили на десятки или даже, возможно, сотни миллионов доменов по всему миру.

PHP 6

В план обновления движка PHP 6 входила полная поддержка Юникода. Позже от этой работы отказались, но функции, которые планировались для PHP 6, внедрили в очередные выпуски: в PHP 5.3 внедрили поддержку пространств имён, а в PHP 5.4 — трейты и «короткий» синтаксис массива.

PHP 7

PHP 7.0 выпустили в 2015 с обновлённой версией ядра — Zend Engine 3.0, в которой улучшили работу с памятью и до двух раз по сравнению с PHP 5.6 увеличили производительность, включили стабильную поддержку 64-разрядных систем, улучшили работу с исключениями, добавили безопасный генератор случайных чисел, оператор объединения с null (??), анонимные классы и другие функции.

В более поздних выпусках серии PHP 7 появилось больше функций языка: короткий синтаксис присваивания значений списку переменных (7.1), объявление типа object параметрам и значениям возврата (7.2), новый гибкий heredoc- и nowdoc-синтаксис (7.3), типизированные свойства (7.4) и новый интерфейс внешних функций (7.4).

PHP 8

Первый выпуск версии состоялся в 2020. PHP 8.0 стал ещё одним крупным обновлением языка PHP. Версия содержала много новых функций и оптимизаций, в которые вошли: именованные аргументы, объединение типов, атрибуты, продвижение параметров конструктора до свойств класса, выражение match, null-безопасный оператор (?->), новый оптимизирующий JIT-компилятор и улучшения в системе типов, обработке ошибок и согласованности.

В более поздних выпусках серии PHP 8 представили новые функции языка, в том числе перечисления (8.1), файберы (8.1), классы только для чтения (8.2), Типы дизъюнктивной нормальной формы (DNF) (8.2) и типизированные константы классов (8.3).

Нормативный английский оригинал из frozen baseline

Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.

PHP Tools, FI, Construction Kit, and PHP/FI

PHP as it's known today is actually the successor to a product named PHP/FI. Created in 1994 by Rasmus Lerdorf, the very first incarnation of PHP was a simple set of Common Gateway Interface (CGI) binaries written in the C programming language. Originally used for tracking visits to his online resume, he named the suite of scripts "Personal Home Page Tools," more frequently referenced as "PHP Tools." Over time, more functionality was desired, and Rasmus rewrote PHP Tools, producing a much larger and richer implementation. This new model was capable of database interaction and more, providing a framework upon which users could develop simple dynamic web applications such as guestbooks. In June of 1995, Rasmus » released the source code for PHP Tools to the public, which allowed developers to use it as they saw fit. This also permitted - and encouraged - users to provide fixes for bugs in the code, and to generally improve upon it.

In September of that year, Rasmus expanded upon PHP and - for a short time - actually dropped the PHP name. Now referring to the tools as FI (short for "Forms Interpreter"), the new implementation included some of the basic functionality of PHP as we know it today. It had Perl-like variables, automatic interpretation of form variables, and HTML embedded syntax. The syntax itself was similar to that of Perl, albeit much more limited, simple, and somewhat inconsistent. In fact, to embed the code into an HTML file, developers had to use HTML comments. Though this method was not entirely well-received, FI continued to enjoy growth and acceptance as a CGI tool --- but still not quite as a language. However, this began to change the following month; in October, 1995, Rasmus released a complete rewrite of the code. Bringing back the PHP name, it was now (briefly) named "Personal Home Page Construction Kit," and was the first release to boast what was, at the time, considered an advanced scripting interface. The language was deliberately designed to resemble C in structure, making it an easy adoption for developers familiar with C, Perl, and similar languages. Having been thus far limited to UNIX and POSIX-compliant systems, the potential for a Windows NT implementation was being explored.

The code got another complete makeover, and in April of 1996, combining the names of past releases, Rasmus introduced PHP/FI. This second-generation implementation began to truly evolve PHP from a suite of tools into a programming language in its own right. It included built-in support for DBM, mSQL, and Postgres95 databases, cookies, user-defined function support, and much more. That June, PHP/FI was given a version 2.0 status. An interesting fact about this, however, is that there was only one single full version of PHP 2.0. When it finally graduated from beta status in November, 1997, the underlying parsing engine was already being entirely rewritten.

Though it lived a short development life, it continued to enjoy a growing popularity in still-young world of web development. In 1997 and 1998, PHP/FI had a cult of several thousand users around the world. A Netcraft survey as of May, 1998, indicated that nearly 60,000 domains reported having headers containing "PHP", indicating that the host server did indeed have it installed. This number equated to approximately 1% of all domains on the Internet at the time. Despite these impressive figures, the maturation of PHP/FI was doomed to limitations; while there were several minor contributors, it was still primarily developed by an individual.

Example #1 Example PHP/FI Code

<!--include /text/header.html-->

<!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
  Hey, you are using Netscape!<p>
<!--endif-->

<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
  Sorry, that record does not exist<p>
<!--endif exit-->
  Welcome <!--$user-->!<p>
  You have <!--$index:0--> credits left in your account.<p>

<!--include /text/footer.html-->

PHP 3

PHP 3.0 was the first version that closely resembles PHP as it exists today. Finding PHP/FI 2.0 still inefficient and lacking features they needed to power an eCommerce application they were developing for a university project, Andi Gutmans and Zeev Suraski of Tel Aviv, Israel, began yet another complete rewrite of the underlying parser in 1997. Approaching Rasmus online, they discussed various aspects of the current implementation and their redevelopment of PHP. In an effort to improve the engine and start building upon PHP/FI's existing user base, Andi, Rasmus, and Zeev decided to collaborate in the development of a new, independent programming language. This entirely new language was released under a new name, that removed the implication of limited personal use that the PHP/FI 2.0 name held. It was renamed simply 'PHP', with the meaning becoming a recursive acronym - PHP: Hypertext Preprocessor.

One of the biggest strengths of PHP 3.0 was its strong extensibility features. In addition to providing end users with a mature interface for multiple databases, protocols, and APIs, the ease of extending the language itself attracted dozens of developers who submitted a variety of modules. Arguably, this was the key to PHP 3.0's tremendous success. Other key features introduced in PHP 3.0 included object-oriented programming support and a far more powerful and consistent language syntax.

In June, 1998, with many new developers from around the world joining the effort, PHP 3.0 was announced by the new PHP Development Team as the official successor to PHP/FI 2.0. Active development of PHP/FI 2.0, which had all-but ceased as of November of the previous year, was now officially ended. After roughly nine months of open public testing, when the announcement of the official release of PHP 3.0 came, it was already installed on over 70,000 domains around the world, and was no longer limited to POSIX-compliant operating systems. A relatively small share of the domains reporting PHP as installed were hosted on servers running Windows 95, 98, and NT, and Macintosh. At its peak, PHP 3.0 was installed on approximately 10% of the web servers on the Internet.

PHP 4

By the winter of 1998, shortly after PHP 3.0 was officially released, Andi Gutmans and Zeev Suraski had begun working on a rewrite of PHP's core. The design goals were to improve performance of complex applications, and improve the modularity of PHP's code base. Such applications were made possible by PHP 3.0's new features and support for a wide variety of third party databases and APIs, but PHP 3.0 was not designed to handle such complex applications efficiently.

The new engine, dubbed 'Zend Engine' (comprised of their first names, Zeev and Andi), met these design goals successfully, and was first introduced in mid 1999. PHP 4.0, based on this engine, and coupled with a wide range of additional new features, was officially released in May 2000, almost two years after its predecessor. In addition to the highly improved performance of this version, PHP 4.0 included other key features such as support for many more web servers, HTTP sessions, output buffering, more secure ways of handling user input and several new language constructs.

PHP 5

PHP 5 was released in July 2004 after long development and several pre-releases. It is mainly driven by its core, the Zend Engine 2.0 with a new object model and dozens of other new features.

PHP's development team includes dozens of developers, as well as dozens others working on PHP-related and supporting projects, such as PEAR, PECL, and documentation, and an underlying network infrastructure of well over one-hundred individual web servers on six of the seven continents of the world. Though only an estimate based upon statistics from previous years, it is safe to presume PHP is now installed on tens or even perhaps hundreds of millions of domains around the world.

PHP 6

The plan for PHP 6 was to feature deep support for Unicode in the engine and language. This work was later abandoned, but other features that had been targeted for PHP 6 were instead incorporated into PHP 5.3 (namespaces) and PHP 5.4 (trait, "short" array syntax).

PHP 7

PHP 7.0 was released in 2015, and featured another major version of the core, Zend Engine 3.0, which included significant performance improvements (up to twice as fast as PHP 5.6) and memory usage, consistent 64-bit support, improvements to exceptions, a secure random number generator, the null coalescing operator (??), anonymous classes, and other features.

Later releases of the PHP 7 series introduced more language features such as the short list syntax (7.1), object parameter and return type declaration (7.2), a new flexible heredoc and nowdoc syntax (7.3), typed properties (7.4), and a new foreign function interface (7.4).

PHP 8

First released in 2020, PHP 8.0 was another major update of the PHP language. It contained many new features and optimizations including named arguments, union types, attributes, constructor property promotion, match expressions, the nullsafe operator (?->), a new optimizing JIT compiler, and improvements in the type system, error handling, and consistency.

Later releases of the PHP 8 series introduced new language features including enumerations (8.1), fibers (8.1), readonly classes (8.2), Disjunctive Normal Form (DNF) Types (8.2), and typed class constants (8.3).

Узнать текущую ветку, не угадывая её по серверуСамостоятельный пример
<?php
echo 'Ветка: ', PHP_MAJOR_VERSION, '.', PHP_MINOR_VERSION, "\n";
Ожидаемый результат
Ветка: 8.5

Пример выполнен в зафиксированном PHP 8.5.11. Константы сообщает сам runtime; история объясняет происхождение ветки, а не подменяет проверку окружения.

Книги о PHP: исторический указатель

История здесь нужна не для запоминания дат. Она объясняет, почему в старом проекте встречаются разные модели объектов, функции-алиасы и давно снятые расширения, а современный код предъявляет другие требования к типам и ошибкам.

Полный официальный договор страницы

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

С ростом PHP, его начали узнавать по всему миру, как популярный язык программирования. Одним из наиболее интересных способов суждения об этом может послужить обзор книг о PHP.

Насколько нам известно, первой книгой, посвящённой PHP, была чешская книга, выпущенная в апреле 1999 года под названием 'PHP - tvorba interaktivních internetových aplikací' (PHP - Создание интерактивных интернет-приложений). Автором книги является Jirka Kosek. В следующем месяце следом за ней выходит немецкая книга Эгона Шмидта (Egon Schmid), Кристиана Картуса (Christian Cartus) и Ричарда Блюма (Richard Blum). Вскоре после этого была опубликована первая на английском языке книга, посвящённая PHP, - 'Core PHP Programming' Леона Аткинсона (Leon Atkinson). Все эти книги описывали PHP 3.0.

Эти книги были первыми в своём роде, и вскоре было выпущено большое количество книг различных авторов и издательств. Существует более 400 книг на английском, более 100 на немецком, и больше 50 на французском и испанском языках! Кроме того, можно найти книги о PHP на многих других языках, включая корейский, японский и иврит.

Очевидно, что такое большое количество книг, написанных разными авторами и опубликованных многими издательствами на столь многих языках, является весомым подтверждением мирового успеха PHP.

Нормативный английский оригинал из frozen baseline

Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.

As PHP grew, it began to be recognized as a world-wide popular development platform. One of the most interesting ways of seeing this trend was by observing the books about PHP that came out throughout the years.

To the best of our knowledge, the first book dedicated to PHP was 'PHP - tvorba interaktivních internetových aplikací' (PHP - Creating Interactive Internet Applications) - a Czech book published in April 1999, authored by Jirka Kosek. Next month followed a German book authored by Egon Schmid, Christian Cartus and Richard Blume. The first book in English about PHP was published shortly afterwards, and was 'Core PHP Programming' by Leon Atkinson. These books covered PHP 3.0.

While these books were the first of their kind - they were followed by a large number of books from a host of authors and publishers. There are over 400 books in English, over 100 books in German, and over 50 books in French or Spanish! In addition, you can find books about PHP in many other languages, including Korean, Japanese and Hebrew.

Clearly, this large number of books, written by different authors, published by many publishers, and their availability in so many languages - are a strong testimony for PHP's world-wide success.

Публикации о PHP: исторический указатель

История здесь нужна не для запоминания дат. Она объясняет, почему в старом проекте встречаются разные модели объектов, функции-алиасы и давно снятые расширения, а современный код предъявляет другие требования к типам и ошибкам.

Это историческая справка о том, как PHP вышел за пределы собственных списков рассылки: первая известная печатная статья появилась весной 1998 года в чешском Computerworld и была посвящена PHP 3. Затем материалы выходили в Dr. Dobb's, Linux Enterprise, Linux Magazine и других изданиях; Microsoft MSDN публиковал материалы о переносе ASP-приложений на PHP под Windows.

Полный официальный договор страницы

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

По нашей информации, первая статья о PHP была опубликована в чешском варианте 'Computerworld' весной 1998 и освещала PHP 3.0. Как и в случае с книгами, эта была первая в серии статья из множества посвящённых PHP и опубликованных в различных известных журналах.

Статьи о PHP публиковались в 'Dr. Dobbs', 'Linux Enterprise', 'Linux Magazine' и многих других изданиях. А статьи о переносе основанных на ASP приложений на PHP под Windows появились даже в принадлежащей самому Microsoft MSDN!

Нормативный английский оригинал из frozen baseline

Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.

To the best of our knowledge, the first article about PHP in a hard-copy magazine was published in the Czech mutation of Computerworld in the spring of 1998, and covered PHP 3.0. As with books, this was the first in a series of many articles published about PHP in various prominent magazines.

Articles about PHP appeared in Dr. Dobbs, Linux Enterprise, Linux Magazine and many more. Articles about migrating ASP-based applications to PHP under Windows even appear on Microsoft's very own MSDN!

История здесь нужна не для запоминания дат. Она объясняет, почему в старом проекте встречаются разные модели объектов, функции-алиасы и давно снятые расширения, а современный код предъявляет другие требования к типам и ошибкам.

Полный официальный договор страницы

Ниже сохранён официальный русский текст и структура из зафиксированного архива PHP Manual. Отдельные ещё не переведённые страницы официального русского архива могут оставаться на английском.

PEAR

» PEAR (PHP Extension and Application Repository - Репозиторий Приложений и Модулей PHP. Изначально, PHP Extension and Add-on Repository - Репозиторий Дополнений и Модулей PHP) - это PHP-версия базовых классов. В будущем возможен его рост и становление ключевым способом публикации модулей PHP среди разработчиков.

PEAR зародился в ходе дискуссий на встрече разработчиков PHP (PHP Developers' Meeting - PDM), проходившей в январе 2000 года в Тель-Авиве. Автором PEAR является Стиг С. Баккен (Stig S. Bakken), который посвятил разработку своей первой дочери, Мэлин Баккен (Malin Bakken).

С начала 2000 года PEAR вырос до огромного проекта с большим количеством разработчиков, работающих над реализацией общего и повторно используемого функционала на благо для всего сообщества PHP. В настоящее время PEAR включает в себя широкий спектр классов для работы с базами данных, кеширования контента, математических вычислений, электронной коммерции и многого другого.

Дополнительная информация о PEAR может быть найдена в » документации.

Инициатива Гарантии Качества PHP

Группа » Инициативы Гарантии Качества PHP была основана весной 2000 в ответ на критику недостаточного бета-тестирования PHP для производственных окружений. Сейчас эта группа состоит из людей, прекрасно понимающих основу кода PHP. Эти разработчики тратят множество времени на обнаружение и устранение ошибок в PHP. Кроме того, много других членов команды тестируют эти исправления и сообщают о результатах их работы на различных платформах.

PHP-GTK

» PHP-GTK является модулем PHP для написания GUI-приложений, работающих на стороне клиента. Андрей Змиевски (Andrei Zmievski) вспоминает процесс планирования и разработки PHP-GTK:

Я всегда интересовался GUI-программированием, и я нахожу Gtk+ очень приятным средством разработки, исключая то, что работать с ним на C немного утомительно. После просмотра PyGtk и GTK-Perl, я решил попробовать написать интерфейс PHP для работы с Gtk+, пусть с минимальными возможностями. Начиная с августа 2000 года, у меня появилось немного больше свободного времени и я начал эксперименты. В разработке я основывался на PyGtk, который обладает большим количеством возможностей и приятным объектно-ориентированным интерфейсом. Джеймс Хэнстридж (James Henstridge), автор PyGtk, давал очень полезные советы в течение первых этапов разработки.

Написание вручную интерфейсов ко всем функциям Gtk+ даже не рассматривалось. Я остановился на идее генератора кода, похожего на аналогичный генератор PyGtk. Генератор читает .defs файлы, содержащие информацию о классах, константах и методах Gtk+ и генерирует C-код, являющийся интерфейсом в PHP. То, что не могло быть сгенерировано автоматически, создаётся вручную в .overrides файлах.

Работа над генератором кода и самой инфраструктурой шла достаточно долго, ввиду того, что я не имел достаточно свободного времени для работы. После того, как я показал PHP-GTK Фрэнку Кромману (Frank Kromman), он заинтересовался и начал помогать мне с генератором кода и версией для Win32. Когда мы написали и запустили первую программу Hello World, это было очень захватывающе. Потребовалось несколько месяцев для придания PHP-GTK презентабельного вида и первая версия вышла 1 марта 2001 года. История быстро попала в SlashDot.

Чувствуя, что PHP-GTK может расти, я создал отдельные почтовые конференции, CVS-репозиторий, а также сайт gtk.php.net с помощью Колина Виеброка (Colin Viebrock). Требовалась документация и здесь на помощь пришёл Джеймс Мур (James Moore).

Со времён создания PHP-GTK получил широкую известность. У нас есть своя группа документирования, люди начинают писать модули для PHP-GTK и все больше и больше прекрасных приложений с его помощью.

Нормативный английский оригинал из frozen baseline

Этот слой сохраняет полный договор, если перевод отстаёт. Источник: английский нормативный оригинал.

PEAR

» PEAR, the PHP Extension and Application Repository (originally, PHP Extension and Add-on Repository) is PHP's version of foundation classes, and may grow in the future to be one of the key ways to distribute PHP extensions among developers.

PEAR was born in discussions held in the PHP Developers' Meeting (PDM) held in January 2000 in Tel Aviv. It was created by Stig S. Bakken, and is dedicated to his first-born daughter, Malin Bakken.

Since early 2000, PEAR has grown to be a big, significant project with a large number of developers working on implementing common, reusable functionality for the benefit of the entire PHP community. PEAR today includes a wide variety of infrastructure foundation classes for database access, content caching, mathematical calculations, eCommerce and much more.

More information about PEAR can be found in » the manual.

PHP Quality Assurance Initiative

The » PHP Quality Assurance Initiative was set up in the summer of 2000 in response to criticism that PHP releases were not being tested well enough for production environments. The team now consists of a core group of developers with a good understanding of the PHP code base. These developers spend a lot of their time localizing and fixing bugs within PHP. In addition there are many other team members who test and provide feedback on these fixes using a wide variety of platforms.

PHP-GTK

» PHP-GTK is the PHP solution for writing client side GUI applications. Andrei Zmievski remembers the planing and creation process of PHP-GTK:

GUI programming has always been of my interests, and I found that Gtk+ is a very nice toolkit, except that programming with it in C is somewhat tedious. After witnessing PyGtk and GTK-Perl implementations, I decided to see if PHP could be made to interface with Gtk+, even minimally. Starting in August of 2000, I began to have a bit more free time so that is when I started experimenting. My main guideline was the PyGtk implementation as it was fairly feature complete and had a nice object-oriented interface. James Henstridge, the author of PyGtk, provided very helpful advice during those initial stages.

Hand-writing the interfaces to all the Gtk+ functions was out of the question, so I seized upon the idea of code-generator, similar to how PyGtk did it. The code generator is a PHP program that reads a set of .defs file containing the Gtk+ classes, constants, and methods information and generates C code that interfaces PHP with them. What cannot be generated automatically can be written by hand in .overrides file.

Working on the code generator and the infrastructure took some time, because I could spend little time on PHP-GTK during the fall of 2000. After I showed PHP-GTK to Frank Kromann, he got interested and started helping me out with code generator work and Win32 implementation. When we wrote the first Hello World program and fired it up, it was extremely exciting. It took a couple more months to get the project to a presentable condition and the initial version was released on March 1, 2001. The story promptly hit SlashDot.

Sensing that PHP-GTK might be extensive, I set up separate mailing lists and CVS repositories for it, as well as the gtk.php.net website with the help of Colin Viebrock. The documentation would also need to be done and James Moore came in to help with that.

Since its release PHP-GTK has been gaining popularity. We have our own documentation team, the manual keeps improving, people start writing extensions for PHP-GTK, and more and more exciting applications with it.

Что история объясняет в старом проекте

PHP/FI, PHP 3/4, новый объектный движок PHP 5, Zend Engine 3 в PHP 7 и строгая эволюция типов в PHP 8 оставили разные пласты кода. Поэтому старое приложение может одновременно содержать процедурные алиасы, ресурсы, классы без типов и современный Composer. Перед модернизацией сначала выясняют минимальную рабочую версию и тестами фиксируют текущее поведение.

Источники и обсуждения

Код и руководство с собой

Скачайте самостоятельные примеры с исходными данными, инструкциями и ожидаемыми результатами. Примеры HTTP и фрагменты для проекта помечены отдельно: им нужно указанное окружение.

Код не исполняется на сайте. Скачайте нужный пример и запускайте его в своём локальном окружении.

Материалы сверены 2026-10-12. Примеры и объяснения написаны для этого руководства; источники и обсуждения доступны в каждой главе.