我已经听过很多关于PHP框架的内容,比如ZEND,CodeIgniter,CakePhp等,我也很清楚使用它的一些优点,即提高生产力,减少错误等但是php框架不会使编码成为一个复杂的过程吗?没有框架的编码是否提供更大的灵活性?有些人说你不需要任何额外的框架,因为PHP本身就是一个框架。
那么为什么PHP框架的用量如此之多?框架在PHP中真的是必要的吗?
答案 0 :(得分:7)
这是一个广泛的问题,我认为这是一个重要问题。除非绝对必要,否则我不会使用框架。问题是,什么时候有必要?
首先,我认为我对框架的这种奇怪的,过敏的反应是,没有经验的编码员想要将它们用于一切,甚至是小型网站....而且这很奇怪。也许它需要通过说他们已经使用了codeigniter来使他们的简历变得更大 - 但根据我的经验,这并没有太大的差别。招聘经理想要SKILLSETS,而不是那些能够阅读API文档的人 - 任何人都可以做到。如果您有关于程序架构和OOP原则的工作知识,那么您就被录用了。如果你没有,但你是一个codeigniter忍者,.... eeehhhh ....好吗?
框架有它们的用途,但我想当你的妈妈想要为她的烘焙销售制作一个网站时,你可以使用一个更轻的重量系统一起打一页。我并不认为你应该包括代码“万一你需要它”。随着时间的推移,我开发了自己的框架,这个框架非常小,这就是为什么我构建的每个网站或应用程序在Google全球网页加载时间排名前2%(尽管通常是前1%)的原因
这并不是说它们很糟糕 - 只是不要跑去使用框架,因为你想把它放在你的简历上 - 从长远来看,你实际上是在为自己拍脚。为什么?因为您不会花时间使用该语言本身,所以您将花时间使用该框架的语言。以jQuery为例 - 我在YEARS中避免使用它,因为它不是JAVASCRIPT。人们嘲笑它 - 但是现在,当我进行技术面试时,我被问到(不可避免地):“你对jQuery的体验水平是多少”,我说“不多”,他们第二次看起来很惊讶,但是然后我跟着说“但是我昨天通过本机JS中的控制反转来编写依赖注入” - 我被雇用了。
框架很棒。只要问问自己是否真的需要它们。特别是问题是:自己编码的好处是否超过了框架的时间收益(不要忘记平台的学习曲线)?一方面(非框架方法),你学到了很多,也许你花了更多的时间,因为你正在解决自己的问题 - 但你学到了很多语言本身(在这种情况下是PHP)。另一方面,您学习了一个新的框架,并且可能让网站更快,但很可能更慢。
Wordpress是我认为过度使用框架的一个很好的例子。回到我的自由职业日,我曾经接受过需要我“改造一个wordpress网站”的演出 - 只是为了找到一个几乎无法加载的网站,因为有人插入了他们可以找到的每个插件并制作了一个简单的愚蠢站点进入带有未加工踏板的油箱。在那种情况下,它是OVERKILL。
凭借我在CTO和技术主管职位上的经验,当有人将Wordpress和jQuery作为简历的主要观点时,对我说“我不知道有关OOP的事情,以及如果需要如何使用这些语言”,在现实世界中(我在像Windows 8和其他大型项目这样的巨大项目上工作) - 就像OFTEN一样。微软明确禁止在他们的城域应用系统中使用jQuery来发布MS产品,因为他们想要免费展示他们的系统依赖。
然而,其他公司使用框架。我刚刚使用基金会开始了一个项目并且很棒 - 但这是因为该项目的架构师对框架进行了全面研究,我们使用了它。结果是一个完全响应的原始代码库,从完整的显示器荣耀到三分之一大小的智能手机屏幕真棒。
简称:
框架,如果使用得当,可能很棒 - 特别是对于大型项目(我说的是企业大)。对于较小的项目,它们不一定是坏的 - 但是当它们被使用而不考虑它们的实现时,它就像使用手术刀的斧头一样。
只需2美分。
答案 1 :(得分:6)
php框架不能使编码成为一个复杂的过程吗?
这取决于你想做什么。如果你所做的只是为一个静态HTML的网站创建一个基本的联系表单,那么使用框架会使它成为一个更复杂的过程。另一方面,如果您正在构建一个大型应用程序,那么使用框架不一定会使它更复杂。
没有框架的编码是否提供了更大的灵活性?
这取决于框架本身,它们并非完全相同。像Slim或Codeigniter这样的一些框架非常简洁,不会过多,因此不会对灵活性造成影响,有些框架更复杂,例如Symfony2 / Zend。
有些人说你不需要任何额外的框架,因为PHP本身就是一个框架。
他们是对的,你在技术上不需要框架,你可以使用普通的PHP做任何事情,你可以用框架做。框架实际上是从开发人员的个人档案函数和帮助程序代码演变而来的。 PHP可以相对较低,因为它没有现成的功能来完成你需要的一切。在框架之前,开发人员倾向于拥有自己的一组帮助程序代码,这些代码可以在许多项目中重用。框架仍然基本上是这样,除了它们是数百或数千名开发人员贡献的协作项目。
框架的另一个好处是,如果你有几个开发人员,一个开发了一个应用程序,你希望另一个开发人员为它做贡献或接管它,那么如果开发人员熟悉他可以得到的框架在应用程序上加速比在PHP中编写的速度快得多。如果没有框架,新开发人员在开始考虑添加任何新功能之前,必须解密以前的开发人员系统。
答案 2 :(得分:2)
它们在PHP中是否必要?
不,他们不是,确定没有框架可以编写任何代码。但它更多的工作,这就像:当我可以通过编写汇编程序来完成所有操作时,为什么我使用C?
那么为什么PHP框架的用量如此之多?
使用框架的好处是,您可以使用许多预定义的东西。例如,在大多数PHP框架中,您可以使用MVC Pattern。当然你也可以使用平面PHP构建自己的MVC结构,但这就像每次重新发明轮子一样。唯一的问题是,如果您有非常特定要求,您可以/不应该使用框架,但在大多数情况下,要求并不是那么具体。
MVC的观点只是众多好处之一。根据您要使用的框架,有特定的好处。
所以,就像你说的那样。通过使用框架,您可以节省时间,因为您不必重新创建已存在的所有内容。
您可以将框架视为工具,这有助于您更好更快地发展。
编辑像Ayesh K在评论中提到的那样,这也是一个好处,一个框架是由许多专家开发的,因此它通常是更好的代码,遵循以下原则:'四眼见超过两个'。