PHP. Язык для бэкенда №1
PHP — один из самых популярных языков веб-разработки, однако далеко не все программисты с ним знакомы, а многие и намеренно избегают. Давайте рассмотрим ключевые особенности языка, историю его развития и то, как PHP используется сегодня.
В эпоху зарождения веба сайты с динамическим контентом создавались на C и Perl — не самых простых языках программирования. Вскоре после релиза в 1995 г. PHP стал первым языком, с которым новичок в веб-разработке мог быстро запустить сайт. Сама аббревиатура PHP изначально соответствовала Personal Home Page, «личная домашняя страница».
PHP стартовал, как язык шаблонов. Разработчик добавлял в код веб-страницы тег <?php ? > и описывал внутри него те варианты взаимодействия со страницей, которых не хватало стандарту HTML. Когда PHP-код разрастался до нескольких десятков строк, текст переносили в отдельный файл. Простота концепции обеспечила языку широкое распространение, и развитием PHP стали заниматься люди с очень разными взглядами на его конечное применение. В результате язык стал заложником ряда непоследовательных решений, из-за которых многие разработчики стали чураться PHP, как нелогичного языка веб-разработки.
Со временем большая аудитория спасла PHP. Среди любителей языка нашлись принципиальные разработчики, которые выполнили работу по оптимизации кода, и наладили процесс развития. Сегодня язык вполне удобен для веб-разработки, регулярно выпускаются новые релизы. В PHP появились инструменты дебага, написания тестов, форматирования под стандарты и статические анализаторы кода, а также миграции на новые версии языка.
Особенности языка PHP
PHP является интерпретируемым языком. Это означает, что код выполняется компьютером сразу же при обращении к скрипту, без перевода в машинный код.
Вот очень простой код на PHP, в котором мы создали переменную var
со строковым значением и показываем это значение пользователям сайта.
<?php
$var = "Hello, World!"; //Создание переменной не требует указания типа
echo $var; //Вывод с помощью одного оператора
Вы можете попробовать запустить этот код в песочнице и посмотреть, что получится. Подробнее о синтаксисе языка мы расскажем в одной из следующих статей. Пока же рассмотрим основные плюсы и минусы.
Преимущества PHP:
- открытый исходный код, свободная лицензия;
- распространённый язык, большое сообщество;
- подробная документация, в том числе на русском языке;
- множество готовых решений для типовых задач;
- низкий порог входа — при желании новичок может реализовать любую характерную для веба идею.
Недостатки PHP:
- Неочевидное преобразование типов данных приводит к неприятным сюрпризам. В последних версиях эту проблему можно избежать, если включить строгую типизацию.
- Нет многопоточности в обычном понимании, паралеллизм приложений обеспечивается не столько языком, сколько естественным параллелизмом веб-запросов.
- Противоречивый выбор оформления имён в стандартной библиотеке языка, обусловленный его долгим развитием. Из-за этого приходится регулярно сверяться с документацией языка.
- Узкая специализация: знания применимы преимущественно в вебе.
Стандартная библиотека PHP и менеджер зависимостей
PHP поставляется с тысячами встроенных функций. Однако если вы знаете, чего хотите достичь, то поиск не займёт много времени. Есть готовые реализации распространённых структур данных, интерфейсов, классов и функций для построения каркасов приложений. Важная особенность функций PHP из стандартной библиотеки — они доступны глобально, их не нужно импортировать и можно вызвать в любом месте программы.
Сторонние библиотеки поддерживаются с помощью специальной системы контроля подключенных библиотек Composer. Необходимые библиотеки перечисляются в виде списка-конфигурации, а уже Composer берёт на себя всю машинерию подключения нужных библиотек. Это вполне современный подход: так, в Node.js те же задачи решаются с помощью менеджера npm, а в Python — посредством pip.
Как используется PHP
Сегодня PHP код реже встраивается в код страниц, чем на заре становления языка. Нишу фронтенда занял JavaScript, а PHP выполняет задачи позади интерфейса и является самым распространенным серверным языком. В качестве примеров крупных сайтов на основе PHP можно привести YouTube, Википедию и VK. Для других сфер, кроме бэкенда, язык используют редко — приходится жертвовать универсальностью в пользу эффективности технологии в отдельной области.
Три главных вещи, которые позволяет делать PHP:
- Собирать веб-страницы из модулей. Можно написать отдельные блоки для шапки сайта, меню, подвала с указанием контактов, и собирать всё это в нужном виде по заданным адресам. Код для собственного решения не придется писать с нуля, так как в мире PHP есть готовые бэкенд-фреймворки: например, Laravel для малых и средних проектов и Symfony для крупных.
- Работать с данными пользователей. PHP умеет общаться и с HTML, и с базами данных. Это делает его отличным посредником между интерфейсом пользователя и миром данных. Например, информацию из формы регистрации на HTML интерпретатор PHP может сложить в базу данных, и потом сверить информацию о пользователе при входе.
- Писать скрипты для CMS. На рынке имеется множество систем управления контентом, в которых PHP используется в качестве языка разработки и для плагинов. На PHP пишут скрипты для WordPress, Joomla и Drupal. Даже незнакомые с программированием люди могут создать с помощью PHP необходимые элементы.
Современный PHP — доступный и простой для освоения язык, который позволяет быстро и малыми силами добиться цели в одной чётко очерченной области. В то же время это мощный язык, на котором можно реализовывать различные архитектурные паттерны разработки. В силу специфики он вряд ли вытеснит другие популярные языки, но продолжит использоваться в своей естественной роли, так как сайтов на PHP очень много, и на нём продолжают создавать новые крупные веб-проекты.
Если вы уже работаете с PHP, вам может быть интересно почитать о том, как разные возможности языка поддерживаются в нашем основном продукте — панели ispmanager. Мы подробно описали ключевые моменты по работе с PHP в документации. В частности, панель ispmanager облегчает установку разных версий PHP на одном сервере и позволяет эффективно администрировать Composer и расширения PHP.