Php история создания кратко

Обновлено: 30.06.2024

PHP начал зарождаться осенью 1994 года. В то время программист Расмус Лердорф начал писать на языке Perl простенький движок, который подсчитывал количество посетителей сайта Расмуса. Этот движок назвали в честь Расмуса – PHPT, а в 1997 году было дано более короткое название PHP (Hypertext Preprocessor). Расмус при разработке стал делать упор на популярный язык С. Также в те времена были добавлены популярные базы данных, что сделало PHP ещё более популярным и универсальным.

PHP известен, как серверный язык программирования. Это означает, что он работает на веб сервере. За долгие годы своего существования язык PHP зарекомендовал себя как великолепное решение для создания динамических веб-сайтов. Теперь перейдем к истории развития PHP:

PHP 3.0 была первой версией, напоминающей PHP, каким мы знаем его сегодня. В 1997 году Энди Гутманс (Andi Gutmans) и Зив Сураски (Zeev Suraski) переписали код с начала. Одной из сильнейших сторон PHP 3.0 была возможность расширения ядра. В последствии интерфейс написания расширений привлек к PHP множество сторонних разработчиков, работающих над своими модулями, что дало PHP возможность работать с огромным количеством баз данных, протоколов, поддерживать большое число API. Фактически, это и был главный ключ к успеху, но стоит добавить, что немаловажным шагом оказалась разработка нового, намного более мощного и полного синтаксиса с поддержкой ООП. PHP 3.0 был официально выпущен в июне 1998 года после 9 месяцев публичного тестирования.

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

В дополнение к улучшению производительности, PHP 4.0 имел несколько ключевых нововведений, таких как поддержка сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций.

В PHP5 объектная модель была значительно переработана. При этом было добавлено много новых возможностей, благодаря которым PHP5 получил некоторые черты таких объектно-ориентированных языков, как C++ и Java. Изменения коснулись производительности встроенных стандартных функций PHP. По некоторым оценкам, скорость работы стандартных функций в PHP5 увеличилась на 40% и более. Поддержка XML в версии PHP5 стала полной, поддерживаются новые расширения DOM и XML.

Разработчики PHP решили пропустить цифру “6” поэтому новая версия называется PHP7. В PHP 7 расширили ранее существовавшее объявление параметров в методах (классах, интерфейсах и массивах) путем добавления четырех скалярных типов — целого (int), с плавающей запятой (float), логического (bool) и строкового (string) в качестве возможного типа параметра. Кроме того, опционально мы можем указать тип результата, возвращаемого функцией или методом. Поддерживаются типы bool, int, float, string, array, callable, имя класса или интерфейса и parent (для методов класса).

На данный момент самая новая версия PHP под номером 7. Но разработчики не стоят на месте и может в ближайшем будущем вы увидем новую версию PHP.

В настоящее время платформа поддерживается подавляющим большинством хостинг-провайдеров и считается лидером среди инструментов для создания динамических веб-сайтов.

История развития PHP

PHP

Последовательность появления новых версий:

Сейчас более распространены 6 и 7 версии PHP. Первая с 2010 года считается бесперспективной из-за сложностей с поддержкой Юникода, поэтому на хостингах часто можно увидеть пятый релиз в качестве базовой платформы. С 2015 года новые разработки преимущественно ведутся на седьмой версии PHP. В нее добавлена масса новых операторов, поэтому обратная совместимость несколько страдает.

По мере развития PHP перестал быть языком для создания персональных страниц, и термин стали применять со значением Hypertext Preprocessor. Система продолжает развиваться – например, в 2020 году официально выпущен 8 релиз PHP. Правда, компания Microsoft, специалисты которой ранее занимались тестированием безопасности, решила отказаться от поддержки языка, но энтузиасты уже взялись искать решение.

Области применения

Преимущество PHP заключается в том, что это серверный язык. Поэтому он и стал основой для создания веб-приложений – пользователи получают результат вычислений, а всю нагрузку по ним забирает удаленный сервер. Именно это стало причиной появления таких CMS, как WordPress, Joomla, Drupal. На PHP написаны фреймворки типа Laravel, Yii2, Symfony.

PHP лого

