2008-12-22

使用helper加快视图开发

类归于: symfony — 标签:, maker @ 16:21

在视图中, 我们可以使用Helpers来加快开发进度。

我们看一个简单的例子:

<?php echo input_tag('title);?>

上面的代码会生成下面的html代码

<input id="title" name="title" type="text" />

在视图中,一些Helpers不会被自动载入, 需要使用use_helper()进行声明, 我们可以这样用:

use_helper('Text');
use_helper('JavaScript');

或者象下面这样可以达到和上面一样的效果:

use_helper('Text', 'JavaScript');

在symfony中,Helpers按照用途分组, 比如Text, Tag, Url等Helpers内都包含相关的辅助函数。Helpers被存放在源码的/lib/helper/目录下。

目前symfony1.2支持的Helper有:

在视图中Helper, Tag, Url, Asset是不用被声明的, 视图必须使用这些基本函数才能正常工作,在默认设置中Partial,Cache,Form也是不需要声明的,该设置取决于apps/app/config/settings.yml中的standard_helpers选项。默认的standard_helpers选项如下:

standard_helpers: [Partial, Cache, Form]

我们可以在该选项中加入更多的自动加载的Helper, 或者如果你觉得你不会用到模板缓存,你可以将Cache从该选项中去掉, 这有助于加快程序运行速度。

在模板之外使用Helper

有些时候,我们不只要在视图中使用Helpers,比如我们要在action中生成一个内部链接,我们可以用下面的方法:

//symfony 1.0 & symfony 1.1
sfLoader::loadHelpers('Url');
$url = url_for('shop/search');
//symfony1.2
$this->getContext()->getConfiguration()->loadHelpers('Url');
$url = url_for('shop/search');

随机日志

3 条评论 »

  1. 可以的话我想请教一个问题,1.2版本的symfony框架对表单验证是不是全部封装到form里面了,
    还可不可以用配置yml的方式对表单进行验证

    Comment 由 chain_cl — 2009-05-13 @ 18:25

  2. 目前看来是不可以的,基于form的表单验证也是写再form类中,你可以参考官方的《Form in Action

    Comment 由 maker — 2009-05-14 @ 09:04

  3. [...] on invoke/execute tracing, enable full backtrace. –version -V 显示程序版本 可用的任务: help 显示任务的帮助信息 [...]

    Pingback 由 科创网 » symfony命令行详解 — 2011-01-02 @ 12:54

这篇文章上的评论 RSS feed TrackBack URL

留下评论

WordPress 所驱动