Страница 1 из 1

Использование функций для генерации HTML

Добавлено: 2019.07.24, 01:42
samdark
Сейчас мы используем класс-хелпер Html со статическими методами:

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

<?php
use Yiisoft/Html/Html;
?>

<?= Html::input($bla, $bla) ?>
Технически можно сделать функциями:

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

<?php
use function Yiisoft/Html/input;
?>

<?= input($bla, $bla) ?>

Re: Использование функций для генерации HTML

Добавлено: 2019.07.24, 09:43
Loveorigami
За статический метод.
1. Сразу видно, что это html. Несколько таких классов-функций, и вьюшка уже не так хорошо читается.
2. Не будет конфликтов с такими же (своими) функциями - Html::input(), Form::input()...
3. Блок use будет содержать use Yiisoft/Html/Html; а не весь список функций.
4. Не надо переписывать кучу вьюшек при переходе на yii3 )

Re: Использование функций для генерации HTML

Добавлено: 2019.07.24, 12:03
myks1992@mail.ru
Первый вариант всем понятный. Даже новичкам. Но второй вариант эстетичней, короче и проще.

Re: Использование функций для генерации HTML

Добавлено: 2019.07.24, 12:57
BrusSENS
Статичные методы, имхо удобнее и нагляднее. Лично меня крестах такие адовые именования порой просто угнетают.

Re: Использование функций для генерации HTML

Добавлено: 2019.07.24, 13:52
chesar

Re: Использование функций для генерации HTML

Добавлено: 2019.07.24, 16:13
samdark
chesar, хоть я и приложил руку к emmet, который тогда звался Zen Coding, но считаю что в этом случае он неуместен. Одно дело набирать аббревиатуру и разворачивать её в теги и совсем другое — читать это в не развёрнутом виде.

Re: Использование функций для генерации HTML

Добавлено: 2019.07.25, 13:44
chesar
samdark писал(а): 2019.07.24, 16:13 chesar, хоть я и приложил руку к emmet, который тогда звался Zen Coding, но считаю что в этом случае он неуместен. Одно дело набирать аббревиатуру и разворачивать её в теги и совсем другое — читать это в не развёрнутом виде.
Ну если там многоуровневая менюшка глубиной 6 элементов по 10 подпунктов в каждом в одну строку, то это не очень.
Но мне нравится, что мне дают выбор:

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

Html::el('a', 'link content', ['href' => '/foo', 'id'=>'bar', 'class' => 'foo-bar link ', 'data-attributes' => [...])
Html::el('a#bar.foo-bar.link[href=/foo]', 'link content', ['data-attributes' => [...]]) ?>