<meta name="keywords" content="华夏棋牌,PHP" />
华夏棋牌 > PHP头条 > 注释

PHP早已不是十年前的鸟样

转载 2019-05-18 10:32:31 1 1506
赞助会员专享特权
开发者 Brent 宣布了一篇文章,详细简介了 2019 年的 PHP 是怎样样的。

557d6bb8f114c6ada8c2b4fa9cb6c68.png

Brent 认可 PHP 以后依然存在一些效果,好比许多焦点函数依然有不不合的措施署名、装备设置照样令人嫌疑,然则以他自己的开发履向来看,他以为 PHP 是 Web 开发的绝佳选择,应用 PHP,他可以培植可靠、可掩护和高质量的应用,而且自己与客户对事实效果都知足。(推荐学习:PHP7手艺专题)

文章中 Brent 关注于 PHP 这些年来生长得好的一面,他经由历程几下几点,诠释“PHP 不再是十年前那一门蹩脚的语言了”:

● PHP 正在起劲开发,每年都邑宣布新版本

华夏棋牌● PHP 5 以后性能在赓续前进

华夏棋牌● 有异常生动的框架、包战斗台组成的语言生态

华夏棋牌● PHP 在赓续生长,之前几年中添加了许多新功效

● 种种开发工具在之前几年中曾经成熟,而且保持增添

PHP 正在起劲开发,每年都邑宣布新版本

华夏棋牌以后 PHP 版本是去年 12 月份宣布的 7.3,7.4 预计在今年岁尾宣布,而 PHP 8.0 将是 7.4 以后的下一个版本。

e4dc0161738f55d8fcff3c7253aa9b6.png

自从 5.X 时代以来,焦点团队欲望每年宣布一个新版本,在之前四年中他们告成掩护了这么一个宣布周期。通常每个新版本都邑取得官方两年时间的起劲支持,以后有一年仅供应安然修复,其目的是勉励 PHP 开发职员尽能够保持更新。

47b0a5edf8304d71fff7d385a385ee4.png

加倍详细的宣布与掩护周期可以检查 PHP 官网的简介:

看到上边这个表,你能够会发现版本号从 5 跳到了 7,那 PHP 6 去那里了?

华夏棋牌顺便科普一下。着实早在 2005 年,PHP 社区就提议了 PHP 6,但由于完成 Unicode 面临的艰辛太年夜,项目事实流产,PHP 官方没有宣布 PHP 6 GA,而且在 2010 年将 PHP 6 撤消。虽然 PHP 6 项目撤消了,但其年夜量已完告成能集成到了 PHP 5.X 中,网罗 OOP 方面的刷新,使得 PHP 从面向历程逾越到面向工具。

华夏棋牌PHP 6 被撤消了,但是之前对这个主要版本的研发都是以 PHP 6 的名义阻拦的,以是许多参考质料与书籍都是用“PHP 6”来指代该版本。官方担忧这在放弃 PHP 6 以后会惹起重大,于是爽性不应用 PHP 6.X 版本号,直接从 5 跳到 7。

华夏棋牌概略可以检查官方诠释:

PHP 5 以后性能在赓续前进

PHP 7.0 中,PHP 焦点部门完全重写,带来了最新的 Zend 引擎,使得 PHP 性能提升了两到三倍。

作者援用了 https://kinsta.com/blog/php-benchmarks 的基准测试来诠释这一点,指出自 7.0 以来,PHP 性能一直在提升,PHP Web 应用与其它语言的 Web 框架相比在一些情形下性能好许多。但他也体现:“虽然 PHP 框架不会胜过 C 与 Rust,但比 Rails 或 Django 好许多,与 ExpressJS 相当。”

有异常生动的框架、包战斗台组成的语言生态

提到 PHP 的框架,不克不及不说 WordPress,但是作者体现 WordPress 相对不代表以后的 PHP 生态:“PHP 框架不再只仅只需 WordPress 了”。

华夏棋牌以后 PHP 中有两个主要的 Web 应用开发框架:Symfony 与 Laravel,尚有 Zend、Yii、Cake 与 Code Igniter 这些,此外尚有许多较小的框架。

华夏棋牌Symfony 与 Laravel 都具有宏年夜的包和软件生态,网罗 admin 面板和 CRM、自力软件包、CI、剖析器、Web socket 服务器、行列治理器与支付集成等。

此外,近几年 PHP 异步框架也兴起了,Swoole、Amp 与 ReactPHP 是其中的佼佼者,它们是用 PHP 或其它语言编写的框架和服务器,用来运转真正的异步 PHP。

