这是过度杀伤,还是很好地利用CakePHP的HTML助手?

Ste*_*hen 8 php cakephp html-helper implode

我刚刚重新格式化了CakePHP应用程序的默认布局.通过将几乎所有内容放在html帮助器方法中,我尽可能地消除了内联html.

这很有趣,但我想知道我从这次练习中获得了什么好处,如果有的话?

<?php
    $output = implode("\n", array(
        $html->docType(),
        $html->tag('html', implode("\n", array(
            $html->tag('head', implode("\n", array(
                $html->charset(),
                $html->tag('title', 'Title For App'),
                $html->css('css', NULL, array('media' => 'screen,print')),
                $html->css('print', NULL, array('media' => 'print')),
                $html->script(array('cufon', 'jquery','external'))
            ))),
            $html->tag('body', implode("\n", array(
                $html->tag('div', $content_for_layout, array('id' => 'wrapper')),
                $html->scriptBlock('Cufon.now();')
            )))
        )), array('xmlns' => 'http://www.w3.org/1999/xhtml'))
    ));
    echo $output;
?>
Run Code Online (Sandbox Code Playgroud)

我想至少它看起来很漂亮和紧凑,并且非常易读.在这种情况下我应该注意哪些陷阱?我应该知道任何速度问题吗?

我喜欢它 - 而我却不喜欢它.

我想我需要说服这种或那种方式.

如果你想知道,在查看源代码时,内容在html中放置了很好的换行符.

Leo*_*Leo 10

几年前我在Google小组讨论过这个问题.最后,你会意识到,除非你需要以编程方式操作东西,否则它不会产生很大的差别 - 然后,如果你使用HTML路由,你会发现你的代码充满了<?php和/ ?>或字符串连接或双引号变量替换.

现在,许多应用程序都在线下,我更喜欢维护比标记更多帮助的应用程序.

帮助程序没有涵盖很多HTML,因此您无法避免混合,但您可以尽可能使用帮助程序来最大限度地减少复杂性和混淆.当你开始使用表单时,你会得到很多安全的东西,ID和NAME格式化了CakePHP喜欢的方式.

PHPCakePHP就是为此而构建的.为什么只使用半个语言或半个框架?

  • 对不起,梅加尔,但我不同意你的意见.查看数据的操作方式是视图所固有的.忠实于MVC架构并不意味着没有代码的视图.通过各种方式将业务逻辑保持在视图之外......但是可以在VIEW中对您的数据进行排序,拼接,翻转和其他操作. (2认同)

dec*_*eze 8

这样做的无可否认的好处是100%正确的语法,因为你已经删除了任何指法和缺少打开/关闭标签的可能性.我从经验中可以告诉你的是,从现在开始的半年内,阅读和修改这个结构的难度是其两倍.插入条件元素也很困难.你需要在这里求助于三元运算符,这使得事情的可读性更低.

总的来说,我建议使用传统的HTML/PHP组合.