Лучшие практики для рендеринга многоразовых HTML -компонентов в PHP [закрыто]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Лучшие практики для рендеринга многоразовых HTML -компонентов в PHP [закрыто]

Сообщение Anonymous »

В PHP я использовал функции для рендеринга повторных компонентов HTML вместо использования или требуется . Этот подход позволяет мне передавать параметры и динамически изменять сгенерированный выход. Вот простой пример: < /p>

Код: Выделить всё

function footer($title) {
?>




Я нахожу этот метод полезным, потому что он позволяет мне создавать «компоненты» с параметрами, делая их более гибкими, чем статические, включающие файлы. Тем не менее, я редко вижу этот подход, который обсуждается в лучших практиках PHP. Большинство источников рекомендуют использовать включение или требуется , например:

Код: Выделить всё

// footer.php


// main file





< /code>
Этот метод основан на глобальных переменных или вручную передачу значений, которые я нахожу менее интуитивно понятными, чем параметры функции. < /p>
Другая альтернатива использует ob_start ()  Чтобы захватить вывод и вернуть его в виде строки: < /p>
function footer($title) {
ob_start();
?>






Этот метод обеспечивает большую гибкость в том, как обрабатывается выход. br />

Код: Выделить всё

function footer($title) {
return "$title";
}








< /code>
Это упрощает функцию, но может быть менее читаемо для более сложных HTML -структур. класс для использования контекста для компонента. Например, я мог бы определить класс с именем Header 
с такими функциями, как rendermetatags () , renderscripts () , rendertitle ($ title) и т. Д. Ниже есть один пример : < /p>

Код: Выделить всё

class Footer {

public static function render($title) {
?>




< /code>
Мы также можем использовать объекты для рендеринга HTML с помощью этой концепции, чтобы избежать определения статических методов: < /p>
class Footer {

public $title;

public function __construct($title) {
$this->title = $title;
}

public function render() {
?>




< /code>
Но путь выше выглядит слишком сложным для этой небольшой необходимости. < /p>
 Мои вопросы: < /h3>

[*] Есть ли официальный или широко принятый [b] термин [/b] для этого подхода в родном PHP (аналогично «макросам» в Flask/Jinja2)?
 Есть какие -либо недостатки или проблемы с производительностью при использовании функций для рендеринга HTML -компонентов вместо включения 
? ?>

Подробнее здесь: https://stackoverflow.com/questions/794 ... nts-in-php
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»