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');

WordPress 所驱动