AccuWebHosting 推出 PHP 7 托管

已发表: 2015-12-07

AccuWebHosting 推出 PHP 7 托管

PHP 开发团队结束了 WebMaster 的漫长等待,宣布 PHP 7 立即可用。PHP 7 是世界上最流行的脚本语言(支持 81% 的网络)的下一个版本,最终于 2015 年 12 月 3 日发布。

经过八年的完成和数周的推出延迟,PHP 7 终于可以下载了。 Windows 用户可以从这里下载 PHP 7 Windows 二进制文件。 在最新版本的 PHP 中,引入了许多更改,因此 PHP 7 肯定不会向后兼容现有的 PHP 4 遗留代码,尽管它应该与 PHP 5.x 代码无缝协作。 要检查 PHP 7 中引入的更改,请参阅更改日志。

PHP 7 的主要优点

PHP 7 的语法修改最少,并且更加强调性能改进。 在过去的几个月里,对 PHP 7 进行了许多基准测试,据称 PHP 7 比其前身(PHP 5.x)快了近 200%。

PHP 7 将在最新的引擎上运行,即PHPPNG(PHP Next Generation) ,与 Facebook 的 HHVM 等解释器竞争。 HHVM 多年来一直优于 PHP,这鼓励了 PHP 7 开发团队提高能力。 多亏了 PHPPNG,PHP 7 核心引擎现在针对 CPU 和内存进行了更多优化。

根据在 PHP 7 上执行的基准测试,与最新的 5.6 版本相比,PHPPNG 引擎将内存和 CPU 利用率减半。

在这里,我们将讨论升级到 PHP 7 时将提供的一些最令人兴奋的新功能。

新运营商

PHP 7 附带了两个新的运算符,即spaceship (或组合比较运算符)和null coalesce运算符。

宇宙飞船运算符 ( <=> ) 用于使您的链式比较更简洁。 例如:

 $var1 <=> $var2

这个表达式被评估为:

 -1 如果 $var1 小于 $var2,
0 如果 $var1 等于 $var2,并且
1 如果 $var1 大于 $var2,

这基本上是以下表达式的快捷方式:

 ($var1 < $var2) ? -1 : (($var1 > $var2) ? 1 : 0)

空合并运算符 ( ?? ) 可用作常见用例的快捷方式。 例如,在 PHP 5.x 中,你会做这样的事情:

 $var1 = isset($var2) ? $var2 : "默认";

在 PHP 7 中,可以使用空合并运算符编写相同的表达式,如下所示:

 $var1 = $var2 ?? “默认”;

标量类型提示

标量类型提示是最新 PHP 版本最引人注目的功能之一。 您可以使用整数、浮点数、字符串和布尔值作为函数和方法的类型提示。 换句话说,当您将浮点值传递给整数参数时,标量类型提示只会将其强制为整数,而不会产生任何错误或警告。 但是,当启用严格模式时,当错误的类型作为参数传递时,它会抛出错误。

 <?php
函数双(int $值)
{
返回 2 * $值;
}
$var = double("8");
var_dump($var);

禁用严格模式时,上述代码不会产生任何错误。 此外,作为参数传递的字符串“8”将在 double 函数中强制转换为整数。 如果我们通过在上述代码的第一行包含指令 declare(strict_types = 1) 来启用严格模式,则只允许将整数传递给 double 函数。

 < ?php
声明(严格类型 = 1);
函数双(int $值)
{
   返回 2 * $值;
}
$var = double("8");
var_dump($var);

当启用严格模式时,上面的代码会产生一个致命错误。

返回类型提示

返回类型提示允许您定义方法和函数的返回类型。 在强制和严格模式方面,它的行为方式与标量类型提示相同:

 < ?php
函数 a() : 布尔
{
返回 1;
}
var_dump(a());

执行上述代码时,返回值将自动转换为 bool,不会出现任何错误和警告。 启用严格模式时,将引发致命错误。

HHVM 与 PHP 7

HHVM是 Facebook 开发人员创建的用于执行 PHP 应用程序的虚拟机。 2008 年,Facebook 团队开发了一个工具,将 PHP 脚本转换为 C++,以便在 Web 服务器上编译和执行。 主要目标是降低服务器资源利用率并容纳比服务器实际容量多五到六倍的流量。 为了克服这些挑战,Facebook 开发了 HipHop 虚拟机 (HHVM)。 此更改增加了服务器容量,以适应​​增加 500-600% 的网络流量。

此时,您可能会问:“是什么让 HHVM 如此之快?”

