在类内渲染HTML?

萨姆

这是场景;在网站的管理部分中,我有很多CRUD表,当执行某项操作(例如删除一条记录)时,需要显示成功/信息/错误消息。我确信每个人都对此很熟悉。

这通常涉及包裹邮件<div class="alert alert-success">User updated</div>或类似内容。

在我正在创建的当前Laravel应用程序中,我有一个配置文件:

<?php

return array(

    'info'    => array(

        'start'   => '<div class="callout callout-info"><h3><i class="icon-info-sign-sign"></i> Information</h3>',
        'opening' => '<i class="icon-caret-right"></i> ',
        'closing' => '<br>',
        'end'     => '</div>',

    ),

    'success' => array(

        'start'   => '<div class="callout callout-success"><h3><i class="icon-ok-sign"></i> Success</h3>',
        'opening' => '<i class="icon-caret-right"></i> ',
        'closing' => '<br>',
        'end'     => '</div>',

    ),

    'warning' => array(

        'start'   => '<div class="callout callout-warning"><h3><i class="icon-warning-sign"></i> Warning</h3>',
        'opening' => '<i class="icon-caret-right"></i> ',
        'closing' => '<br>',
        'end'     => '</div>',

    ),

    'error'   => array(

        'start'   => '<div class="callout callout-danger"><h3><i class="icon-remove-sign"></i> Warning</h3>',
        'opening' => '<i class="icon-caret-right"></i> ',
        'closing' => '<br>',
        'end'     => '</div>',

    )

);

格式化程序类用来将其对象MessageBag(存储数组,例如验证错误,例如无效的电子邮件)存储到可读的HTML中。这不是将HTML确切地存储在Formatter类中,但它确实在其中进行渲染。

formatter类仅使用配置选项来呈现MessageBag对象,因此:

$formatter = new Formatter('success', $messageBag);
$html = $formatter->render();

然后将其从控制器传递到视图并显示。

return View::make('admin.template')->with('message', $html);

此方法使我可以从一个类中更新HTML及其在整个admin部分中的呈现方式。因此顺应了DRY原理。它减少了foreach模板中的所有循环。

所以这引出了一个问题...

在视图模板中重复自己而不是将业务和演示层混合在一起会更好吗?或相反亦然?

我个人的看法(当前)是将配置文件与类一起使用是一个很好的解决方案。我也认为将HTML存储在类中是不好的做法,因此是配置文件。

用户名

这确实是一个判断电话。

大多数时候,我更喜欢将HTML排除在类和配置文件之外。相反,我将尽可能多的HTML放在模板中。不同视图共享的模板可以存储在共享位置,并由模板引擎在正确的上下文中进行解析。

顺便说一句,在编写小型应用程序和扩展时,我对此概念有很多例外。尽管我认为两者都很重要,但我认为我很重视务实的思考,而不是保持一致。

真正的问题是,分离所有不同的数据类型将花费多少时间,这样做的报酬是否足够大,足以证明您将花费多少时间和精力?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在类内渲染HTML?

来自分类Dev

从vuejs内渲染原始html

来自分类Dev

如何渲染变量(或属性)内的jsx / html?

来自分类Dev

从范围内的变量渲染angular的html

来自分类Dev

Angular-在<p>标记内渲染HTML

来自分类Dev

从范围内的变量渲染angular的html

来自分类Dev

在块内渲染 HTML - Ruby on Rails

来自分类Dev

在NancyFx Razor中,如何获取动作内渲染视图的html?

来自分类Dev

允许在角度的方形刹车片内渲染html

来自分类Dev

在React中的字符串内渲染HTML实体

来自分类Dev

在NancyFx Razor中,如何获取动作内渲染视图的html?

来自分类Dev

VueJS使用v-html在html字符串内渲染属性

来自分类Dev

在属性内渲染模板

来自分类Dev

django-compressor CommandError: 渲染文件/path.html 时发生错误: 无效的类路径 'css'

来自分类Dev

Angular-Formly我可以在表单内渲染HTML吗?(与范围变量)

来自分类Dev

MathJax或类似的东西:在表达式内渲染任意HTML元素?

来自分类Dev

HTML标记内的Next.js渲染应用程序以字符串形式出现

来自分类Dev

如何在S3中存储的html内渲染Laravel标签

来自分类Dev

在类中渲染OpenGL对象?

来自分类Dev

在包含html代码jquery的变量内更改ID和类

来自分类Dev

从JSON渲染HTML

来自分类Dev

渲染HTML符号

来自分类Dev

无法从Markdown渲染HTML

来自分类Dev

在Android中渲染HTML

来自分类Dev

HTML不渲染图表

来自分类Dev

正确渲染存储的HTML

来自分类Dev

无法从功能渲染HTML

来自分类Dev

根据单选渲染HTML

来自分类Dev

Blazor HTML渲染问题