[b]helper顾名思义就是帮助类,主要运用于视图view层.[/b]
CakePHP在设计之初就充分考虑到了扩充性,在view中,常常会遇到需要处理的并且会多次重复使用到的框架,元素,部份数据...譬如:图表,编辑器等.
这个时候,就是helper大显身手的时候:
在CakePHP中,[b]helper一般位于app/view/helper/目录下[/b],当然这里指的是自己扩充的helper.
helper其实就是一个类库,他的命名也应该遵循CakePHP的相关{[url=http://lesorb.iteye.com/blog/735230]变形[/url]}法则.
像引入Tinymce编辑器的一个常用的helper帮助类如下:
ok,这样定义好helper之后,我们[b]还需要在相应的controller中引入[/b]它:
有的时候并不希望它在每次controller初始化都被加载,则可以在想要使用的[b]对应action中这样来引入[/b]:
好了,现在,你要做的就是在view中来使用它了:
这样,你就可以在view中看到textareas被加载上编辑器的效果了.
CakePHP在设计之初就充分考虑到了扩充性,在view中,常常会遇到需要处理的并且会多次重复使用到的框架,元素,部份数据...譬如:图表,编辑器等.
这个时候,就是helper大显身手的时候:
在CakePHP中,[b]helper一般位于app/view/helper/目录下[/b],当然这里指的是自己扩充的helper.
helper其实就是一个类库,他的命名也应该遵循CakePHP的相关{[url=http://lesorb.iteye.com/blog/735230]变形[/url]}法则.
像引入Tinymce编辑器的一个常用的helper帮助类如下:
class TinymceHelper extends Helper{
// to do ...
//在helpers中引入其它helper
var $helpers = array('javascript');
//变量,规定tiny_mce.js的存放相对路径
var $tinymce_url = 'tiny_mce.js';
var $options = array(
'mode' => 'textareas',
'elements' => "NodeBody",
'theme' => 'advanced',
'plugins' =>"..."
);
function init($options = false){
$configs = '';
if(isset($this->javascript))
echo $this->javascript->link($this->tinymce_src);
$this->options = ($options && is_array($options))?array_merge($this->$options, $options):$this->$options;
foreach($this->options as $k=>$v)
$configs .= "$k : \"$v\",\n";
return $this->javascript->codeBlock("
tinyMCE.init({
$configs
});
");
}
}ok,这样定义好helper之后,我们[b]还需要在相应的controller中引入[/b]它:
//定义helpers变量
var $helpers = array('Html','Tinymce');有的时候并不希望它在每次controller初始化都被加载,则可以在想要使用的[b]对应action中这样来引入[/b]:
$this->helpers[] = 'Tinymce';好了,现在,你要做的就是在view中来使用它了:
//默认的加载
echo $tinymce->init();这样,你就可以在view中看到textareas被加载上编辑器的效果了.
本文详细介绍了CakePHP中Helper的概念及应用方式。Helper是用于视图层处理重复性任务的类库,例如编辑器组件。文章通过实例展示了如何创建自定义Helper,并在控制器和视图中调用。
57

被折叠的 条评论
为什么被折叠?