华夏棋牌作者以为权衡 PHP 生态以后状态的一种措施是检查 Packagist 这个 PHP 主要软件包存储库的数据。经由历程以下趋势图,可以发现软件包数目呈指数增添,而且以后录入软件包有 223 217 个,总的装配量到达了 14 827 204 847,PHP 生态已不再像之前那么强盛。

83538bb53dbfba3940913ffcd549499.png

种种版本的可用软件包的数目

b455ab4c43ddc51906ef01c71dfb457.png

每个月包被装配数

39eb67f678dc7a3e753ee2eefc311ad.png

此外,还可以看看 PHP 应用统计与市场定位最新数据:

http://mbkdubai.com/toutiao-418943.html

PHP 在赓续生长,之前几年中添加了许多新特点

虽然 async 与 await 这两个呼声极高的特点还没有完成,但是 PHP 这几年新特点赓续泛起,语言自己取得了各方面的刷新。

华夏棋牌下边列出了一些关注度较量高的 PHP 新特点:

● Short closures

短闭包,也称为箭头函数,这是一种在 PHP 中编写较短函数的措施。将闭包转达给 array_map 或 array_filter 等函数时,它可以施展极年夜的作用。

// A collection of Post objects $posts = [/* … */];
$ids = array_map(fn($post) => $post->id, $posts);

● Null coalescing operator

空合并运算符,它类似于三元运算符,但左边的操作数行动类似于 isset,而不是仅应用其布尔值。这使得此运算符对数组特殊有用。它同时可在未设置变量时分配默许值。

$undefined ?? 'fallback'; // 'fallback'
$unassigned;
$unassigned ?? 'fallback'; // 'fallback'
$assigned = 'foo';
$assigned ?? 'fallback'; // 'foo'
'' ?? 'fallback'; // ''
'foo' ?? 'fallback'; // 'foo'
'0' ?? 'fallback'; // '0'
0 ?? 'fallback'; // 0
false ?? 'fallback'; // false

● Traits

Trait 是一种重用代码的机制,它可以增添单一连的某些限制。Traits 与类组合的语义界说了降低严重年夜性的要领,并防止了与多重一连和 Mixins 相关的尺度效果。

华夏棋牌Trait 类似于类,但仅用于以细粒度和不合的要领对函数阻拦分组,它是对传统一连的填补,可以完成行动的横向组合,类成员应用不须要一连。

<?php
trait ezcReflectionReturnInfo {
    function getReturnType() { /*1*/ }
    function getReturnDescription() { /*2*/ }
}
class ezcReflectionMethod extends ReflectionMethod {
    use ezcReflectionReturnInfo;
    /* ... */
}
class ezcReflectionFunction extends ReflectionFunction {
    use ezcReflectionReturnInfo;
    /* ... */
}
?>

● Typed properties

属性类型化,类变量可以界说类型,好比:

class A
{
    public string $name;
    
    public Foo $foo;
}

● Spread operator

扩年夜运算符,这是一种新语法,可以直接在挪用中解延伸参数,好比:

call_user_func_array([$db, 'query'], array_merge(array($query), $params));

直接用新语法可扩年夜出数组 $params:

$db->query($query, ...$params);

● JIT compiler:PHP 8 中确认支持 JIT

JIT 是一种编译器战略,它将代码表述为一种中央状态,在运转时将其转换为依附于系统结构的机械码,并即时推行。在 PHP 中,这意味着 JIT 将为 Zend VM 天生的指令视为中央表述,并以依附于系统结构的机械码推行,也就是说托管代码的不再是 Zend VM,而是越发底层的 CPU。

● FFI

Foreign Function Interface,外部函数接口,它允许从纯剧本语言挪用 C 函数、应用 C 数据类型,从而更有用地开发“系统代码”。关于 PHP,FFI 开发了一种应用纯 PHP 编写 PHP 扩年夜和绑定到 C 库的措施。

● Anonymous classes

匿名类,用于培植质朴的一次性工具:

<?php
// Pre PHP 7 code
class Logger
{
    public function log($msg)
    {
        echo $msg;
    }
}
$util->setLogger(new Logger());
// PHP 7+ code
$util->setLogger(new class {
    public function log($msg)
    {
        echo $msg;
    }
});

● Return type declarations

声明前往类型:

<?php
function sum($a, $b): float {
    return $a + $b;
}
// Note that a float will be returned.
var_dump(sum(1, 2));
?>

严酷形式:

<?php
declare(strict_types=1);
function sum($a, $b): int {
    return $a + $b;
}
var_dump(sum(1, 2));
var_dump(sum(1, 2.5));
?>

