是否使用PHP框架?

时间:2009-05-03 13:47:28

标签: php cakephp codeigniter

我开始用PHP编写一些应用程序,我对这门语言越来越熟悉了。有人告诉我有关CakePHP和CodeIgniter的信息。我想更好地了解这些如何帮助我,以及是否值得花时间学习框架?

12 个答案:

答案 0 :(得分:56)

使用MVC PHP框架有什么好处?

使用PHP框架有很多好处,让我们看看使用它们的一些主要好处。

  1. 这些PHP框架遵循一些设计模式,因此当您使用框架时,您必须遵循其编码约定,这样可以使您的代码清晰可扩展,以备将来使用。
  2. 像CakePHP,CodeIgniter,Zend Framework,Symfony这样的流行PHP框架遵循模型视图控制器(MVC)设计模式,它将业务逻辑与用户界面分开,同时使代码更加清晰和可扩展。
  3. 每个人都可以猜到,这些框架包含很多库,可以让您的工作更轻松。例如:要验证表单,您不必编写正常编码方案中所需的代码(不使用框架),只需几行代码调用库就足够了。
  4. 在团队中处理大型项目时,MVC PHP框架将是一个很好的开发工具,因为您可以指定开发人员为开发人员开发模块的一部分,并且这些开发模块的集成将非常简单在最后一级。
  5. 这些MVC框架确实可以帮助您快速开发项目,如果您对框架有所了解,那么您永远不会担心项目的最后期限。
  6. 这些MVC框架中的大多数使用明确的网址方法,使您的网络项目SEO友好。
  7. 检查article

答案 1 :(得分:36)

我的理念是,只有当你解决了现有的需求时才应该使用某种东西。

有一种真正的倾向,特别是在这个领域,简单地使用框架是为了使用一个框架,或者因为你觉得你应该使用某些东西。我不鼓励这种做法。我认为,当你以艰难的方式完成工作时,我认为最有价值的框架让你很好地理解你所遇到的问题以及框架如何帮助你在那种情况下。框架选择取决于具体情况。

总而言之,使用Web应用程序的MVC模式非常有用,因此学习至少一个它肯定不会伤害到你。但我坚持一个相当简约的框架。 CodeIgniter会浮现在这里。

最后,框架的另一个危险是它们可能是如此具有侵略性,你不再使用PHP,你正在做CakePHP,Symfony或其他什么。这不一定是一个问题,但它是如此具有侵略性的危险是你没有在PHP中获得良好的基础,如果你想要改变它,那就太难了,你将永远无法做到。 / p>

答案 2 :(得分:7)

PHP框架的一大优势是它们可以最大限度地减少重新发挥大量常见Web应用程序需求。安全问题,优雅的异常处理,RESTful URL以及整个站点中代码的可重用性是相当普遍的考虑因素。

可能更容易熟悉框架的工具,然后看看是否要采用它支持的完整MVC系统。为此,我建议您熟悉Zend Framework。 ZF作为一个类库,可以单独为特定用途实现 - 从安全到Lucene搜索 - 但包含一些类,当它们一起使用时,实现了一个完全充实的MVC范例。

答案 3 :(得分:6)

我只想讲述自己在编程方面的经验, 我还是新手

  1. 首先使用框架,你会习惯他们的编码风格/规则,这很好,因为大多数框架都深入思考他们如何编写代码。总之,我得到更好的风格和更清晰的代码
  2. 通常框架附带许多库(插件和/或库),您可以在互联网上找到,这将减少您的编码时间,减少浪费的时间。简而言之,您可以将自己宝贵的时间用于思考业务流程
  3. 使用开源框架,其他程序员已经知道并且可能已经掌握了框架,那么您就可以轻松地与他人协作。
  4. 实际上我不是一个组织良好的程序员,但它是在我使用一些开源框架之前。或许像我一样,你会变得更有条理
  5. 这就是我现在可以和你分享的一切,我不会用英文写作,对不起。但重点是我建议你使用框架

    快乐的编码朋友。

答案 4 :(得分:5)

我认为花时间学习PHP框架无疑是一项很好的投资。首先,它会教你如何解决构建框架的问题,如何组织PHP代码,以及如何处理会话和数据库访问......等等......

在大多数情况下,如果您认真开发Web应用程序,则需要使用某种类型的框架,而不是从头开始编写自己的框架。

您不应该编写自己的框架的一些原因:

  1. 你已经多次重复发明轮子了。
  2. 您不太可能比开源框架做得更好,开源框架已经过许多开发人员的测试和迭代。
  3. 您将花费所有时间编写和调试自己的框架,而不是花在实际创建应用程序上。
  4. 所以,是的,学习一些框架,找到最适合你的框架!

答案 5 :(得分:5)

Diclaimer:我不是一个php程序员,我还没有写过一个php应用程序。另一方面,我已经为我的网站和购物车安装,定制和使用了很多php cmss。

在我看来,php遇到了严重的问题。最大的一点就是“框架”似乎是几乎所有大型甚至成功项目的外来词。 Php代码往往变成快速意大利面条沙拉:意大利面条html与意大利面条代码和意大利面条sql混合。

osCommerce是有史以来最成功的购物车之一,它几乎不可用。这也适用于绝大多数php项目。