Существует три основных направления, где востребован PHP:

  1. Написание скриптов, исполняемых на стороне сервера. Основное применение PHP – создание сайтов, размещаемых на хостинге (заранее настроенном для этого).
  2. Написание скриптов, которые исполняются в командной строке независимо от веб-сервера и браузера. Примеры приложений – Task Scheduler под Windows, cron под Linux.
  3. Разработка приложений GUI, исполняемых на стороне клиента. Основная сфера применения – создание кроссплатформенных приложений.

Перспективы применения PHP

Версии PHP

Преимущества использования PHP:

  1. низкий порог вхождения,
  2. проверенные инструменты разработки,
  3. крупное профессиональное сообщество,
  4. большая библиотека готовых решений,
  5. нетребовательность к рабочему окружению.

image

По слухам, сегодня должен состояться релиз 7.1. Поэтому хотелось бы немного оглянуться назад и посмотреть, а как же php вырос из набора костылей и подпорок в полноценный язык для веба. Прямо по шагам, т.е. по версиям. А в конце хотелось бы немного поразжигать поразмыслить о роли php в современной экосистеме.

Давайте мысленно вернемся во времена php4, когда получили своё развитие wordpress, bitrix и миллионы других CMS и домашних страничек.

Php до пятой версии можно было называть языком с натяжкой. Скорее это был хаотический набор функций, которые можно было быстро вызывать, чтобы выплюнуть данные из mysql в браузер. Там были зачатки ООП, но такие, что наверно лучше бы их не было.

Каждый второй сайт работал с включенными галочками magic quotes. Т.е. все переменные, которые прилетали от браузера магически экранировались. Что якобы позволяло их безопасно вставлять в базу данных. На деле же универсальным CMS приходилось это дело чистить (или оставлять как есть, в зависимости от настроек в php.ini). В общем мрак. Но для новичка якобы было “удобно”: вставлять всё, что прилетело в базу и не париться.

Соответственно, порог входа был крайне низким, достаточно было выучить функцию mysql_query и htmlspecialchars. Это привело к тому, что сайты на php стали делать абсолютно все: чуть ли не каждый второй студент был членом “веб-студии”.

Порог был низким, качество кода соотвествовало. Возьмите любой крупный проект, который начался в те времена, и посмотрите на его код. Страх, ненависть, боль.

Но потом появился php5

Эта версия языка сделала огромный рывок в ООП. Появились модификаторы доступа (public, protected, private). Выделились статические методы (static). Появились интерфейсы. Деструкторы. Reflection API. Работа с исключениями. Магические методы __get и __set . Итераторы. ArrayAccess (чтобы можно было сделать объект, имитирующий массив). И многое-многое другое. По большому счету парни взяли, и многое скопировали из java, включая даже названия ключевых слов (extends, implements, try, catch и т.д.). Т.е. получилась динамически типизированная джава. Правда без неймспейсов.
Насчет типизации тоже был сделан шаг вперед, а именно type hinting. Т.е. в аргументах методов стало можно указать имя класса (или интерфейса), таким образом стал проверяться тип (хоть где-то!).
Появилось расширение SPL (набор интерфейсов и классов для решения стандартных задач).

После релиза у многих разработчиков случился форменный разрыв шаблонов, так как люди внезапно стали резко разделяться на два лагеря: те, кто умеют ООП и те, кто не умеют ООП и костылируют старые вордпрессы. Понятно, что многие и раньше (еще на php4) пытались работать с тем ООП что было, но тот велосипед с квадратными колесами не позволял по-настоящему развернуться.

Также в php5 раза в два выросла скорость. Короче, php5 — это был тупо отдельный новый язык.

В основном это перепахивание различных функций и багфиксы. Например, появилась функция json_encode

Очень важной фичей было включение PDO по умолчанию. Всё меньше и меньше людей используют mysql_query и SQL-инъекции в них.

А вот версия 5.3 стала очередным прорывом в языке.
Самое главное — появились неймспейсы (аналог package в java). Это дало большой толчок к развитию различных библиотек и фреймворков. Через пару лет после релиза начал зарождаться менеджер зависимостей composer.

Появился оператор goto

Сокращенный тернарный оператор ?:

Появился оператор static для позднего статического связывания и магический метод __callStatic

php-fpm включен в ядро

Здесь наконец-то полностью выпилены магические кавычки и register_globals. Т.е. с какой-то версии они были deprecated, а начиная с 5.4 их наконец-то грохнули. Кстати, интересный факт: на одной конференции Расмус Лердорф (создатель php) сказал, что голосовал против выпиливания magic_quotes, что на мой взгляд очень странно. Мне казалось, что все уже давно наелись этой магией по горло.

