除了个人空想主义的偏好以外,还有很多情由。这才是我们要谈论的范围。为什么选 PHP 作为我的 Web 开拓措辞?
PHP 是什么?
「PHP 代表什么意思?」 或者这么问,「PHP 是什么?」 PHP 是一门编写 web 页面的措辞,底层利用 C 措辞实现,利用 HTML 的标签语法包裹代码。PHP 常日跑在做事端,与 web 做事器合营事情,卖力把 HTML 加工完返回给访问者。

PHP 最初的意思是 「 Personal Home Page 」。由于这完备限定了利用该措辞进行一样平常利用的意义和可取性,以是该措辞现在代表「 PHP:Hypertext Preprocessor」。这种写法被称为递归缩写(一种全称中引用自己的缩写)。 极客们都喜好用这种名字。
PHP 能做什么?
PHP 能用来做什么?常日来说 PHP 能做任何你想在 web 做事器上实现的东西。 比如说做一个博客。实现一个 SAAS 运用也完备不在话下。写一个临时处理数据的脚本也是得心应手。又或者写了一个繁芜的脚本,某一天溘然变成了一门成功的软件业务?过去也常常发生。
如果你不相信我,可以看下 PHP 官网列出利用场景:
做事端脚本命令行脚本编写桌面运用我不太鼓励末了一项,但它确实可行。但是前两项确实是很棒的情由 。
这就引出了一个主要且无法回避的事实...
PHP 无所不在
理解和喜好 PHP 的情由有非常多,可能最给力和有效的情由是:它可以在网络的任何地方利用和运行。如果你仔细探求,你买到每月最低3美元的托管账户可能可以运行 Python 或 Ruby 的 Web 运用程序。但它肯定能运行 PHP 。这意味着无论什么时候你都可以依赖 PHP 。
由于 PHP 可以运行在任何地方,并且它随意马虎上手,很多非常受欢迎的软件都是用 PHP 写的。 WordPress 是对我影响最大和最熟习的例子,除此之外,像 Joomla , Drupal , Magento , ExpressionEngine , vBulletin (是的,它仍旧存在), MediaWiki 等这些工具,它们都在做事器上运行 PHP 。
不仅如此,PHP 运用框架更是多得数不胜数, 比如:Symfony , Zend , Laravel , Aura , CakePHP , Yii 乃至是古老的 CodeIgnitor 框架。当然你可以为其它任何一门措辞制作一些长度相称的 Web 框架列表。比如常用的 Web 措辞像 Python , Ruby ,或 Node/JavaScript ,你乃至可以积累一个数字竞争列表来跟 PHP 比较。但运行 PHP 的网站数量弘大到无法估计。
WordPress 自满地声称在互联网上有 30% 的用户量。 你乃至不须要相信这个说法就会意识到许多的互联网运用必须利用 PHP 纵然这个说法乃至可以想象成是真的。
PHP 的优点
动态化特点
PHP 和 HTML 可以非常融洽地事情在一起。将 file.html 修正为 file.php ,即可在 <?php 和 ?> 标签里编写 PHP 代码,并且大部分的 Web 做事器默认配置便是可以直接运行 PHP 脚本。正由于其门槛非常低,不须要懂太多编程知识的菜鸟程序员也可以直接上手操作,以至于产生了很多低品质的代码。
由于其易学性,大量的菜鸟程序员涌入,暴露出来另一个 PHP 一贯被人诟病的问题:PHP 并没有对自己是最好的 Web 做事器端措辞有清晰的远景,当然也没为此做过太好的设计。导致走向了另一个结果,来自环球各地疏松的互助,大杂烩般地贡献代码和想法,难以避免地,有一些坏的想法渗入个中。
拥有强大的面向工具包管理是现在 PHP 中的一种标准
Composer 是 PHP 的加分项。
在 PHP 的开拓中,常常会有一些奇葩的东西被发布出来。最著名的栗子当属 PHP 5.3 (广泛的被视为 PHP 的第一个当代化版本 )中引入 goto 声明。
类似的问题是在 PHP 发展过程中产生:面向工具最初是作为一个有缺陷和有限定的观点来实现的,标准库中充满了不一致的名称和参数排序,并且(举个比来备受关注的栗子)在 PHP 5.3 中 :: 操作符无法识别时,解析器会抛出可读性很差的报错信息:语法缺点 (T_PAAMAYIM_NEKUDOTAYIM) ,如果不看文档,你能用英文来理解这个 T_PAAMAYIM_NEKUDOTAYIM 标示的意思吗?
但是现在,PHP 已经完备支持 OOP。很少措辞具有像 PHP 这样类似 Java 的 OOP 实现。其余,与 Java不同的是,PHP 有一个单独的并拥有广泛支持的包管理器,叫作 Composer。它非常的好用,并且不容忽略的一点是它可以方便地引用优质且掩护良好的库,具有很高的易用性。
PHP 的高速发展
通过这些事实创造, PHP 正在以有趣的办法发展着。它正逐渐成为像java一样功能完好的面向工具措辞(更好或更糟糕),正在为函数式编程供应大略的抽象,这可以说是当前的热点。并且,正在发展一套非常棒的工具, PHP 喜好 Composer , 并有充分的情由 --- 由于它在一些大型开源项目的协同事情上做出了值得赞赏的努力.
当然,我们不应该忘却当前的热点:PHP 在 PHP7 系列版本中的发展取得了速率上的提升。这被广泛认为是由 Facbook 涌现的 HHVM 引起的,在短韶光内,存在 HHVM 的发展速率会毁坏 PHP 社区的风险,但事实并非如此,相反,PHP 的发展速率快得多,以至于人们险些忘却了 HHVM 的存在。
PHP 有一个巨大的社区;它对新手友好。
如果你决定利用什么很酷的新技能,我认为常常得到很少关注的是与措辞达成协议的办法。学习PHP是什么觉得? PHP教程很好找,质量常日也很好。
PHP盛行的一个缺陷是,你会从那些对工具不足理解的人那里找到一些不那么好的传授教化。或者从某人那里学到的“最佳实践”是十年前的。但总的来说,这很少见,我不认为它该当让你灰心。或者溘然创造自己利用了几个月的最佳实践并不是最好的是很少见的,也不是一个大问题。
PHP 与其他措辞的比较
接下来我们要比拟下 PHP 与其他的措辞,这些措辞需知足以下哀求:
开源:意味着你可以自由、免费地利用或者查看底层措辞或者程序;运用于 Web 开拓领域:不一定是专注于 Web 开拓,但是在 Web 开拓中有比较大的运用;高阶动态措辞:具备动态措辞的特性,大部分面向 Web 运用的措辞兼具此特性;足够大的社区:有很多知足以上条件,但是只是在小范围利用的措辞,我们利用这末了一个条件将他们过滤掉。为什么利用 PHP?而不是 JavaScript?
大概和 PHP 比较的最主要的措辞是 JavaScript。当代开拓哀求每个项目都至少会一点 JavaScript 来进行客户端开拓和交互。借助 Node,这使得在做事器上利用 JS 变得相对大略。在做事器上和客户端“同构”利用相同的措辞非常吸引人。
犹如 PHP,JavaScript 是一个兼容并蓄但有时丑陋的措辞,有很多的瑕疵和“陷阱”,但 JavaScript 在过去十年变得非常快,以是他的情形是真实的。为什么选择 PHP 而不是 JavaScript?你已有专业知识或者在 PHP 利用库。否则,我认为 JavaScript 或许是个更好的选择。
PHP 比拟动态做事器页面 (.Net Core)
动态做事器措辞起源于一个用于网友编程的 Microsoft 措辞。他和 PHP 非常直接相似。但他运行在 Windows 做事器环境。这被 ASP.net 取代了。现在已被 ASP.NET Core 取代。后两者现在是 PHP 一样的开源措辞。而我个人从没有在任何变体中写过一点 ASP。
如果我利用且更喜好 Microsoft 做事器的话,我会更喜好 ASP。其他情形,请给我 PHP。两者社区的规模和大小没有可比性。
我该当利用 Ruby 还是 PHP?
Ruby,特殊是 Ruby on Rails,在过去十年前 非常 受欢迎。Ruby 依然是一个备受喜好的措辞,这在我看来他比 PHP 优雅。也便是说,他的社区较小。同时我认识到 Ruby 已经不再是 \"大众热门措辞\公众(被 JavaScript 取代了此角色)。Ruby 的优雅,并且有足够多的人善于利用,因此我不会避免他。但招聘已熟习 Ruby 的人依旧比招聘 PHP 要难。(虽然我认为一样平常的 Ruby 开拓者水平比相同的 PHP 开拓者要高。)
Python vs PHP:谁更好一些?
末了一种与 PHP 一对一比较起来故意义的是 Python 。 Python 的利用场景要更多,相对付专注于 web 开拓的 PHP 来说(尤其是在数据统计与剖析上面)。而且人们普遍都以为它是一种更为更稳定和优雅的措辞。
就像 Ruby 和 JavaScript 一样, Python 在做事器上运行要比 PHP 轻微麻烦一点。但是它是一种非常完美的措辞,而且比起 PHP 的利用更具多样化,我认为它是比 PHP 更盛行的措辞之一,而且在其他方面(例如:各种第三方的库、专业技能知识的获取、招聘求职)都是一样的。
PHP vs Go 措辞?Scala措辞?Java措辞?等等
一开始曾提到过,许多措辞在做比较时或多或少会有一些相似的地方。这里有很多的措辞可以拿来做比拟,因此大略的聊几个:
java 非常受欢迎,并且效率很高。常日被用来搭建安卓运用程序,桌面运用程序,和 web 端运用。不过,它不是动态类型的,它有更好的性能担保,但很适宜Web 编程。Go 是 Google 支持的正在发展的一门新措辞。它专注 web 做事。但是这块比较 PHP 还是有些不敷(更像 C 措辞),它的实行速率很快,但是社区相对有限。Scala 是一种盛行的运行在内存区(Java 兼容)的措辞,也彷佛越来越受欢迎。它比 PHP 设计的更优雅,但是除此之外,彷佛没有更多了。此外,我以为这些剖析足够可以做出选择了,但是你有更多的选项可以去考量,不过末了我的替代方案将会考虑 PHP。
须要按需选择编程措辞
有了上面的比较,为什么还要利用 PHP ?上文我已经提过了一些 PHP 里坏的设计,有一些我常常性会经历,例如在『查找类型的函数』里,这些函数needle 和 haystack 顺序不一致,在没有代码补全的环境下,我还是会掉坑里。
如果你在构建一个全新的 Web 项目,并且此项目不须要与其他系统交互,并且只有你一个人在事情,你想试试看其他措辞,类似 Python 什么的。但是,你须要知道的是,纵然是这样的一个项目,还是有很多情由让你选择 PHP。
任何当代化的措辞都可以让你构建一个 Web App。每一门措辞都有他们不敷之处,例如 PHP 便是这样的,PHP 哀求你清晰地理解其不敷之处,然后才能决策是否要在项目里利用它。但是对付我来说,我仍旧会选择 PHP 来构建我的 Web 项目,就如 Keith Adams 在其 演讲里 提到的:
PHP 的开拓效率真不是一样平常的高。
如果你有一个 Python 的团队,请利用 Python。如果你有个合资人熟习 Java,请利用 Java 来编写你的 SaaS 程序。措辞,永久都不是最主要的。
文章转自: https://learnku.com/php/t/24576