0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Главный секрет PHP заключается в том, что сам язык - шаблонизатор. Если посмотреть на другой язык, в его файлах нельзя увидеть ничего похожего на теги <?php ... ?>.</p>
1
<p>Главный секрет PHP заключается в том, что сам язык - шаблонизатор. Если посмотреть на другой язык, в его файлах нельзя увидеть ничего похожего на теги <?php ... ?>.</p>
2
<p>В PHP любой файл с кодом - это шаблон. Причем этот шаблон не имеет структуры, как бывает в<a>некоторых</a>шаблонизаторах.</p>
2
<p>В PHP любой файл с кодом - это шаблон. Причем этот шаблон не имеет структуры, как бывает в<a>некоторых</a>шаблонизаторах.</p>
3
<p>Мы можем создать PHP-файл, написать любой текст вне тегов <?php ?> и запустить код на выполнение. При этом он не упадет с указанием синтаксической ошибки.</p>
3
<p>Мы можем создать PHP-файл, написать любой текст вне тегов <?php ?> и запустить код на выполнение. При этом он не упадет с указанием синтаксической ошибки.</p>
4
<p>Содержимое<em>index.php</em>:</p>
4
<p>Содержимое<em>index.php</em>:</p>
5
<p>Запуск этого кода выведет весь текст на экран:</p>
5
<p>Запуск этого кода выведет весь текст на экран:</p>
6
<p>То же самое касается HTML, так как это всего лишь текст. Достаточно в любом PHP-файле добавить немного HTML и запустить его, как он будет выведен на экран:</p>
6
<p>То же самое касается HTML, так как это всего лишь текст. Достаточно в любом PHP-файле добавить немного HTML и запустить его, как он будет выведен на экран:</p>
7
<p>Содержимое<em>index.php</em>:</p>
7
<p>Содержимое<em>index.php</em>:</p>
8
<p>Запуск этого кода выведет весь текст на экран:</p>
8
<p>Запуск этого кода выведет весь текст на экран:</p>
9
<p>Такое поведение языка существует исключительно ради создания сайтов. Если запустить веб-сервер в директории с этим файлом<em>index.php</em>, то при обращении к этому сайту мы получим вывод как в терминале. Это значит, что мы можем заменить такой код:</p>
9
<p>Такое поведение языка существует исключительно ради создания сайтов. Если запустить веб-сервер в директории с этим файлом<em>index.php</em>, то при обращении к этому сайту мы получим вывод как в терминале. Это значит, что мы можем заменить такой код:</p>
10
<p>На такой:</p>
10
<p>На такой:</p>
11
<p>Отсюда следует важный вывод. Любой PHP-файл - это обычный текстовый файл со вставками PHP-кода с помощью тегов <?php ?>. Любой текст, написанный внутри него, отдается в вывод как есть, будь то браузер или запуск в командной строке.</p>
11
<p>Отсюда следует важный вывод. Любой PHP-файл - это обычный текстовый файл со вставками PHP-кода с помощью тегов <?php ?>. Любой текст, написанный внутри него, отдается в вывод как есть, будь то браузер или запуск в командной строке.</p>
12
<p>Теперь добавим немного PHP. Шаблон становится шаблоном, когда внутри него появляется подстановка данных. Принцип работы: в любом месте шаблона вставляются теги <?php ?>, внутри которых можно написать код. Фактически мы имеем дело с обычной строковой интерполяцией:</p>
12
<p>Теперь добавим немного PHP. Шаблон становится шаблоном, когда внутри него появляется подстановка данных. Принцип работы: в любом месте шаблона вставляются теги <?php ?>, внутри которых можно написать код. Фактически мы имеем дело с обычной строковой интерполяцией:</p>
13
<p>Добавим немного программирования. Запуск следующего кода вернет такой же результат, что и код выше:</p>
13
<p>Добавим немного программирования. Запуск следующего кода вернет такой же результат, что и код выше:</p>
14
<p>В этом примере мы добавили один блок сверху файла, внутри которого создали переменную. Затем мы использовали ее в другой вставке.</p>
14
<p>В этом примере мы добавили один блок сверху файла, внутри которого создали переменную. Затем мы использовали ее в другой вставке.</p>
15
<p>Все содержимое файла находится в одном пространстве и блоки кода, определенные дальше по тексту, имеют доступ к данным предыдущих блоков. Что важно, подстановка данных из кода происходит только в том случае, если этот код выполняет печать:</p>
15
<p>Все содержимое файла находится в одном пространстве и блоки кода, определенные дальше по тексту, имеют доступ к данным предыдущих блоков. Что важно, подстановка данных из кода происходит только в том случае, если этот код выполняет печать:</p>
16
<p>Вывод на экран после запуска:</p>
16
<p>Вывод на экран после запуска:</p>
17
<p>Для удобства вставки кода в HTML PHP предлагает альтернативный синтаксис для стандартных конструкций языка. Например, для вставки значения используется сокращенная версия тега начала PHP-кода: <?= <код на php> ?>. Она отличается от полной тем, что вместо <?php echo ... используется <?= ....</p>
17
<p>Для удобства вставки кода в HTML PHP предлагает альтернативный синтаксис для стандартных конструкций языка. Например, для вставки значения используется сокращенная версия тега начала PHP-кода: <?= <код на php> ?>. Она отличается от полной тем, что вместо <?php echo ... используется <?= ....</p>
18
<p><strong>Сокращенная вставка</strong></p>
18
<p><strong>Сокращенная вставка</strong></p>
19
<p><strong>If</strong></p>
19
<p><strong>If</strong></p>
20
<p><strong>Switch</strong></p>
20
<p><strong>Switch</strong></p>
21
<p><strong>Foreach</strong></p>
21
<p><strong>Foreach</strong></p>
22
<p>С одной стороны поддержка CGI внутри самого языка позволяет начать делать сайт "на коленке" без особых знаний программирования и HTTP, что многие и делают. С другой - PHP толкает к созданию не поддерживаемого кода, который не может никто прочитать кроме автора.</p>
22
<p>С одной стороны поддержка CGI внутри самого языка позволяет начать делать сайт "на коленке" без особых знаний программирования и HTTP, что многие и делают. С другой - PHP толкает к созданию не поддерживаемого кода, который не может никто прочитать кроме автора.</p>
23
<p>Посмотрите сами:</p>
23
<p>Посмотрите сами:</p>
24
<p>Такой способ программирования возможен только в PHP, потому что только PHP это сразу и язык, и шаблонизатор, и CGI-скрипт. При таком способе организации кода сайт быстро начинает представлять собой мешанину HTML и PHP.</p>
24
<p>Такой способ программирования возможен только в PHP, потому что только PHP это сразу и язык, и шаблонизатор, и CGI-скрипт. При таком способе организации кода сайт быстро начинает представлять собой мешанину HTML и PHP.</p>
25
<p>Если количество разных страниц сайта достигнет хотя бы десятка, то поддержка уже станет намного сложнее. Безопасность такой шаблонизации находится на нуле (см.<a>XSS</a>).</p>
25
<p>Если количество разных страниц сайта достигнет хотя бы десятка, то поддержка уже станет намного сложнее. Безопасность такой шаблонизации находится на нуле (см.<a>XSS</a>).</p>
26
<p>Также PHP не поддерживает макеты - специализированные шаблоны, содержащие обвязку сайта, в которую вставляется HTML конкретного обработчика.</p>
26
<p>Также PHP не поддерживает макеты - специализированные шаблоны, содержащие обвязку сайта, в которую вставляется HTML конкретного обработчика.</p>
27
<p>По этой причине в PHP используют шаблонизаторы, написанные на самом PHP. Наиболее популярные среди них<a>Blade</a>и<a>Twig</a>. Также рекомендуем шаблоны на основе<a>Slim</a>, но в PHP они не так популярны, как в JS или Ruby.</p>
27
<p>По этой причине в PHP используют шаблонизаторы, написанные на самом PHP. Наиболее популярные среди них<a>Blade</a>и<a>Twig</a>. Также рекомендуем шаблоны на основе<a>Slim</a>, но в PHP они не так популярны, как в JS или Ruby.</p>
28
<p>Шаблонизаторы будут одной из тем следующих уроков.</p>
28
<p>Шаблонизаторы будут одной из тем следующих уроков.</p>