PHP框架应该生成JavaScript吗?

PHP框架应该生成JavaScript吗?,php,javascript,frameworks,Php,Javascript,Frameworks,我注意到一个PHP框架,及;似乎要么生成JavaScript,要么允许它作为字符串嵌入PHP本身。这是个好主意吗?从使用过这些框架/库的人那里,您在使用Ajax和JavaScript助手方面有什么经验?它容易维护吗?它是否缩短了开发时间?我个人喜欢编写自己的Javascript,因此我并不真的希望为自己编写Javascript,但我不认为让框架为您编写Javascript是特别“危险”或“有害”的,只要编写得当。我对它们最大的问题是,只要你想要一个特性的标准行为,它们中的大多数都可以工作,但是只

我注意到一个PHP框架,及;似乎要么生成JavaScript,要么允许它作为字符串嵌入PHP本身。这是个好主意吗?从使用过这些框架/库的人那里,您在使用Ajax和JavaScript助手方面有什么经验?它容易维护吗?它是否缩短了开发时间?

我个人喜欢编写自己的Javascript,因此我并不真的希望为自己编写Javascript,但我不认为让框架为您编写Javascript是特别“危险”或“有害”的,只要编写得当。我对它们最大的问题是,只要你想要一个特性的标准行为,它们中的大多数都可以工作,但是只要你想要一些不同的东西来更好地满足你的项目需求,那么定制它就需要做大量的工作,你自己去做会更好。至少这是我在CakePHP的javascript自动化方面的经验。

不,这是个坏主意

生成的javascript通常意味着没有它,站点甚至无法运行(就像许多asp.net站点一样)。如果您想做更复杂的事情,或者想增强可访问性,那么除了将HTML与CSS和Javascript明确分开之外,没有其他办法

分离Javascript还可以使代码更易于维护,因为不需要客户端前端开发人员干扰PHP代码,反之亦然


使用Javascript的最佳方法是首先让php生成html,然后在页面底部包含Javascript文件并使用onDomReady等功能。这也不会因为您的框架使用特定库作为生成Javascript的基础而强制您使用特定库。

这是一个相当主观的问题,但就个人而言,我不希望后端框架为我这样做。出于以下原因,最好将业务逻辑、表示和客户端UI行为完全分开:

  • 更易于维护的应用程序
  • 更容易测试单个组件
  • 更容易合作。不同的技能可以在不同的领域发挥作用
  • 应该有助于确保应用程序在最终用户环境中不依赖JavaScript

    • 我认为你应该把语言分开。尽管它们可以相互补充。这样,您就可以选择上述语言的实现,并创建一个完美的组合。

      我在CakePHP中使用Javascript和Ajax助手的经验非常积极


      他们允许服务器端开发人员原型化和构建需要有真正客户端经验的人才能完成的功能,而无需担心他们“编写”的javascript代码的质量,也无需让真正的前端工程师专注于高级客户端功能。

      个人,我喜欢手工编写Javascript,这样我只需要向document.domReady添加一个额外的事件,例如使用正确的参数。然后,这个小小的触发功能让球滚动起来

      当前最佳实践:

      保留前端代码和后端代码 尽可能地解开


      PHP生成Javascript不是一个好主意。我建议导出的唯一javascript是简单的JSON分配,如下所示:

      <script type="text/javascript"><!--
        var MyNamespace.info = <?php echo json_encode($info_array) ?>
      // --></script>
      
      
      
      这是清理PHP信息并让客户端上的javascript能够访问这些信息的最简单方法。但是,任何其他内容都应该在实际的JAVASCRIPT文件中编写,这些文件在文档的开头用标记引用。服务器端文件中Javascript的唯一其他外观,我想说是可以的,是放在“onclick”和其他类似属性中的东西

      这样做的理由是Javascript应该由了解Javascript的前端人员编写和维护,并且站点应该能够在没有Javascript的情况下工作(至少部分)。没有理由内联生成意大利面条Javascript


      查看我的PHP框架,Pie()上的PHP,了解如何正确实现这一点的示例。它将JS和PHP分开,除非如上所示导出JSON。不过,它还提供了通过AJAX在客户端和服务器之间轻松互操作的约定。

      我认为这取决于具体情况。拥有“智能”服务器端小部件肯定有一定的价值。例如,一个小部件“知道”如何通过AJAX进行自我更新,或者一个可以处理客户端和服务器端验证的表单。后者就是这样一个例子,在客户机中重写枯燥的验证代码既昂贵又耗时,而且容易出错。它不需要rocket science javascript,所以只要您的框架能够以不引人注意的方式处理它,我实际上会建议采用这种方法。 此外,还可以处理GUI内容的框架代码(la-ext或类似的东西)也是个不错的主意


      但是,如果有比这更复杂的内容,请使用Javascript本身。

      我认为生成的Javascript肯定有一席之地。(一)

      生成javascript的首要原因是易于维护。任何依赖项都是从框架(PHP、ruby、scala、python)本身显式编码和配置的。例如,如果您移动了资产或更改了上载目录,只需更新配置并观察一切正常

      需要客户端输入验证来减轻服务器的负载吗?(2) 让框架为您直接从数据模型生成正确的验证代码。通过生成javascripted填充,您的框架可以从缓存中提供预呈现的静态HTML表单。如果您的表单包含许多选择和选项,这将是一个巨大的胜利

      1) 假设客户机已经决定站点可以(或多或少地)依赖javascript,但有所有的警告