Что такое PHP? Какие основные области применения? - mcodex

Что такое PHP? Какие основные области применения?

Аббревиатура PHP расшифровывается как «PHP Hypertext Preprocessor», в названии заложена рекурсия, но изначально язык назывался проще — «Personal Home Page Tools».
Язык появился в середине 90-х годов 20-го века, является серверным языком программирования общего назначения, преимущественно используемый в веб-разработке.
Изначально PHP был создан для работы с веб-страницами, а конкретнее — для вывода на статических html-страницах динамических данных: результатов выполнения функций, данных полученных из базы данных и т.д.
В настоящее время основной областью применения PHP остаются веб-технологии:

  • фреймворки (например Laravel, Symfony, Yii)
  • СMS (например, WordPress, Drupal, Joomla)
  • веб-сервисы SaaS
  • API для фронтенда, мобильных приложений
  • динамические веб-страницы,
  • консольные CLI-утилиты (например, Deployer, Composer)

Основные особенности языка:

  • язык является интерпретируемым, но начиная с версии 8.0 у него появился JIT-компилятор
  • выполнение на сервере, хотя, к слову, технология WebAssembly позволяет выполнять код PHP в браузере, но этот подход имеет узкую специализацию, в основном для
    создания онлайн-песочниц
  • нет нативной реализации EventLoop из коробки для реализации асинхронности, но решается через сторонние библиотеки, например, ReactPHP, Swoole
  • нет многопоточности из коробки, как у Java или Golang, решается через расширения, например, parallel
  • в традиционном использовании 1 http-запрос = 1 процесс, решается через менеджер процессов PHP-FPM
  • слабая типизация, но начиная с 7-й версии появилась возможность установить режим строгой типизации

Сильные стороны языка:

  • OPCache — in-memory хранилище байт-кода. Код приложения преобразовывается интерпретатором в инструкции для виртуальной машины Zend (байт-код, опкод),
    сохраняется в памяти и при последующих запусках Zend сразу берет готовый байт-код, минуя этапы чтения и преобразования кода приложения.
    Начиная с версии 5.5 входит в ядро, но для работы необходимо установить опцию в файле php.ini
  • JIT-компилятор. Работает поверх OPCache, преобразовывает байт-код в машинные инструкции для процессора.
  • Composer. Менеджер пакетов, сторонняя утилита, позволяет устанавливать в проект пакеты, контролирует зависимости и многое другое.
  • PSR. Набор стандартов для разработчиков, делающий код проектов удобным для поддержки и использования.

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