你是否应该为你的项目使用框架,我说是的!非也!无论您的项目有多大,使用Web框架都可以帮助您整理代码并编写维护代码。

即使您没有使用框架,它也会影响您的编程风格。

答案 6 :(得分:2)

使用MVC-framework将使您的开发更容易。尤其是与数据库相关的应用它为您提供了一个清晰的文件夹结构和大量的代码库。我建议你从CodeIgniter开始。

答案 7 :(得分:1)

当你有一个开发团队在同一个项目上工作时,框架很棒。 MVC控制器精美地集成了设计师+程序员。然而,创建“框架式”元素和“重新发明”轮子并不是一个坏主意。如果您正在开展一个庞大的项目,那么最好让您的代码变得肮脏并定制一切以满足您的需求。它将成为一个更强大的产品,因为它将完全为该项目开发。

答案 8 :(得分:1)

以下帖子是为了回应一个在我写回RenderIn帖子的答案时立即关闭的帖子:https://stackoverflow.com/questions/3265509/what-are-the-benefits-of-using-a-programming-framework。线程被关闭,在评论中有一个链接指示他到这里,所以我将尝试在这里回答他的问题。以下引用是我要提交的内容:

“请允许我向你和你的组织推荐Joomla!在我上一个雇主那里,我不得不接受PHP(之前没有经验),并且经过大约一个半月的时间做一些手工操作 - 编码PHP,我的任务是编写一个Joomla!组件,为用户提供视频。我还必须创建一个后端,允许非技术人员将视频分类,编辑,删除等等。以及为他们提供缩略图等。

现在要获得一个工作原型,花了大约两个月(我当时是一名实习生,每周工作20-24小时,所以如果你有相当多的PHP经验和经验MVC开发方法,你可能会比我更快地获得一个工作原型。“

现在回应此线程的OP: 花时间学习一个框架绝对是值得的(我直到我的帖子才提到它,所以我再说一遍:对于一个PHP框架我会推荐Joomla!)。

学习框架的一些好处(像Joomla这样的开源框架!):

  • 一个庞大的社区,可以帮助回答你的问题(除了stackoverflow; lol)
  • 访问所有源代码,以便您可以随意自定义。
  • 许多免费(和付费)第三方插件,以增强功能。
  • 很多教程。
  • Frameworks负责自动执行大量平凡任务。

参考子弹四:Joomla!为您处理事情,例如数据库连接管理等,这样您就不必费心创建所有自己的自定义函数来连接到MySQL数据库或返回不同类型的数据库结果(例如,一条记录,首先是第一个结果记录,记录列表等),您只需拨打他们的电话。 Joomla!的API可在其网站上公开获取:http://api.joomla.org/

无论如何,希望这有助于RenderIn和其他任何想要框架的人(尤其是与PHP相关的框架)。

答案 9 :(得分:1)

对我而言,一个框架是一个很好的工具,可以加快你的速度,为了你而节省你的时间,只是不想花时间重做它,而不是因为你想节省你的时间。我知道它有多少。如果你这样做,你会付钱。

对我来说,框架是好的,如果你已经是一名体验程序员并且你有触摸或感觉你知道框架大致如何在下面工作(只是粗略地不完全)并且有信心说如果我想我可以重新创建类似于此框架的简化。然后一个框架对你来说是一辆快车,如果你想要做一些框架没有准备好的事情或者一些不寻常或其他奇怪的东西,它不会给你带来痛苦。

如果你不这样做,你最好尝试使用普通的PHP来解决你的问题,并通过你的手指练习语言的痛苦,并首先了解良好的编程实践和范例和模式。此外,您将成为加入大型团队的新毕业生之一,他们的第一个项目正在开发一个项目,该项目具有非常强大的框架,需要更少的编码,更多的是配置和修补。你将永远不会成为一名优秀的程序员,无法从头开始构建一个优秀的PHP应用程序。

如果您所在的组织使用复杂的框架?

花费你自己的时间来解决这个案例PHP中的问题,直到你了解我上面提到的内容。否则,你永远不会发现自己对编程充满信心,并且不断告诉自己,“我只知道那些步骤是做到这一点的”。那不是编程(有点极端:))。

复杂与简单框架

虽然许多人使用了一些框架,但这只是压倒性的。您将失去太多层次。这些框架通常用于刻板印象,很多配置文件,如果你想做一些不寻常的事情,你最好做框架编写器(这里有点夸张:))。我不想在这里提到任何名字,但是当你遇到它时你会知道它。

答案 10 :(得分:0)

CodeIgniter是EllisLab团队的产品,他们的主要产品是使用CodeIgniter开发的Expression Engine。

使用CI一段时间后,我发现使用Yii Framework更方便。它有很多扩展。好文档并不难理解。

CakePHP,我认为,接近CodeIgniter。

答案 11 :(得分:0)

我强烈建议使用框架,而不仅仅是一个简单的脚本。有时候看起来有点过分,但我认为事实并非如此。我有几次我认为我不需要它(简单的应用程序,3分贝表中的基本CRUD)。

不久之后,我发现自己做了手动mysql_escape_string,XSS过滤等等。从那时起,当我认为设置将花费更多的工作代码时,我只编写非框架代码。这种情况很少发生。

如果我需要推荐PHP框架,我必须使用CodeIgniter或Yii Framework,具体取决于项目的复杂程度。