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

有帮助吗?

解决方案

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

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

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

其他提示

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

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

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

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

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

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

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

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

    快乐的编码朋友。

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

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

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

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

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

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

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

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

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

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

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

以下帖子是对一个线程的回应,该线程在我写对 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;哈哈)
  • 访问所有源代码,因此您可以根据需要对其进行自定义。
  • 许多免费(和付费)第三方插件可增强功能。
  • 很多教程。
  • 框架负责自动执行许多日常任务。

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

无论如何,希望这对 RenderIn 和其他对框架(尤其是与 PHP 相关的框架)感兴趣的人有所帮助。

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

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

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

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

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

复杂与简单框架

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

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

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

CakePHP,我认为,接近CodeIgniter。

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top