我刚开始使用CakePHP,并且想知道是否有人可以解释使用其JsHelper而不是编写常规静态jQuery和JS的真正好处。到目前为止,我并没有真正看到助手如何更容易或更快地创建脚本。
答案 0 :(得分:4)
和我写GoogleMaps Helper的原因相同;) 基本的想法是,您可以使用相同的语言(在这种情况下为PHP)作为应用程序的其余部分,您可以传入任何php选项数组和数组保存数据值,并且帮助程序应该照顾它。
它类似于cakephp作为php的包装器。它包装你的代码,可以帮助保持干燥。
不要弄错我 - 我自己从未使用过js / ajax助手。 但我可以理解为什么有些人想要自己选择JS而不是写JS。 在某些情况下,输出甚至可以更“正确”(如果你不知道潜在的问题)。例如IE错误: 如果你自己输出{}选项并且忘记删除最后一个选项,那么它将无法在IE6等中运行,这些帮助器不能作为包装器发生 - 至少它是shoudnt;)
因此,对于帮助程序,它要么根本不运行,要么作为一个熟练的开发人员团队运行而设计它可以工作。 特别是对于不那么熟练的开发人员来说,这通常是一个双赢的局面:快速且可靠。你可以随时开始切换到手动的东西(如果你看到实际的JS输出并开始理解它)。
同样 - 当任何js方法由于某种原因需要改变时,你使用帮助器的方式通常不会。如果你不使用抽象,你可能会发现自己需要手动调整所有事件。
答案 1 :(得分:0)
与任何Helper一样,JsHelper是一种以简化的方式将内容解析到视图中的方法。但是,在您的视图中添加“原始”JS / jQuery代码可以通过使用$this->Html->scriptBlock
来正常工作。
除了jQuery会改变特定函数的语法之外,我没有其他真正的好处,因为在使用JsHelper时你不需要调整代码,因为核心需要更新实现,而不是你必须在所有视图中更改所有“原始”JS代码。
答案 2 :(得分:0)
JsHelper就像脚手架:如果你只需要基本的东西,而且只需要基本的东西,它会非常方便。也就是说,ajaxify一个分页或一些元素。
但除此之外,最好编写自己的代码,因为你需要的东西就像你需要的那样,而不是默认情况下帮助器是如何对齐的。
与框架中的其他内容一样:它是一种工具。检查您的要求并使用最好的工具。