【发布时间】:2009-08-05 18:14:15
【问题描述】:
所以,我很想使用 php 框架重写我的应用程序,因为我认为这将使人们更容易参与进来,并改进应用程序的设计。
CakePHP 看起来是最好的 PHP Web 框架。有没有人有这方面的经验?从手动编码 PHP 到使用框架,我应该考虑哪些注意事项?
【问题讨论】:
所以,我很想使用 php 框架重写我的应用程序,因为我认为这将使人们更容易参与进来,并改进应用程序的设计。
CakePHP 看起来是最好的 PHP Web 框架。有没有人有这方面的经验?从手动编码 PHP 到使用框架,我应该考虑哪些注意事项?
【问题讨论】:
不取决于你选择的框架,你首先要知道的是:
我认为这些点是最被低估的点:使用一个框架不需要太多时间......很好地使用它并充分发挥它的能力需要......嗯,几个月,也许...... . 这意味着,当你在你的项目结束时,你会说“我应该用我第一次重写时学到的所有东西重写它”:-D
它的意思是:了解框架能做什么,学习如何使用它,并在小型应用程序上使用一段时间,然后再开始重写你的大应用程序!
然后,可能没有“最佳框架”:一个框架可能非常适合一个项目,而另一个框架可能最适合第二个不同的项目。
我从未使用过 CakePHP ;我真的很喜欢Zend Framework。但这是个人意见,O认识真正喜欢symfony的人;他们没有错:symfony 很棒——我也没有错 ^^
不过,我们有时会在某些事情上达成一致;比如Doctrine(symfony 的默认 ORM 层)确实很棒,我们倾向于在基于 symfony 和 ZF 的项目中使用...
如果有动力,您可以查看许多关于 SO 的帖子,关于框架...以下是其中的一些:
祝你好运^^
(“哪个框架”是一个相当主观的问题 ^^)
【讨论】:
CakePHP 有它的优点,但没有“最好”的框架。 Here's a thread 提供了一些关于最流行 PHP 框架的优点的线索。
如果您以前从未使用过 MVC 框架(而 Cake 是 MVC 框架),我认为您应该首先熟悉 MVC architecture。
【讨论】:
"CakePHP 看起来是 PHP 中最好的 网络框架。”
这是主观的。您应该比较适合您需求的其他 PHP 框架的优缺点。
这些帖子可能对您有所帮助:
Why do I need to use a popular framework?
https://stackoverflow.com/questions/249984/php-framework-decision-analysis-paralysis
【讨论】:
FWIW,我在做一些 php 开发时使用过它。我发现它易于使用,快速开发方面很棒,我想在过去的 3 年里会变得更好。 irc channel 有很多帮助,文档也很好。我没有在 PHP 中停留足够长的时间来成为专家。然而,那时我刚开始作为一名程序员,遇到了 Larry Masters(创造者,又名 phpnut),他只是一个谈论设计原则的好人,一个全能的好人。再说一次,你不必是一个超级好人来编写一个好的 web 框架(我在看着你 DHH)。
【讨论】:
大多数框架将您“绑定”到它们,这意味着您必须按照它们的方式做事。如果你想做一些他们不打算做的事情,你通常必须破解它。例如,目前有多少 PHP 框架支持 Facebook Connect?
我个人更喜欢“框架”,您只能使用您想要的部分。 Zend 是这样的,Doctrine 和 Propel 是 ORM,旨在与其他代码一起使用。例如,Symfony 框架可以使用任何一种。
最后,我还没有找到一个流行的、可扩展的 PHP 框架。
【讨论】:
我在几个项目中使用了 cakephp。从我学会它的那一刻起,我再也没有在没有它的情况下编写过 php(除非是有趣的代码,我想在其中尝试一些新东西,或者从 MVC 中学习其他设计理念)。如前所述,学习它需要一些时间。需要多少时间真的取决于你的背景。如果你使用过另一种 MVC 框架作为 Web 脚本语言,那么你会很快学会它; RoR 开发人员将在几小时/几天内完成它。如果您没有使用 MVC 框架的经验,那么它可能需要您一点时间,但它确实会在以后的道路上为您节省时间(包括在您开始的那个项目中)。
直到今天,每次我开始一个新项目时,我仍然会学习关于 CakePHP 的新东西,尽管我确实深入研究了它的很多源代码(你绝对不需要这样做,文档和帮助板是绰绰有余)。
我绝对建议您研究一下。它将为您节省大量时间并让您以不同的方式思考(如果您不习惯 MVC)。
祝你好运。
【讨论】:
CakePHP 的convention over configuration 方法在您学习后具有一些优势:
在 CakePHP 中重写遗留应用程序时,您有两个主要选择:
无论哪种方式,一旦您完成了上述操作,就会一帆风顺,并且是一次很好的学习经历。
【讨论】: