我听说过很多关于PHP框架的事情,比如ZEND,CodeIgniter,CakePhp等等,我也很清楚使用它的一些好处,比如提高生产力,减少错误等等,但是php框架不是让编码变得很复杂吗?没有框架的编码不是提供了更多的灵活性吗?有些人说你不需要任何额外的框架,因为PHP本身就是一个框架。
那么为什么PHP框架有这么多的用法呢?框架在PHP中真的是必要的吗?
发布于 2013-06-06 02:08:43
框架不会让编码变得复杂吗?
这取决于你想做什么。如果您所做的只是为一个全是静态HTML的站点创建一个基本的联系人表单,那么是的,使用一个框架会使它变得更加复杂。另一方面,如果你正在构建一个大规模的应用程序,那么使用一个框架并不一定会使它变得更加复杂。
在没有框架的情况下编码难道不能提供更多的灵活性吗?
这取决于框架本身,它们并不完全相同。一些框架,如Slim或Codeigniter,非常精简,没有太多阻碍,因此不会对灵活性产生真正的影响,有些框架更复杂,如Symfony2/Zend。
有些人说你不需要任何额外的框架,因为
本身就是一个框架。
他们是对的,从技术上讲,你不需要一个框架,你可以用普通的PHP做任何你可以用框架做的事情。框架实际上是从开发人员的个人归档函数和助手代码演变而来的。PHP可以是相对低级的,因为它没有现成的函数来完成您需要的一切。在框架出现之前,开发人员倾向于拥有自己的助手代码集,这些代码将在许多项目中重用。框架本质上仍然是这样的,除非它们是成百上千名开发人员参与的协作项目。
框架的另一个好处是,如果你有几个开发人员,其中一个开发了一个应用程序,你想让另一个开发人员为它做贡献或接管它,那么如果这个开发人员熟悉所用的框架,他可以比用纯PHP编写的应用程序更快地上手。如果没有这个框架,新的开发人员甚至在开始考虑添加任何新功能之前,都必须破解以前的开发人员系统。
发布于 2013-06-06 02:15:49
这是一个广泛的问题,我认为这是一个重要的问题。我属于不使用框架的阵营,除非绝对必要。问题是,什么时候是必要的?
首先,我认为让我对框架产生这种奇怪的过敏反应的是,没有经验的程序员想要用它们做任何事情,甚至是很小的站点……这很奇怪。也许这是因为一些人需要让他们的简历变得更大,因为他们说自己使用过codeigniter- -但根据我的经验,这并没有什么不同。招聘经理需要的是技能集,而不是任何人都能读懂API文档的人。如果你有关于程序架构和OOP原则的工作知识,你就会被录用。如果你不知道,但你是个代码引火者忍者...啊哈……好的?
框架有它们的用途,但我认为,当你的妈妈想要为她的烘焙销售做一个网站时,你可以使用一个更轻量级的系统把一个页面拼凑在一起。我不相信你应该包括代码“以防你需要它”。随着时间的推移,我开发了我自己的框架,它绝对很小,这就是为什么我创建的每个网站或应用程序都在谷歌页面加载时间排名前2% (尽管通常是前1%)。
这并不是说它们很糟糕--只是不要因为你想把它写进简历就跑去使用一个框架--从长远来看,你实际上是在搬起石头砸自己的脚。为什么?因为您不会花时间使用语言本身,所以您将花时间使用框架的语言。以jQuery为例--我多年来一直避免使用它,因为它不是JAVASCRIPT。人们对此嗤之以鼻-但现在,当我去参加一个技术面试时,有人问我(不可避免地):“你对jQuery的经验是什么”,我说“不多”,他们看起来很惊讶,但随后我接着说:“但我昨天刚刚在原生JS中通过控制反转编写了依赖项注入”--我当场被录用了。
框架很棒。问问自己,你是否真的需要它们。特别的问题是:你自己编码的好处是否超过了框架的时间好处(不要忘记平台的学习曲线)?一方面(非框架方法),你学到了很多,也许你花了更多的时间,因为你在解决自己的问题--但你也学到了很多关于语言本身的东西(本例中是PHP)。另一方面,你学习了一个新的框架,可能会让一个网站更快,但很可能更慢。
在我看来,Wordpress是过度使用框架的一个很好的例子。在我从事自由职业的日子里,我经常做一些需要我“改造一个wordpress站点”的工作--结果却发现一个几乎不能加载的站点,因为有人把他们能找到的每一个插件都插上了,然后把一个愚蠢的简单站点做成了一个没有涂过油的油箱。在这种情况下,这是过度杀伤力。
以我在首席技术官和技术主管职位上的经验,当有人把Wordpress和jQuery作为他们简历上的主要要点时,对我来说,这是在现实世界中(我在Windows8这样的大型项目和其他类似规模的项目中工作)经常出现的情况:我对OOP一窍不通,也不知道如何在需要的时候使用这些语言。微软明确禁止在微软发布的产品的metro应用程序系统中使用jQuery,因为他们想要炫耀自己的系统依赖性。
然而,其他公司确实使用框架。我刚刚使用Foundation完成了一个项目,它很棒--但这是因为项目的架构师充分研究了这个框架,我们正确地使用了它。结果是一个完全响应的原始代码库,从完全的显示器荣耀到三立方大小的智能手机屏幕令人惊叹。
简写:
框架,如果使用得当,可能会很棒--特别是对于大型项目(我说的是大型企业)。对于较小的项目,它们不一定是坏的-但当使用它们而不考虑其实现时,就像使用手术刀一样。
就我的两分钱。
发布于 2013-06-06 01:58:22
它们在
中是必需的吗?
不,它们不是,当然可以在没有框架的情况下编写任何代码。但这是更多的工作,这就像:当我可以通过编写汇编程序来做同样的事情时,为什么我还要使用C?
那么为什么会有这么多人使用
框架呢?
使用框架的好处是,您可以使用许多预定义的东西。例如,在大多数PHP框架中,您可以使用MVC模式。当然,您也可以使用平面PHP构建自己的MVC结构,但这就像每次都要重新发明轮子一样。唯一的问题是,如果你有非常特定于的需求,你可以/不应该使用框架,但在大多数情况下,需求并不是那么具体。
MVC的要点只是众多好处中的一个。根据您想要使用的框架,有一些特定的好处。
所以,就像你说的那样。通过使用框架,您可以节省时间,因为您不必重新发明已经存在的一切。
您可以将框架视为工具,它可以帮助您更好、更快地进行开发。
编辑:就像Ayesh K在他的评论中提到的那样,这也是一个好处,一个框架是由许多专家开发的,所以它通常是更好的代码,遵循的原则是:“四只眼睛看到的比两只更多”。
https://stackoverflow.com/questions/16946603
复制相似问题