Веб-разработка на PHP
2026-02-26 20:42 Diff

Главный секрет PHP заключается в том, что сам язык — шаблонизатор. Если посмотреть на другой язык, в его файлах нельзя увидеть ничего похожего на теги <?php ... ?>.

В PHP любой файл с кодом — это шаблон. Причем этот шаблон не имеет структуры, как бывает в некоторых шаблонизаторах.

Мы можем создать PHP-файл, написать любой текст вне тегов <?php ?> и запустить код на выполнение. При этом он не упадет с указанием синтаксической ошибки.

Содержимое index.php:

Запуск этого кода выведет весь текст на экран:

То же самое касается HTML, так как это всего лишь текст. Достаточно в любом PHP-файле добавить немного HTML и запустить его, как он будет выведен на экран:

Содержимое index.php:

Запуск этого кода выведет весь текст на экран:

Такое поведение языка существует исключительно ради создания сайтов. Если запустить веб-сервер в директории с этим файлом index.php, то при обращении к этому сайту мы получим вывод как в терминале. Это значит, что мы можем заменить такой код:

На такой:

Отсюда следует важный вывод. Любой PHP-файл – это обычный текстовый файл со вставками PHP-кода с помощью тегов <?php ?>. Любой текст, написанный внутри него, отдается в вывод как есть, будь то браузер или запуск в командной строке.

Теперь добавим немного PHP. Шаблон становится шаблоном, когда внутри него появляется подстановка данных. Принцип работы: в любом месте шаблона вставляются теги <?php ?>, внутри которых можно написать код. Фактически мы имеем дело с обычной строковой интерполяцией:

Добавим немного программирования. Запуск следующего кода вернет такой же результат, что и код выше:

В этом примере мы добавили один блок сверху файла, внутри которого создали переменную. Затем мы использовали ее в другой вставке.

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

Вывод на экран после запуска:

Для удобства вставки кода в HTML PHP предлагает альтернативный синтаксис для стандартных конструкций языка. Например, для вставки значения используется сокращенная версия тега начала PHP-кода: <?= <код на php> ?>. Она отличается от полной тем, что вместо <?php echo ... используется <?= ....

Сокращенная вставка

If

Switch

Foreach

С одной стороны поддержка CGI внутри самого языка позволяет начать делать сайт «на коленке» без особых знаний программирования и HTTP, что многие и делают. С другой — PHP толкает к созданию не поддерживаемого кода, который не может никто прочитать кроме автора.

Посмотрите сами:

Такой способ программирования возможен только в PHP, потому что только PHP это сразу и язык, и шаблонизатор, и CGI-скрипт. При таком способе организации кода сайт быстро начинает представлять собой мешанину HTML и PHP.

Если количество разных страниц сайта достигнет хотя бы десятка, то поддержка уже станет намного сложнее. Безопасность такой шаблонизации находится на нуле (см. XSS).

Также PHP не поддерживает макеты — специализированные шаблоны, содержащие обвязку сайта, в которую вставляется HTML конкретного обработчика.

По этой причине в PHP используют шаблонизаторы, написанные на самом PHP. Наиболее популярные среди них Blade и Twig. Также рекомендуем шаблоны на основе Slim, но в PHP они не так популярны, как в JS или Ruby.

Шаблонизаторы будут одной из тем следующих уроков.