加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

开发者回忆:PHP 早已不是十年前的模样

发布时间:2019-05-15 18:43:14 所属栏目:移动互联 来源:h4cd
导读:开发者Brent发布了一篇文章,详细介绍了 2019 年的 PHP 是怎么样的。 原文地址:https://stitcher.io/blog/php-in-2019 Brent 承认 PHP 当前仍然存在一些问题,比如许多核心函数仍然有不一致的方法签名、配置设置还是令人困惑,但是以他自己的开发经验来看

Trait 类似于类,但仅用于以细粒度和一致的方式对函数进行分组,它是对传统继承的补充,可以实现行为的横向组合,类成员应用不需要继承。

  1. <?php 
  2. trait ezcReflectionReturnInfo { 
  3.     function getReturnType() { /*1*/ } 
  4.     function getReturnDescription() { /*2*/ } 
  5.  
  6. class ezcReflectionMethod extends ReflectionMethod { 
  7.     use ezcReflectionReturnInfo; 
  8.     /* ... */ 
  9.  
  10. class ezcReflectionFunction extends ReflectionFunction { 
  11.     use ezcReflectionReturnInfo; 
  12.     /* ... */ 
  13. ?> 
  • Typed properties

属性类型化,类变量可以定义类型,比如:

  1. class A 
  2.     public string $name; 
  3.      
  4.     public Foo $foo; 
  • Spread operator

扩展运算符,这是一种新语法,可以直接在调用中解压缩参数,比如:

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

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

  1. $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

匿名类,用于创建简单的一次性对象:

  1. <?php 
  2.  
  3. // Pre PHP 7 code 
  4. class Logger 
  5.     public function log($msg) 
  6.     { 
  7.         echo $msg; 
  8.     } 
  9.  
  10. $util->setLogger(new Logger()); 
  11.  
  12. // PHP 7+ code 
  13. $util->setLogger(new class { 
  14.     public function log($msg) 
  15.     { 
  16.         echo $msg; 
  17.     } 
  18. }); 
  • Return type declarations

声明返回类型:

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

严格模式:

  1. <?php 
  2. declare(strict_types=1); 
  3.  
  4. function sum($a, $b): int { 
  5.     return $a + $b; 
  6.  
  7. var_dump(sum(1, 2)); 
  8. var_dump(sum(1, 2.5)); 
  9. ?> 
  • Contemporary cryptography

使 Libsodium 成为核心扩展,Libsodium 是一个现代加密库,由安全专家精心选择的加密算法组成,以避免侧信道漏洞。

  • Generators

生成器,提供了一种简单、无样板实现迭代器的方法。

各种开发工具在过去几年中已经成熟,并且保持增长

最后一部分,作者分析了当前 PHP 开发工具也在不断成熟,并且保持增长。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读