为什么使用CakePHP's JsHelper

Why use CakePHP's JsHelper?

本文关键字:JsHelper CakePHP 为什么      更新时间:2023-09-26

我刚开始使用CakePHP,想知道是否有人能解释使用它的JsHelper相对于编码常规静态jQuery和JS的真正好处。到目前为止,我还没有真正看到这个助手如何使创建脚本变得更容易或更快。

原因与我编写GoogleMaps Helper的原因相同;)基本思想是,您可以使用与应用程序其他部分相同的语言(在本例中为php),并且您可以传入任何php选项数组和包含数据值的数组,助手应该负责处理这些数组。

它类似于作为php包装器的cakephp。它可以包裹你的代码,并有助于保持它的干燥。

不要误解我的意思——我自己从来没有使用过js/ajax助手。但我能理解为什么有些人选择它而不是自己写JS。在某些情况下,输出甚至可能更"正确"(如果您不知道潜在的问题)。例如IE错误:如果您自己输出{}个选项,但忘记删除最后一个选项,它将不会在IE6等中运行。这在使用helpers作为包装器时是不可能发生的——至少它应该;)

因此,有了helper,它要么根本不运行,要么由熟练的开发人员团队设计运行。尤其是对于不太熟练的开发人员来说,这通常是一个双赢的局面:快速且更可靠。以后您总是可以开始切换到手动内容(如果您看到实际的JS输出并开始理解它)。

此外,当任何js方法由于某种原因需要更改时,您使用helper的方式通常不会更改。如果您不使用抽象,您可能会发现自己需要手动调整所有出现的情况。

与任何Helper一样,JsHelper是一种以简化的方式将内容解析到视图中的方法。但是,将"原始"JS/jQuery代码放入您的视图中,例如使用$this->Html->scriptBlock就可以了。

我想不出什么真正的好处,除了如果jQuery会更改特定函数的语法,那么在使用JsHelper时就不需要调整代码,因为核心需要实现更新,而不必在所有视图中更改所有"原始"JS代码。

JsHelper就像脚手架:如果你只需要基本的东西,而且只需要基本东西,它会非常方便。也就是说,对一个分页或某些元素进行AJAX。

但除此之外,最好编写自己的代码,因为你需要的是你需要的东西,而不是默认情况下如何对齐助手。

就像框架中的其他一切一样:它是一种工具。检查您的需求并使用可用的最佳工具。