开放的编程资料库

当前位置:我爱分享网 > PHP教程 > 正文

Zend_Layout 和 Zend_View 增强组件现在位于核心

我很高兴地宣布Zend_ViewEnhanced和Zend_Layout组件现在位于ZendFramework核心中。有了这两个组件,您现在可以相对轻松地为您的应用程序创建一些真正复杂的视图。

这两个组件处理几个与视图相关的任务:

  • 布局或两步视图
  • 部分(查看具有自己可变范围的片段脚本)
  • 占位符(存储数据和/或标记以供以后检索)
  • 动作(调度控制器动作)

那么,有什么大不了的?我听到一些人说,即使不是全部,也有很多已经成为可能。嗯,是的,从技术上讲是这样;事实上,除了布局之外,所有这些都是通过添加额外的视图助手来完成的,任何人都可以编写(事实上,有些人已经这样做了)。但是,通过将这些作为库的标准部分,现在有执行这些任务的标准方法——这意味着应用程序之间的一致性。

此外,这些助手只会让事情变得简单得多!

例如,谁记住了所有的DOCTYPE声明?我个人知道所有的类型,但不能说出与每种类型相关的全部声明来挽救我的生命。使用doctype()助手,我所要做的就是:

<?= $this->doctype('XHTML1_TRANSITIONAL') ?>

它现在出现了。此外,通过将它放在我的布局的顶部,当我在headScript()帮助器中显示我的脚本时,它们现在将被正确地转义为XMLCDATA,作为需要了解DOCTYPE的帮助器现在从那个助手那里确定这个信息。

说到headScript()助手,它非常方便。假设您有一个需要javascript的应用程序。无需为每个控制器无条件地指定javascript包含,或设置复杂的逻辑来确定何时包含它,您可以让您的应用程序视图指定它是需要的:

<?php $this->headScript()->appendFile('/js/foo.js') ?>

然后,在您的主布局脚本中,您告诉它包含任何聚合的脚本:

<?= $this->headScript() ?>

您可以类似地指定提要(通过headLink())、样式表(通过headLink()用于外部文件、headStyle()用于内联样式表),甚至您的标题元素(例如,您可以聚合各种面包屑,然后指定在它们之间使用的自定义分隔符)。

这只是冰山一角。使用占位符、部分、动作和普通视图助手的组合,您可以使用最少的标记创建一些相当复杂的布局。例如:

<?= $this->doctype('XHTML1_TRANSITIONAL') ?>
<html>
    <head>
        <?= $this->headTitle() ?>
        <?= $this->headMeta()->setIndent(8) ?>
        <?= $this->headLink()->setIndent(8) ?>
        <?= $this->headStyle()->setIndent(8) ?>
        <?= $this->headScript()->setIndent(8) ?>
    </head>
    <body>
        <?= $this->partial('header.phtml') ?>
        <div id=\"content\">
            <?= $this->layout()->content ?>
        </div>
        <?= $this->subnav() ?>
        <?= $this->partial('footer.phtml') ?>
        <?= $this->inlineScript() ?>
    </body>
</html>

上面的示例使用了几个占位符(doctypeHeadTitleHeadMetaHeadLinkHeadStyleHeadScriptInlineScript)、twopartials(用于页眉和页脚)、布局内容和自定义视图助手(用于导航);整个内容不到20行,但包含您网站布局所需的一切。

这些新组件的功能不仅广,而且深,不是一篇博文所能涵盖的。在接下来的几周内,在ZendDeveloperZone上寻找详细介绍它们的系列教程。同时,您可以阅读ZFsubversion存储库中提供的文档。

未经允许不得转载:我爱分享网 » Zend_Layout 和 Zend_View 增强组件现在位于核心

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