【问题标题】:Best high level Web framework, PHP preferred最好的高级Web框架,PHP优先
【发布时间】:2010-09-09 02:44:49
【问题描述】:

我开始构建一个相当复杂的 Web 应用程序。实现可能会在 PHP 中完成,但如果有令人印象深刻的理由选择不同的环境,我可能会相信。

我研究过像 Symfony 和 CakePHP 这样的工具。问题在于,对于现代 Web 2.0 应用程序来说,感觉它们的级别相对较低。他们处理 MVC 和脚手架之类的基本内容,但不处理我正在寻找的更高级的 UI 元素。以下是我的一些要求:

  • 单页架构。除了少数例外,不应有页面刷新。所有操作都通过 ajax 完成,就像在 gmail 中完成的那样,在 Facebook 中的完成程度较低。
  • Ajax 布局和小部件处理。不仅应用程序不刷新页面,而且开发人员可以指定布局并将各种小部件加载到页面的不同部分。这有点像 iGoogle,但应该更好地集成。
  • 在客户端和服务器端都支持 AJAX 小部件。在 http://developer.yahoo.com/yui/datatable/ 这样的 AJAX 表/数组中显示 select 语句的结果应该很简单。这也应该适用于其他小部件,包括
    • 树木
    • 菜单
    • 表格
  • 说到表单,应该很容易与客户端验证集成
  • 注册/认证/授权。包括所有的家务事,比如忘记密码、验证码等。

还有更多,但我认为我已经提供了足够的详细信息,以便您了解我要查找的内容。基本上,我想设计一个现代 Web 2.0 应用程序并跳过编写、测试、调试大多数 Web 应用程序需要做的事情。是的,我知道我可以将 YUI 或 jQuery 放在其中一个常规平台上,但是我必须编写所有的胶水。现在,如果有模块可以做到这一点,那会很有趣。 所以,如果你说,使用 Symfony + modules xyz + jQuery 并且有你的答案,我很高兴听到这个。

最后,在优先级方面,我正在寻找可扩展、可靠、精心设计的东西,而不是易于学习和部署的东西。

【问题讨论】:

  • 我不得不说我想知道这样的事情是否存在。不写?没有测试?没有调试?但是,它变得多么强大、多功能、可扩展和一切?你不想要一个框架,你想要一个天才程序员。 :)
  • 不,当然会有大量的编写、调试和测试。但这将特定于应用程序的实现。我上面所说的所有内容都是大多数 Web 2.0 应用程序可以使用的通用内容。为什么我们都要手写?
  • 诸如 Zend Framework 和 Zendx for Jquery 之类的东西是胶水对吧?你看过joomla吗?它为你做了很多事情。
  • 对于单个框架来说似乎是一个极高的标准。我认为您暂时需要将两个框架组合在一起,一个是“AJAX 前端”框架,如 Sproutcore 或 Cappucino,另一个是后端框架,如 Zend 或 Cake。最终可能会存在一个一体化框架,但 AFAIA 暂时不存在。
  • 103 次浏览和 nobody 修复了标题中那个荒谬的错字?到底是什么来的? :(

标签: php jquery ajax frameworks


【解决方案1】:

既然您正在寻找 AJAX 的所有东西,为什么不试试 GWT?我同意它不是 PHP,但它使开发人员编写 AJAX 应用程序变得容易。

【讨论】:

  • 这其实是个好主意。我专注于 PHP,也许是我忘记了 GWT 的 Ruby。它往往具有单调的谷歌外观,另一方面,它针对速度和跨浏览器进行了令人难以置信的优化。
【解决方案2】:

我同意@Iznogood。您寻找的实际上不是框架,而是人才。如果您知道自己在做什么,则可以将任何框架尽可能地“igoogle-ish”。

我建议寻找一个拥有庞大而活跃的社区的框架,例如 CI、Cake 和 Jquery。在社区中搜索/询问您需要的具体内容。插入并 Presto!

但恐怕你得写一些。

【讨论】:

  • 你可能是对的,我正在寻找的东西不存在,但我不是在寻找人才。我正在寻找下一代框架,它看起来可能还没有。 ShiVik 认为 GWT 可能就是它。
  • 这是我们所能得到的最接近的。 :) 很高兴我们有可以帮助我们的社区。​​span>
【解决方案3】:

如果你不介意使用 Java,还有 ZK:

http://www.zkoss.org/

我更喜欢使用它而不是 GWT。

【讨论】:

  • 谢谢,我去看看。你能解释一下你喜欢 zkoss over GWT 的什么地方吗?
【解决方案4】:

在 php 中,您可能需要考虑 Cjax http://cjax.sourceforge.net/

它是面向MVC的,并且有一个非常通用的API,完全支持定制,包括插件的开发(有一个完整的插件API可用,包括文档,插件可以用PHP和JavaScript组合构建——请参阅上传和验证插件)。

它可以通过一行代码从 PHP 服务器端访问所有 J​​avaScript 函数、对象和属性以及元素属性和函数。

在 Cjax 中,