HHVM 没有将 PHP 代码编译为 C++,而是利用即时 (JIT) 编译将 PHP 代码转换为中间字节码。 然后这个字节码被进一步翻译成 x64 机器码。 现在 JIT 编译器出现了,在运行时动态运行翻译,允许所有可能的优化。 因此,您的 PHP 应用程序的性能将显着提高。

PHP 7PHPNG是真正的竞争对手和社区对 HipHop 虚拟机的回应。 HHVM 明显优于以前的 PHP 版本,但最近的基准测试表明 PHP 7 在某些情况下比 HHVM 稍快。 让我们看看 ZEND 在一些流行的应用程序上进行的一些基准测试的结果,例如 WordPress、Magento 和 Drupal:

Magento HHVM 3.7 与 PHP 7

从下表推断,您可以在相同硬件上发出多达 3 倍的 Magento 目录服务器请求,而 PHP 7 使用的内存减少了 30%。

Magento-HHVM-Vs-PHP7 比较

Magento HHVM 与 PHP 7 比较

来源:www.zend.com

WordPress HHVM 3.7 与 PHP 7

根据显示的结果,HHVM 3.7 和 PHP 7 之间没有太大区别。最有趣的事实是,与 PHP 5.6 相比,PHP 7 仅使用了 25% 的服务器执行。 因此,具有相同容量的服务器将能够为更多的用户提供服务。

WordPress HHVM 3.7 与 PHP-7 比较

WordPress HHVM 3.7 与 PHP 7 比较

来源:www.zend.com

Drupal HHVM 3.7 与 PHP 7

该图表表明 PHP 7 明显快于 HVVM,有趣的是,与 PHP 5.6 相比,Drupal 8 在 PHP 7 上的运行速度快了 72%。

Drupal HHVM 与 PHP7 比较

Drupal HHVM 与 PHP 7 比较

来源:www.zend.com

其他基准

您还可以参考 Rasmus Lerdorf 在 PHP 澳大利亚执行的基准测试。 使用箭头键浏览幻灯片。

我应该带什么去?

在 PHP 7 或 PHPPNG 之前,对于所有 PHP 版本,HHVM 肯定比 PHP-Zend 包更快。 对于大多数基准测试中的大多数脚本,PHP 7 已经证明了针对 HHVM 的更好性能。

Etsy 和 Wikimedia Foundation 等大型网站使用 HHVM,但从 PHP-Zend 包完全切换到 PHP-HHVM 包需要六个月的时间。 换句话说,从 PHP-Zend 包切换到 PHP-HHVM 包并不是一朝一夕的事。 对于小型网站所有者而言,与需要更多专业知识的复杂过渡到 HHVM 相比,过渡到 PHP 7 会容易得多。

AccuWebHosting 的 PHP 7 托管

毫无疑问,AccuWebHosting 是首批提供 PHP 7 托管的网络主机之一。 我们热情的测试团队期待已久的 PHP 最新版本。 在 PHP 7 发布后的第二天,团队借此机会在我们的 Web 托管基础设施上测试了 PHP 7。

我们很自豪地为 Linux 共享 SSD 托管和 WordPress 托管计划提供 PHP 7 支持。

AccuWebHosting 在 Linux Shared/Reseller 计划上提供 PHP 配置插件,允许客户为目录和域设置 PHP 7 版本。 我们的 Linux 共享 SSD 托管和 WordPress 托管客户可以使用以下文章将他们的旧 PHP 版本更改为 7:

从 cPanel 更改 PHP 版本

在专用服务器上支持 PHP 7

  1. 使用 Windows 专用服务器,AccuWebHosting 团队将按需安装和配置 PHP 7。
  2. 目前,cPanel/WHM 不支持 PHP 7,因此无法在 cPanel 专用服务器中使用 PHP 7,除非使用 CloudLinux 操作系统。 一旦 cPanel/WHM 开始支持 PHP 7,就可以通过 WHM EasyApache 添加它。
  3. Linux 专用服务器(无 cPanel)客户可以根据自己的要求安装和配置 PHP 7。

在 Windows VPS 上支持 PHP 7

我们所有的 Windows VPS 计划都支持 PHP 7。Windows VPS 客户需要提交票证才能安装和配置 PHP 7。

在 Linux VPS 上支持 PHP 7

Linux VPS(无 cPanel)客户可以根据自己的要求安装和配置 PHP 7。 由于 cPanel 不支持 PHP 7,cPanel VPS 客户需要等到 cPanel 推出 PHP 7 支持。 一旦 cPanel 开始支持 PHP 7,就可以通过 EasyApache 添加它。