开放的编程资料库

当前位置:我爱分享网 > PHP教程 > 正文

交响乐现场 2010

本周,我参加了在巴黎举行的SymfonyLive,就ZendFramework与Symfony的集成发表了演讲。这段经历非常有益,当然也让许多人大开眼界。

老实说,我对这次会议有点担心——许多人认为Symfony和ZF在竞争,不会有异花授粉。我希望Fabien、Stefan和我自己在本周帮助消除了这个神话。

事实是,没有一个项目可以面面俱到,也无法完美地完成所有事情。在我对不同框架、PHP和其他框架的检查中,它们最大的差异和在用户中产生最多忠诚度的地方是MVC方法和工具支持。在goodframeworks中,这只是代码的一部分,其余部分位于扩展该功能的支持库或插件中。

Symfony和ZendFramework都是如此。Symfony的开发团队选择专注于与MVC方法相关的非常具体的核心功能,这使得他们的维护工作更容易,并导致稳定的产品。ZendFramework的MVC实现作为一组单独的组件提供,Zend_ApplicationZend_Tool等组件有助于为它们带来凝聚力和结构。

这意味着一旦您开发了应用程序的基本基础结构,即脚手架,您现在就可以决定如何实现应用程序本身的实际功能。我所看到的问题是:你如何进行开发?许多开发人员目光短浅,不会超越他们为开发选择的框架。这会导致同一代码的多个实现,并且通常还会导致不完整的实现。

我的感觉是,每当你发现自己要编写新代码时,看看是否其他人已经编写了代码。任何人——不要局限于你选择的框架。如果我想做真正的HTML嗅探、验证和清理,我会去HTMLPurifier;如果我想要一个工作流组件,我会查看eZComponentsWorkflow;我总是会查看PEAR。

本周,我试图在Symfony社区中传播这条信息,向他们展示在Symfony项目中集成ZF组件是多么容易。集成本身很简单:实例化Zend自动加载器,然后开始使用ZF类。这种相同的技术可用于加载PEAR、eZComponents或Doctrine2等。诀窍是摆脱“这里没有发明”综合症,放开你的想法,并使用其他人的代码。

(是的,我知道我们在ZF中有代码复制了其他库中的功能;在大多数情况下,我们尝试并至少提供一种解决问题的新方法——但我们可以做得更好。)

Fabien还发布了一个有趣的公告。在与Symfony核心团队的问答环节中,他说Symfony2不会在不需要时重新发明轮子—并宣布Symfony2将使用Zend_LogZend_Cache而不是重写当前的Symfony组件。我发现这令人钦佩—这也是我希望在ZendFramework2.0的一些地方做的事情,因为我知道其他人拥有的功能和代码,很简单,写得更好。

本篇文章的最后一点:对于各种“2.0”版本的框架,大多数项目都在从所犯的错误以及采用它们的开发人员的使用模式中吸取教训。在我看来,其中一个教训是,没有一个框架可以单独完成所有事情。我完全希望看到下一代框架可以轻松地从其他框架和库中提取功能以填充功能。

未经允许不得转载:我爱分享网 » 交响乐现场 2010

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