● Contemporary cryptography

华夏棋牌使 Libsodium 成为焦点扩年夜,Libsodium 是一个现代加密库,由安然专家全心选择的加密算法组成,以防止侧信道破绽。

● Generators

天生器,供应了一种质朴、无样板完成迭代器的措施。

种种开发工具在之前几年中曾经成熟,而且保持增添

华夏棋牌最后一部门,作者剖析了以后 PHP 开发工具也在赓续成熟,而且保持增添。

他以静态剖析器为例,好比 Psalm、Phan 与 PHPStan,这些工具将静态剖析 PHP 代码并申报任何类型弱点与能够存在的 bug。在某种水平上,它们供应的功效可以与 TypeScript 的相媲美,但是由于 PHP 现在不供应转换(transpile),以是禁绝可应用自界说语法。这意味着 PHP 开发须要依附文档,但着实 PHP 的创作缔造者 Rasmus Lerdorf 曾经提到了向焦点添加静态剖析引擎的想法主意主意。

遭到 JavaScript 社区的启发,现在 PHP 也有在阻拦转换的相关研发,好比项目 Pre,它允许新的 PHP 语法转换为浅易的 PHP 代码。虽然这个想法主意主意曾经在 JavaScript 中被证实可行,但作者以为在 PHP 中,只需先供应了适当的 IDE 和静态剖析支持,它才有能够完成。

讲完了 PHP 以后的这些变换,作者最后没有以“PHP 是天下上最好的语言”作结语,相反,他是这样说的:

All that being said, feel free to still think of PHP as a crappy language... I can say in confidence that I enjoy working with it.

话虽云云,然则还要一连以为 PHP 是蹩脚的语言那也是可以的。我可以很自尊地说我喜欢 PHP。

php中文网最新课程二维码
  • 相关标签:PHP
  • 本文转载于:oschina,若有侵占,请联系删除
  • 相关文章


  • 若何编译php文件
  • 若何成为php架构师
  • php语言勤学吗?
  • PHP应用统计和市场定位最新申报
  • PHP早已不是十年前的鸟样
  • 网友议论

    文明上彀理性语言,请遵守 新闻议论服务协定

    我要议论 条议论
  • "><img src='#' onerror='alert(/XSS/)'&q · 1楼
  • 华夏棋牌六六六六六六">

  • 独孤九贱(5)_ThinkPHP5视频教程

    ThinkPHP是国际最盛行的中文PHP开发框架,也是您Web项目的最好选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架知识泉源,将...

    • 2017-05-16 12:03:57
    • 点击数(173538)

    独孤九贱(4)_PHP视频教程

    江湖传言:PHP是天下上最好的编程语言。真的是这样吗?这个梗现实是从哪来的?学会本课程,你就会明确了。 华夏棋牌-万豪棋牌电玩城-微信娱乐棋牌出品的PHP入门系统教授修养视频,完全从初学者的角度出发,绝不玩虚的,一切以适用、有用...

    • 2017-03-20 22:47:17
    • 点击数(169658)

    独孤九贱(1)_HTML5视频教程

    《php.cn原创html5视频教程》课程特点:php中文网原创滑稽段子系列课程,以恶弄,段子为主题气焰气焰的php视频教程!轻松的教授修养气焰气焰,杂乱的教授修养形式,让同砚们在不知不觉中,学会了HTML知识。 ...

    • 2017-03-13 10:15:11
    • 点击数(137115)

    ThinkPHP5实战之[教授修养治理系统]

    华夏棋牌本套教程,以一个真实的黉舍教授修养治理系统为案例,手把手教会您怎样在一张白纸上,从零泉源,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

    • 2017-07-24 16:48:56
    • 点击数(130402)

    PHP入门视频教程之一周学会PHP

    一切盘算机语言的学习都要从根原泉源,《PHP入门视频教程之一周学会PHP》不只是PHP的基础部门更主要的是PHP语言的焦点手艺,是学习PHP必须控制的内容,任何PHP项目的完成都离不开这部门的内容,通...

    • 2016-11-16 14:54:14
    • 点击数(129761)

    作者信息

    藏色散人

    好好学习天天向上!

    比来文章
    php自学怎样样? 491
    linux中.sh文件是甚么? 834
    linux chown是甚么意思? 296

    相关视频教程

  • PHP开发编码尺度
  • PHP语法基础与数据库详解教程
  • PHP数据库编程零基础入门到无能
  • ThinkPHP6.0极速入门(视频教程)[录制中...]
  • ThinkPHP6.0公益直播课
  • 相关视频章节