最好的高级Web框架,PHP首选

时间:2010-09-09 02:44:50

标签: php jquery ajax frameworks

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

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

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

还有更多,但我认为我已经提供了足够的细节,以便您了解我正在寻找的东西。基本上,我想设计一个现代的Web 2.0应用程序,并跳过编写,测试和调试大多数Web应用程序需要做的事情。是的,我知道我可以使用YUI或jQuery并将其打到常规平台之上,但之后我必须编写所有胶水。现在,如果有模块执行此操作,那将是有趣的。 所以,如果你说,采取Symfony +模块xyz + jQuery,那就是你的答案,我很高兴听到这个。

最后,就优先级而言,我正在寻找一种可扩展,可靠,设计精良的东西,而不是易于学习和部署的东西。

11 个答案:

答案 0 :(得分:2)

既然你正在寻找AJAX的所有东西,为什么不试试GET呢?它不是PHP我同意,但它使开发人员可以轻松编写AJAX应用程序。

答案 1 :(得分:2)

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

我建议寻找一个拥有庞大而活跃的社区的框架,如CI,Cake和Jquery。搜索/询问社区您需要的具体事项。插上它和Presto!

但我担心你不得不写一些。

答案 2 :(得分:2)

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

http://www.zkoss.org/

我更喜欢在GWT上使用它。

答案 3 :(得分:2)

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

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

它可以通过一行代码访问PHP服务器端的所有JavaScript函数,对象和属性以及元素属性和函数。

在Cjax中,

你可以执行ajax动作,内部控制器(ajax请求) - 没有一行JavaScript。这使您无需刷新页面即可完全正常运行。它还允许您从PHP访问所有Js对象。反映这一点的好样本是“递归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就像使用Framework的Plugin的JavaScript Ajax函数一样。

你只需要花时间学习更多关于它的知识,因为它有更多的工具,我相信你会发现它有用。

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

  

注册/验证/授权。包括所有的家务   忘了我的密码,CAPTCHAs等等。

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

答案 4 :(得分:1)

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

答案 5 :(得分:0)

至于UI和AJAX部分 - 服务器端技术很少,而且更多的是浏览器端技术和交互机制,以及DOM操作。

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

但所有这些都需要在StackOverflow.com上进行大量的练习,知识,教育,研究,阅读和发布问题;)

答案 6 :(得分:0)

我建议使用symfony PHP框架,因为它对你提到的每个功能都有很好的支持,而且它可以很容易地与Zend Framework集成 - 从今年开始的版本2.0,它将被集成到软件包中。您可以轻松设置symfony来处理AJAX请求,以便它是完美的透明层处理服务器端。

对我来说,如果你看一下那些沉重的AJAX,我建议你寻找一些好的JavaScript框架 - 比如Ext.JS--它可以处理所有客户端功能。

答案 7 :(得分:0)

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

答案 8 :(得分:0)

取决于您所关注的等级。如果用'框架'表示像Zend或Symphony这样的东西,那么说实话,所有大的东西都和它们一样好。他们都有强点和弱点,但没有一个真的符合你的标准。

但是你的问题意味着你正在寻找的东西不仅仅是那种框架。也许您正在寻找像Drupal,Joomla或Wordpress这样功能齐全的CMS平台?

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

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

但同样,他们都有优点和缺点。如果一个人显然是最好的,那将是一个简单的选择。但是在一天结束时或许最好有几个优质的选择可供选择。

答案 9 :(得分:0)

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

答案 10 :(得分:-2)

CakePHP非常好