Преднастройка / конфигурирование переменных виджетов до вывода View php/xml/rss/twig?
- t9221823420
- Сообщения: 37
- Зарегистрирован: 2017.08.23, 10:52
- Контактная информация:
Преднастройка / конфигурирование переменных виджетов до вывода View php/xml/rss/twig?
(с веткой возможно ошибся, но ИМХО это больше проектирование)
внутри View большая часть элементов отрисовывается через виджеты и код по большей части выглядит как array-портянка c вкраплениями HTML. С переходом на TWIG ситуация усугубилась невменяемыми синтаксисом этих настроек виджетов (на вкус и цвет все фломастеры разные - меня этот синтаксис просто убивает) ну и там еще пачка twig-"бонусов". Хочу вынести настройки виджетов в отдельный слой. Вижу для себя это как PreRender в настройках которого указать (php/xml/rss/twig), что отрисовывать (куда перенаправлять) настройки/конфигурацию этих виджетов. Ну т.е. хочу убрать все лишнее из View.
1) Как правильно называется этот промежуточный этап/слой (если у него есть название)?
2) Как его принято реализовывать в рамках MVxxx?
внутри View большая часть элементов отрисовывается через виджеты и код по большей части выглядит как array-портянка c вкраплениями HTML. С переходом на TWIG ситуация усугубилась невменяемыми синтаксисом этих настроек виджетов (на вкус и цвет все фломастеры разные - меня этот синтаксис просто убивает) ну и там еще пачка twig-"бонусов". Хочу вынести настройки виджетов в отдельный слой. Вижу для себя это как PreRender в настройках которого указать (php/xml/rss/twig), что отрисовывать (куда перенаправлять) настройки/конфигурацию этих виджетов. Ну т.е. хочу убрать все лишнее из View.
1) Как правильно называется этот промежуточный этап/слой (если у него есть название)?
2) Как его принято реализовывать в рамках MVxxx?
Ищу работу: https://goo.gl/WuGz1q
GitHub: https://goo.gl/2XAqy5
Резюме на HH (рус):https://goo.gl/Ay3YmC
Резюме на HH (eng):https://goo.gl/gxyd1X
Стоимость работ: от $25 час
тел/vbr/wsp: 79221236438
skype/tlgrm: t9221823420
email: t9221823420@gmail.com
GitHub: https://goo.gl/2XAqy5
Резюме на HH (рус):https://goo.gl/Ay3YmC
Резюме на HH (eng):https://goo.gl/gxyd1X
Стоимость работ: от $25 час
тел/vbr/wsp: 79221236438
skype/tlgrm: t9221823420
email: t9221823420@gmail.com
- t9221823420
- Сообщения: 37
- Зарегистрирован: 2017.08.23, 10:52
- Контактная информация:
Re: Преднастройка / конфигурирование переменных виджетов до вывода View php/xml/rss/twig?
спасибо за ссылку - статья безусловно полезная, кое-что подчерпнул. Вопросов стало еще больше ))
Но я немного о другом. Я не про дефолтные настройки сейчас говорю, а про подготовленные данные для вывода.
Настройки полей для вывода в DetailView или GridView бывают очень непростые - иногда получется толсто. Очень хочется это из HTML.php убрать в промежуточный слой. С переходом на TWIG ситуация только усугубилась - тащить эти настройки аттрибутов в twig совсем не хочется. Т.е. надо что-то вроде:
Action->configView->renderTwig (HTML/RSS/JSON - нужное подчеркнуть) - виджеты могут быть разные и отрисовывать могут не только HTML
шаблонизатор по сути тоже является промежуточным слоем - просто синтаксис у него ... эмм ... не всегда "удобный"
Пока вижу решение только через доработаный Render
Но я немного о другом. Я не про дефолтные настройки сейчас говорю, а про подготовленные данные для вывода.
Настройки полей для вывода в DetailView или GridView бывают очень непростые - иногда получется толсто. Очень хочется это из HTML.php убрать в промежуточный слой. С переходом на TWIG ситуация только усугубилась - тащить эти настройки аттрибутов в twig совсем не хочется. Т.е. надо что-то вроде:
Action->configView->renderTwig (HTML/RSS/JSON - нужное подчеркнуть) - виджеты могут быть разные и отрисовывать могут не только HTML
шаблонизатор по сути тоже является промежуточным слоем - просто синтаксис у него ... эмм ... не всегда "удобный"
Пока вижу решение только через доработаный Render
Ищу работу: https://goo.gl/WuGz1q
GitHub: https://goo.gl/2XAqy5
Резюме на HH (рус):https://goo.gl/Ay3YmC
Резюме на HH (eng):https://goo.gl/gxyd1X
Стоимость работ: от $25 час
тел/vbr/wsp: 79221236438
skype/tlgrm: t9221823420
email: t9221823420@gmail.com
GitHub: https://goo.gl/2XAqy5
Резюме на HH (рус):https://goo.gl/Ay3YmC
Резюме на HH (eng):https://goo.gl/gxyd1X
Стоимость работ: от $25 час
тел/vbr/wsp: 79221236438
skype/tlgrm: t9221823420
email: t9221823420@gmail.com
Re: Преднастройка / конфигурирование переменных виджетов до вывода View php/xml/rss/twig?
Шаблонизаторы как раз придуманы для того, чтобы отделить программный код от вёрстки. Чтобы в них них никто не программировал анонимками и в базу данных напрямую не лез. Но Yii придумывали для быстрой разработки с GridView и Yii::$app, поэтому более осторожные подходы без статики и анонимок в нём выглядят весьма болезненно и внедряются порой с костылями.
Из GridView настройки и код анонимок убираются в классы колонок как StatusColumn в http://www.elisdn.ru/blog/76/seo-servic ... in-and-sef:
и вcё остальное - в хелперы. В оригинальном Twig те же хелперы реализуются как Twig\Extension.
А так стоит подумать, есть ли смысл извращаться с анонимками в DetailView:
если с шаблонизатором это же проще вывести напрямую:
Из GridView настройки и код анонимок убираются в классы колонок как StatusColumn в http://www.elisdn.ru/blog/76/seo-servic ... in-and-sef:
Код: Выделить всё
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
'id',
'created_at:datetime',
'email:email',
[
'class' => StatusColumn::class,
'filter' => $searchModel->getStatusesArray(),
'attribute' => 'status',
],
['class' => ActionColumn::class],
],
]); ?>
А так стоит подумать, есть ли смысл извращаться с анонимками в DetailView:
Код: Выделить всё
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id',
'title',
[
'attribute' => 'category',
'value' => function ($model) {
return Html::a(Html::encode($model->category), ['view', 'id' => $model->category->id]);
},
'visible' => $model->category !== null,
'format' => 'raw',
],
],
]); ?>
Код: Выделить всё
<table class="table table-striped table-bordered detail-view">
<tbody>
<tr><th>ID</th><td>{{ model.id }}</td></tr>
<tr><th>Заголовок</th><td>{{ model.title }}</td></tr>
{% if model.category %}
<tr>
<th>Категория</th>
<td><a href="{{ path('category/view', {'id': model.category.id}) }}">{{ model.category.title }}</a></td>
</tr>
{% endif %}
</tbody>
</table>
- t9221823420
- Сообщения: 37
- Зарегистрирован: 2017.08.23, 10:52
- Контактная информация:
Re: Преднастройка / конфигурирование переменных виджетов до вывода View php/xml/rss/twig?
это все просто, понятно и согласен ... но что если:
... и таких полей 20-30 штук (типичный пример - заполнение отчета) ... и отчетов этих с 10-ок и отчеты прилично отличаются, но часть полей перекликаются? ... Как оформить 30-ть разных полей с разными условиями отображения (да - я про анонимки)? для 10-ти разных моделей?
А теперь представьте это все в twig запихнуть? И сразу первый вопрос - зачем туда тащить весь этот PHP?
А потом бухгалтер звонит и говорит - нам нужен еще один такой отчет, только с датой в другом формате, потому что вот сюда он хорошо показывает, а здесь нам нужно округлить до 30-ти минут, потому что мы округляем так. И, простите, куда я должен запихнуть функцию округления для нового отчета? Она-то срать хотела на весь этот MVC - ей надо "округлить и заголовок поменять"
Код: Выделить всё
'from_datetime' => $config_datetime = [
'type' => Form::INPUT_WIDGET,
'widgetClass' => DateControl::className(),
'label' => 'date / time',
'options' => [
'type'=>DateControl::FORMAT_DATETIME,
'widgetOptions' => [
'layout' => '{input}{picker}',
'options' => [ 'placeholder' => 'Select operating time ...' ],
'pluginOptions' => [
'todayHighlight' => true,
'todayBtn' => true,
],
],
],
],
А теперь представьте это все в twig запихнуть? И сразу первый вопрос - зачем туда тащить весь этот PHP?
А потом бухгалтер звонит и говорит - нам нужен еще один такой отчет, только с датой в другом формате, потому что вот сюда он хорошо показывает, а здесь нам нужно округлить до 30-ти минут, потому что мы округляем так. И, простите, куда я должен запихнуть функцию округления для нового отчета? Она-то срать хотела на весь этот MVC - ей надо "округлить и заголовок поменять"
Ищу работу: https://goo.gl/WuGz1q
GitHub: https://goo.gl/2XAqy5
Резюме на HH (рус):https://goo.gl/Ay3YmC
Резюме на HH (eng):https://goo.gl/gxyd1X
Стоимость работ: от $25 час
тел/vbr/wsp: 79221236438
skype/tlgrm: t9221823420
email: t9221823420@gmail.com
GitHub: https://goo.gl/2XAqy5
Резюме на HH (рус):https://goo.gl/Ay3YmC
Резюме на HH (eng):https://goo.gl/gxyd1X
Стоимость работ: от $25 час
тел/vbr/wsp: 79221236438
skype/tlgrm: t9221823420
email: t9221823420@gmail.com
Re: Преднастройка / конфигурирование переменных виджетов до вывода View php/xml/rss/twig?
Код: Выделить всё
'from_datetime' => FormHelper::dateTimeControl('date / time', 'Select operating time ...')
- t9221823420
- Сообщения: 37
- Зарегистрирован: 2017.08.23, 10:52
- Контактная информация:
Re: Преднастройка / конфигурирование переменных виджетов до вывода View php/xml/rss/twig?
ну а настройки где? $format, $value, и т.д.?
'from_datetime' => FormHelper::dateTimeControl( from_datetime_params ) - так нужно ....
где разместить настройки этого самого from_datetime_params?
'from_datetime' => FormHelper::dateTimeControl( from_datetime_params ) - так нужно ....
где разместить настройки этого самого from_datetime_params?
Последний раз редактировалось t9221823420 2017.11.23, 15:47, всего редактировалось 1 раз.
Ищу работу: https://goo.gl/WuGz1q
GitHub: https://goo.gl/2XAqy5
Резюме на HH (рус):https://goo.gl/Ay3YmC
Резюме на HH (eng):https://goo.gl/gxyd1X
Стоимость работ: от $25 час
тел/vbr/wsp: 79221236438
skype/tlgrm: t9221823420
email: t9221823420@gmail.com
GitHub: https://goo.gl/2XAqy5
Резюме на HH (рус):https://goo.gl/Ay3YmC
Резюме на HH (eng):https://goo.gl/gxyd1X
Стоимость работ: от $25 час
тел/vbr/wsp: 79221236438
skype/tlgrm: t9221823420
email: t9221823420@gmail.com
Re: Преднастройка / конфигурирование переменных виджетов до вывода View php/xml/rss/twig?
Приведите пример с $format и $value.
- t9221823420
- Сообщения: 37
- Зарегистрирован: 2017.08.23, 10:52
- Контактная информация:
Re: Преднастройка / конфигурирование переменных виджетов до вывода View php/xml/rss/twig?
дык я же привел - код сверху.
$value может быть каким угодно сложным
Вы сейчас мне пытаетесь показать как решается конкретный кусок кода - как его в twig завернуть я и сам знаю. Я не знаю как сделать так, чтобы этого НЕ делать
$value может быть каким угодно сложным
Вы сейчас мне пытаетесь показать как решается конкретный кусок кода - как его в twig завернуть я и сам знаю. Я не знаю как сделать так, чтобы этого НЕ делать
Ищу работу: https://goo.gl/WuGz1q
GitHub: https://goo.gl/2XAqy5
Резюме на HH (рус):https://goo.gl/Ay3YmC
Резюме на HH (eng):https://goo.gl/gxyd1X
Стоимость работ: от $25 час
тел/vbr/wsp: 79221236438
skype/tlgrm: t9221823420
email: t9221823420@gmail.com
GitHub: https://goo.gl/2XAqy5
Резюме на HH (рус):https://goo.gl/Ay3YmC
Резюме на HH (eng):https://goo.gl/gxyd1X
Стоимость работ: от $25 час
тел/vbr/wsp: 79221236438
skype/tlgrm: t9221823420
email: t9221823420@gmail.com