【问题标题】:Rewriting a php app in CakePHP在 CakePHP 中重写一个 php 应用程序
【发布时间】:2009-08-05 18:14:15
【问题描述】:

所以,我很想使用 php 框架重写我的应用程序,因为我认为这将使人们更容易参与进来,并改进应用程序的设计。

CakePHP 看起来是最好的 PHP Web 框架。有没有人有这方面的经验?从手动编码 PHP 到使用框架,我应该考虑哪些注意事项?

【问题讨论】:

    标签: php cakephp


    【解决方案1】:

    不取决于你选择的框架,你首先要知道的是:

    • 您需要一段时间才能了解它
    • 在那段时间你会做一些废话^^
    • 因此,请考虑到您需要一段时间才能完全投入运营:-)

    我认为这些点是最被低估的点:使用一个框架不需要太多时间......很好地使用它并充分发挥它的能力需要......嗯,几个月,也许...... . 这意味着,当你在你的项目结束时,你会说“我应该用我第一次重写时学到的所有东西重写它”:-D

    它的意思是:了解框架能做什么,学习如何使用它,并在小型应用程序上使用一段时间,然后再开始重写你的大应用程序!


    然后,可能没有“最佳框架”:一个框架可能非常适合一个项目,而另一个框架可能最适合第二个不同的项目。

    我从未使用过 CakePHP ;我真的很喜欢Zend Framework。但这是个人意见,O认识真正喜欢symfony的人;他们没有错:symfony 很棒——我也没有错 ^^
    不过,我们有时会在某些事情上达成一致;比如Doctrine(symfony 的默认 ORM 层)确实很棒,我们倾向于在基于 symfony 和 ZF 的项目中使用...


    如果有动力,您可以查看许多关于 SO 的帖子,关于框架...以下是其中的一些:

    祝你好运^^
    (“哪个框架”是一个相当主观的问题 ^^)

    【讨论】:

    • 出于某种原因,我认为 Zend 框架是专有的。我想我还有一些研究要做。
    • 在框架中编写我的大型应用程序时,我们已经拥有相当多的开发人员,但我们总是可以使用更多。你有兴趣帮忙吗?
    • 背后有一家公司(Zend),但是,不,它绝对不是专有的;如果我没记错的话,它是在某种 BSD 许可下(这对用户来说是件好事);见framework.zend.com/license——它不是唯一一个背后有公司的框架;例如,symfony 也有一个
    • @mattl :感谢您的提议!但我绝对没有时间参与这样的事情:-(对不起:-(
    【解决方案2】:

    CakePHP 有它的优点,但没有“最好”的框架。 Here's a thread 提供了一些关于最流行 PHP 框架的优点的线索。

    如果您以前从未使用过 MVC 框架(而 Cake 是 MVC 框架),我认为您应该首先熟悉 MVC architecture

    【讨论】:

    • 我在 Rails 项目上做了一点 MVC。谢谢指点。
    • 那你为什么不在 Rails 中重写你的应用程序呢?
    • Rails 对人们来说很难部署,我们希望它尽可能简单。人们应该可以把它扔到一个 5 美元的托管帐户上。
    【解决方案3】:

    "CakePHP 看起来是 PHP 中最好的 网络框架。”

    这是主观的。您应该比较适合您需求的其他 PHP 框架的优缺点。

    这些帖子可能对您有所帮助:

    https://stackoverflow.com/questions/2648/what-php-framework-would-you-choose-for-a-new-application-and-why

    Why do I need to use a popular framework?

    https://stackoverflow.com/questions/249984/php-framework-decision-analysis-paralysis

    【讨论】:

      【解决方案4】:

      FWIW,我在做一些 php 开发时使用过它。我发现它易于使用,快速开发方面很棒,我想在过去的 3 年里会变得更好。 irc channel 有很多帮助,文档也很好。我没有在 PHP 中停留足够长的时间来成为专家。然而,那时我刚开始作为一名程序员,遇到了 Larry Masters(创造者,又名 phpnut),他只是一个谈论设计原则的好人,一个全能的好人。再说一次,你不必是一个超级好人来编写一个好的 web 框架(我在看着你 DHH)。

      【讨论】:

        【解决方案5】:

        大多数框架将您“绑定”到它们,这意味着您必须按照它们的方式做事。如果你想做一些他们不打算做的事情,你通常必须破解它。例如,目前有多少 PHP 框架支持 Facebook Connect?

        我个人更喜欢“框架”,您只能使用您想要的部分。 Zend 是这样的,Doctrine 和 Propel 是 ORM,旨在与其他代码一起使用。例如,Symfony 框架可以使用任何一种。

        最后,我还没有找到一个流行的、可扩展的 PHP 框架。

        【讨论】:

          【解决方案6】:

          我在几个项目中使用了 cakephp。从我学会它的那一刻起,我再也没有在没有它的情况下编写过 php(除非是有趣的代码,我想在其中尝试一些新东西,或者从 MVC 中学习其他设计理念)。如前所述,学习它需要一些时间。需要多少时间真的取决于你的背景。如果你使用过另一种 MVC 框架作为 Web 脚本语言,那么你会很快学会它; RoR 开发人员将在几小时/几天内完成它。如果您没有使用 MVC 框架的经验,那么它可能需要您一点时间,但它确实会在以后的道路上为您节省时间(包括在您开始的那个项目中)。

          直到今天,每次我开始一个新项目时,我仍然会学习关于 CakePHP 的新东西,尽管我确实深入研究了它的很多源代码(你绝对不需要这样做,文档和帮助板是绰绰有余)。

          我绝对建议您研究一下。它将为您节省大量时间并让您以不同的方式思考(如果您不习惯 MVC)。

          祝你好运。

          【讨论】:

          • 我注意到您评论了部署。我在部署方面没有遇到任何问题,就像将其移动到服务器一样简单(假设您的服务器已准备好运行 php 代码并具有 mod_rewrite)并更改一些配置文件。
          【解决方案7】:

          CakePHP 的convention over configuration 方法在您学习后具有一些优势:

          • 它有助于使您的代码井井有条且易于理解
          • 让多个开发人员更轻松地在同一个应用程序上进行协作
          • 使开发人员能够了解其他开发人员的应用程序

          在 CakePHP 中重写遗留应用程序时,您有两个主要选择:

          • 更改数据库架构以反映约定 - 从而减少代码
          • 对模型进行编码以与旧数据库交互 - this book 详细介绍了所有细节

          无论哪种方式,一旦您完成了上述操作,就会一帆风顺,并且是一次很好的学习经历。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-08-24
            • 1970-01-01
            • 2015-08-24
            • 1970-01-01
            • 2014-11-04
            • 2016-06-27
            • 1970-01-01
            相关资源
            最近更新 更多