我是Web应用程序的长期PHP用户,并且最适合它.但是,我有一个半大型项目,其维护/可扩展性已达到生命周期的终点.我正在权衡不同的PHP框架(当项目发起时没有),因为它是这个项目的方式,我得出结论,ebst选项将使用Zend Framework来实现.
Symfony似乎很复杂(我不喜欢像这样建立数据库模型
CakePHP看起来很模糊
点燃器我一开始喜欢,但在我看来它更像是Zend,功能更少,而且没有Zend支持它
Zend我喜欢这样的系统,我只能使用我喜欢的东西而不是绑定到特定的目录结构,当然还有Zend背后的东西.性能是可能困扰我的
现在,在选择Zend背后的这个小理由之后,在选择框架时,我认为有几件事情是破坏性的.
我以前没有使用ORM因为我更喜欢直接编写SQL,所以我仍然需要说服使用ORM
没有太多的抽象来自胆量
灵活的目录结构
只要这个项目要重新编写,我就像在Python/Django中编写它一样,因为我对Python很熟悉,但不熟悉Django.所以,我想知道是否有人使用Zend Framework和Django框架,是否可以概述一些关键点差异?
我还必须说这个项目是作为一个标准的站点/管理双项目.也就是说,它基本上是两个站点.一个用于前端和用户,另一个用于后端的数据管理.我必须并且将自己构建后端,一些脚手架方法会很酷,但在这种情况下,全自动脚手架就像没有任何东西一样好.
我仍然不确定如何在一个应用程序的目录结构中构建基本上两个应用程序.你刚刚制作了两个独立的应用程序,并依赖于URL方案来分离它们吗?www.example.com和所有/*是一个应用程序,www.example.com/admin/*是第二个应用程序.
很抱歉这个问题很长,但正如你所看到的 - 一切都与一个问题有很大关系 - 我需要重新启动一个项目,它已经建立了我可以重新构建的数据库+数据,但我想保留它至少是一种工作.
好的,谢谢大家 - 看起来我会尝试用Zend实现这些东西,给我最大的灵活性(我用两个测试),我们会看到它是怎么回事.
Django比Zend更全面的框架.它与symfony比Zend更相似.
Django可以将您的数据库逆向工程为ORM类.并有一个cli工具,可以帮助你做东西(管理和模型生成器,项目骨架生成等)
Zend更像是一个组件框架.它有自己的MVC和ORM实现,但你需要单独编写这些东西.它的方法是只使用你需要的东西而不强加某些目录结构.
在你的情况下,Django因其出色的管理生成器模块而具有一些优势,而Django本身也非常快(比大多数PHP框架更快).
我个人使用symfony和Zend框架来处理我需要的东西(Mail,OpenID,Lucene搜索),但是我和Django玩了一下,我喜欢它.
Zend不包括真正的ORM.它提供了一些辅助类,但您主要是自己建模数据库和编写自己的SQL查询.所以你在那里会有充分的自由.正如Deresh所说,Zend是模块化的,因此您可以选择所需的部件.
就个人而言,我通过ORM将Zend与来自PEAR的DB_DataObjects一起使用.它可以自动生成您的骨架代码.这是处理简单查询的一个非常简单的解决方案,但我总是可以在必要时编写自定义SQL.
关于两个管理员和前端的分离,我建议将它们放在不同的域上,例如:admin.yoursite.com(后端)和www.yoursite.com(前端).您可以将它们放在同一个URL上,但它实际上并不是Django或Zend支持的用例.