您可以在控制器(ajax 请求)内执行 ajax 操作 - 无需一行 JavaScript。这使您无需刷新页面即可充分发挥作用。它还允许您从 PHP 访问所有 J​​s 对象。反映这一点的一个很好的示例是“递归 ajax 请求”,请参阅该演示。该 API 可用于页面加载、页面首次加载时以及每个 ajax 请求中。

请务必查看文档和包含的 20 多个演示,在哪里您会看到一行 JavaScript。它允许您从服务器端操作元素、容器、请求 ajax、提交 ajax 表单、创建覆盖、通过 ajax 上传文件。看看 API 表。

它同时支持服务器端 ajax 和客户端,(请参阅插件 JavaScript 文档)

它与 jQuery 配合得很好——jquery 中的验证插件可以在 PHP 中完全执行,无需一行 JavaScript(请参阅http://cjax.sourceforge.net/examples/plugin_validate.php,框架内没有任何自定义 Jquery 行,这都是插件的工作)。来自 Jquery 的 Ajax 响应也由该框架自动处理,因此明智地使用 Jquery 的 Ajax 函数 API 就像使用框架的插件的 JavaScript Ajax 函数一样。

您只需要花时间了解更多,因为它还有很多工具,我相信您会觉得有用。

目前有两个正式版本,通用版本和 这个框架的 CodeIgnater 有一个官方版本(它是 codeignater 的主要 ajax 选项),并且可以很好地与其他 PHP 框架结合使用。

注册/认证/授权。包括所有的家务 比如忘记密码、验证码等。

这是您可以在 ajax 控制器中构建的东西,该框架本身就是一个通用的“AJAX”框架,因此如果您正在寻找没有 ajax 功能,您将需要构建它们或集成其他 PHP 框架使用 Cjax(例如 Codeignater)。

【讨论】:

    【解决方案5】:

    我不知道这是否符合您的所有条件,或者您是否会找到一个。不过,我自己喜欢Zend Framework

    【讨论】:

      【解决方案6】:

      至于 UI 和 AJAX 部分 - 服务器端技术无关紧要,更多的是关于浏览器端技术和交互机制,以及 DOM 操作。

      jQuery 是我最喜欢的。至于 PHP 后端,我倾向于使用我自己多年来与我一起成长的代码库来开发它。

      但这一切都需要大量的实践、知识、教育、研究、阅读以及在 StackOverflow.com 上发布问题;)

      【讨论】:

      • 顺便说一句,我很惊讶有多少答案似乎没有意识到 AJAX 不是您使用 PHP 运行的东西。相反,AJAX 是从您的 UI 到 PHP 的网关或 ASP 或其他任何可能位于网站后端的东西......它们是完全不同的概念。没有 PHP AJAX 模块之类的东西,因为 PHP 是服务器端的,而 AJAX 是客户端到服务器的。 AJAX 可以调用 PHP/ASP/VBScript 等与服务器及其数据库等进行交互。
      【解决方案7】:

      我会推荐 symfony PHP 框架,因为它对你提到的每一个特性都有很好的支持,并且它可以很容易地与 Zend 框架集成——从今年的 2.0 版开始,它将被集成到包中。您可以轻松设置 symfony 来处理 AJAX 请求,使其成为完美的透明层处理服务器端。

      对我来说,如果你看重 AJAX,我会建议搜索一些好的 JavaScript 框架 - 例如 Ext.JS - 可以处理所有客户端功能。

      【讨论】:

        【解决方案8】:

        对于应用程序的前端部分,您可能想看看 SproutCore (http://www.sproutcore.com/)。 使用 SproutCore 构建 Web 应用程序感觉更像是配置组件而不是编写代码。 没有胶水代码。 在后端,您所要做的就是接受并发出 JSON。

        【讨论】:

          【解决方案9】:

          取决于您正在查看的级别。如果你所说的“框架”是指 Zend 或 Symphony 之类的东西,那么老实说,所有大的都差不多。他们都有长处和短处,但没有一个真正符合你的标准。

          但是您的问题意味着您正在寻找的不仅仅是那种框架。也许您正在寻找一个成熟的 CMS 平台,例如 Drupal、Joomla 或 Wordpress?

          在这种情况下,您需要再次考虑您的需求以及每个系统的功能和缺陷。

          例如,Drupal 有大量模块,功能非常强大,并且易于编写您自己的模块,但不是面向对象的,也不是真正的 MVC,所以如果这是您的包,那么您可能会找到它很难相处。 Wordpress 更容易快速上手,但一旦你开始深入了解它,就会变得不那么灵活。

          但同样,它们都有优点和缺点。如果一个显然是最好的,那将是一个简单的选择。但归根结底,最好有几个质量好的选项可供选择。

          【讨论】:

            【解决方案10】:

            看看Ext JS,还不错。如果它是你正在做的商业项目,它不是免费的,但也不是太贵。如果您愿意,它也有一个 GWT 版本。 这仅适用于前端,但使用任何可以发出 json 的后端都不会太复杂。

            【讨论】:

              【解决方案11】:

              CakePHP 不错

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-02-13
                • 1970-01-01
                • 1970-01-01
                • 2012-02-11
                • 2021-06-03
                相关资源
                最近更新 更多