Также в этой версии было еще очень важное изменение: появились примеси (traits).

Добавлена короткая запись массивов, т.е. вместо Array(1,2,3) стало можно писать [1,2,3]

Также можно отметить появление разыменования массивов

и возможность сделать так:

В type hint стало возможно исползьовать callable

В 5.5 появились генераторы и ключевое слово "finally".

А также рызыменование литералов массива и строки:

Оператор ::class для получения имени класса вместе с неймспейсом.

php 6 так и не вышел. Главный challenge этой версии был в поддержке UTF на уровне ядра (был выбран UTF-16). Но там оказалось столько работы, что после длительной разработки в итоге от идеи отказались. Как утверждают разработчики, если бы выбрали UTF-8, все было бы гораздо легче и был бы какой-то результат. Уж не знаю почему.

Седьмая версия стала очередным прорывом в языке, сопоставимая с 5.0 и 5.3. Во первых, всё стало быстрее работать раза в два-три.
Во-вторых, в тайпхинтинг стало возможным использовать скалярные типы: int, string и т.д. А также задавать тип возвращаенмого значения метода. Причем, если в начале файла указать

то на попытку передачи float в аргумент, требующий int, будет выдан Fatal Error.

По сути это дает возможность писать на php почти что как на строго типизированном языке.

Добавлены операторы ?? и

Появились анонимные классы, групповые декларации use, улучшены генераторы, убрана некоторая магия из преобразования строк в числа и прочее.

Типы аргументов и возвращаемых значений можно пометить как nullable с помощью оператора?
например ?string

тип возвращаемого значения void . Т.е. если в таком методе будет return, то это вызовет fatal error

Замена list на []
т.е. будет возможна запись

У констант класса появилась видимость ( public , protected , private )

Обработка нескольких исключений сразу (как в java)

Отрицательные смещения для строк "abcdef"[-2]

Асинхронная обработка сигналов pcntl_async_signals()

В итоге мы имеем хороший язык для веба, у которого есть всё: фреймворки (Symfony, Yii и т.д), менеджер зависимостей и т.д. Но порог входа теперь совсем другой. Т.е. человек, который пишет на современном php, должен как минимум знать кучу ООП best practices, использовать фреймворки и composer, знать кучу фич языка и его расширений.

К сожалению, огромное количество php-шников до сих пор используют php как php4, и не хотят учиться. Именно из-за того, что порог входа был низкий, а теперь надо сильно перестраиваться. Всё это, мягко говоря, не улучшает репутацию языка.

В итоге работодатели ожидают дешевую рабочую силу (это ж "похапе", там дешевые программисты), а на деле при найме выходит, что для решения современных задач нужны современные программисты, а их сильно не хватает.

Вообще, хотелось бы обсудить перспективы php на будущее. Какие у языка есть киллер-фичи?

Как вы думаете, есть ли своя ниша у php, и в чем она заключается? Я не для того, чтобы потроллить, мне правда очень интересно.


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

Третья версия PHP вошла в историю, именно она определила современный стиль и облик PHP. Переработанная израильскими программистами Энди Гутмансом и Зеевом Сураски версия PHP 3.0 официально вышла летом 1998 года.

В конце 1998 года израильские программисты начали разрабатывать новый движок. Они сделали акцент на увеличение производительности и совершенствование модульности базиса PHP кода. Благодаря труду разработчиков в 1999 году родился движок под названием Zend Engine, который был на голову выше движка предыдущей версии PHP. На основе Zend Engine к 2000 году официально был выпущен язык PHP 4.0. В новой версии значительно возросла производительность, присутствовал ряд полезных нововведений. В PHP 4.0 была включена поддержка сессий. Стало возможно буферизировать вывод. Язык стал более безопасный.

В середине июля 2004 года вышла пятая версия PHP. PHP 5 работает на ядре Zend Engine 2, которое значительно эффективней и производительней. Значительным моментом в истории развития PHP было внедрения полноценного объектно-ориентированного программирования в PHP 5, что в разы упростило и сделало удобным разработку масштабных проектов на языке PHP. В настоящее время последняя версия интерпретатора PHP — версия 5.4.

Шестая версия находится в разработке с 2006 года. Но спустя 4 года разработчики посчитали ее бесперспективной из-за возникших проблем. Судьба PHP 6 пока что неизвестна.

Читайте также: