【发布时间】:2010-10-23 10:59:57
【问题描述】:
我已经开始用 PHP 编写一些应用程序,并且我越来越熟悉这种语言。有人告诉我关于 CakePHP 和 CodeIgniter。我想更好地了解这些对我有什么帮助,以及花时间学习框架是否值得?
【问题讨论】:
-
这是重复的,查看这里stackoverflow.com/search?q=php+framework
标签: php cakephp codeigniter
我已经开始用 PHP 编写一些应用程序,并且我越来越熟悉这种语言。有人告诉我关于 CakePHP 和 CodeIgniter。我想更好地了解这些对我有什么帮助,以及花时间学习框架是否值得?
【问题讨论】:
标签: php cakephp codeigniter
使用 MVC PHP 框架有什么好处?
嗯,使用 PHP 框架有很多好处,让我们看看使用它们的一些主要好处。
查看article
【讨论】:
我的理念是,你应该只在解决你当前的需求时才使用它。
有一个真正的趋势,特别是在这个领域,只是为了使用一个框架,或者因为你觉得你应该使用一些东西。我不鼓励这种做法。此外,我认为框架在您以艰难的方式完成工作时最有价值,因此您可以很好地了解您遇到的问题以及框架如何在这种情况下为您提供帮助。框架选择确实取决于具体情况。
话虽如此,带有 Web 应用程序的 MVC 模式很有用,因此至少学习一个肯定不会对您造成伤害。不过,我会坚持一个相当简约的框架。 CodeIgniter 在这里浮现出来。
最后,框架的另一个危险是它们可能非常具有侵入性,以至于您不再使用 PHP,而是使用 CakePHP、Symfony 或其他任何东西。这不一定是一个问题,但它如此具有侵入性的危险在于你没有很好的 PHP 基础,如果你想改变它就会太难,你永远无法做到。
【讨论】:
PHP 框架的一大优点是它们可以最大限度地减少在大量常见 Web 应用程序需求中重新发明轮子。安全问题、优雅的异常处理、RESTful URL 和跨站点代码的可重用性是相当普遍的考虑因素。
熟悉框架的工具可能会更容易,然后看看您是否想采用它支持的完整 MVC 系统。为此,我建议您熟悉 Zend 框架。 ZF 作为一个类库工作,可以针对特定用途单独实现——从安全性到 Lucene 搜索——但包含的类在一起使用时,可以实现完全充实的 MVC 范例。
【讨论】:
我只是想谈谈我自己的编程经验, 不过我还是新手
我现在只能和你分享这些,我不擅长用英文写作,对不起。但重点是我建议你使用框架
快乐的编码朋友。
【讨论】:
我认为花时间学习 PHP 框架无疑是一笔不错的投资。一方面,它会教你有人如何解决构建框架的问题,如何组织你的 PHP 代码,以及如何处理诸如会话和数据库访问之类的事情......等等......
在大多数情况下,如果您认真地开发 Web 应用程序,您将需要使用某种框架,而不是从头开始编写自己的框架。
您不应该编写自己的框架的一些原因:
所以,是的,学习几个框架并找到最适合您的框架!
【讨论】:
免责声明:我不是 php 程序员,也从未编写过 php 应用程序。另一方面,我已经为我的网站和购物车安装、定制和使用了很多 php cmss。
在我看来,php 存在严重的问题。最大的一个问题是,对于几乎所有大型甚至成功的项目来说,“框架”似乎都是一个外来词。 php代码往往很快就变成了意大利面条沙拉:意大利面条html混合了意大利面条代码和意大利面条sql。
osCommerce 是有史以来最成功的购物车之一,但几乎无法维护。这也适用于绝大多数 php 项目。
你是否应该为你的项目使用框架,我说是的!确实!无论您的项目有多大,使用 Web 框架都可以帮助您整理代码并编写可维护的代码。
即使您不使用框架,它也会影响您的编程风格。
【讨论】:
使用 MVC 框架将使您的开发更加轻松。尤其是与数据库相关的应用程序。它为您提供了清晰的文件夹结构和大量的代码库。我建议你从 CodeIgniter 开始。
【讨论】:
当您有一个开发团队在同一个项目上工作时,框架非常棒。 MVC 控制器将设计器 + 程序员完美地集成在一起。但是,创建“类似框架”的元素并“重新发明”轮子并不是一个坏主意。如果您正在处理一个庞大的项目,最好对您的代码进行处理并自定义所有内容以满足您的需求。它将成为一个更强大的产品,因为它将完全为该项目开发。
【讨论】:
以下帖子是对一个帖子的回应,该帖子在我写对 RenderIn 帖子的回答时立即关闭:https://stackoverflow.com/questions/3265509/what-are-the-benefits-of-using-a-programming-framework。该线程已关闭,并且在 cmets 中放置了一个链接,将他指向此处,因此我将尝试在这里回答他的问题。下面的引号是我要提交的内容:
“请允许我向您和您的组织推荐 Joomla!。在我的上一个雇主,我不得不学习 PHP(之前没有使用它的经验),并且在大约一个半月后做了一些手工操作- PHP 编码,我的任务是编写一个 Joomla! 组件,为用户提供视频。我还必须创建一个后端,允许非技术管理员对视频进行分类、编辑、删除等以及为他们提供缩略图等。
现在为了得到一个可以工作的原型,花了大约两个月(当时我是一名实习生,每周只工作 20-24 小时,所以如果你有相当多的 PHP 经验以及MVC 开发方法,你可能比我更快地得到一个工作原型)。”
现在响应这个线程的 OP: 花时间学习一个框架绝对是值得的(直到我的帖子我才在这里看到它,所以我再说一遍:对于 PHP 框架,我推荐 Joomla!)。
学习框架(Joomla 等开源框架!)的一些好处:
参考第四条:Joomla!为您处理诸如数据库连接管理之类的事情,这样您就不必费心创建所有自己的自定义函数来连接到您的 MySQL 数据库或返回不同类型的数据库结果(例如,一条记录,第一个结果的第一个结果)记录,记录列表等),您只需拨打他们的电话。 Joomla! 的 API 在其网站上公开提供:http://api.joomla.org/
无论如何,希望这有助于 RenderIn 和其他想了解框架(尤其是与 PHP 相关的框架)的人。
【讨论】:
对我来说,一个框架是一个很好的工具,可以加快你的速度并节省你的时间,因为你只是不想花时间重做它,而不是因为你想节省你不想的时间'不知道多少钱。如果您这样做,您将为此付出代价。
对我来说,如果您已经是一名经验丰富的程序员,并且您知道框架在下面大致如何工作(只是大致不完全准确)并且有信心说,如果我愿意,我可以重新创建类似简化此框架的排序。那么框架对你来说就是一辆快车,如果你想做一些框架没有准备好的事情,或者一些不寻常的或其他奇怪的事情,它不会给你带来痛苦。
如果你不这样做,你最好尝试使用简单的旧 PHP 来解决你的问题,并经历在你手指上玩这种语言的痛苦,并首先了解良好的编程实践以及范式和模式。否则,您将成为加入大型团队的应届毕业生中的一员,他们的第一个项目正在开发一个具有非常强大框架的项目,该框架需要很少的编码,而需要更多的配置和修补。你永远不会成为一名优秀的程序员,也无法从头开始构建一个优秀的 PHP 应用程序。
如果您所在的组织使用复杂的框架怎么办?
花一些你自己的时间来解决这个例子中的普通 PHP 问题,直到你接触到我上面提到的内容。否则,您将永远不会对编程充满信心并不断告诉自己,“我只知道这些步骤就是实现它的方法”。那不是编程(有点极端:))。
复杂与简单框架
一些框架虽然被许多人使用,但只是压倒性的。有太多层您会忘记。这些框架通常用于一些刻板印象,大量配置文件,如果你想做一些不寻常的事情,你最好成为框架编写者(这里有点夸张:))。我不想在这里提任何名字,但是当你遇到一个时你就会知道。
【讨论】:
CodeIgniter 是 EllisLab 团队的产品,他们的主要产品是使用 CodeIgniter 开发的 Expression Engine。
使用 CI 一段时间后,我发现使用 Yii 框架更方便。它有很多扩展。使用好的文档并不难理解。
CakePHP,我认为,接近 CodeIgniter。
【讨论】:
我强烈建议您使用框架,而不是简单的脚本。有时它可能看起来有点矫枉过正,但我认为事实并非如此。有几次我认为我不需要它(简单的应用程序,3 db 表中的基本 CRUD)。
不久之后,我发现自己在做手动 mysql_escape_string、XSS 过滤等等。从那时起,当我认为设置需要比工作代码更多时,我只会编写非框架代码。而且这种情况很少发生。
如果我必须推荐一个 PHP 框架,我必须选择 CodeIgniter 或 Yii 框架,这取决于你的项目有多复杂。
【讨论】: