PHP注释每月

PHP注释-十月2021

PHP注释每月

问候大家!
下面是过去一个月里PHP世界的一些亮点。

  • PHP 8.1 RC3发布了,第一个使用枚举的包已经可用了!
  • Magento的社区分支已经宣布。
  • 除了psr之外,还将有一种新的推荐类型,称为PERs。
  • Symfony 6将是完全键入的-如何更新?
  • 针对PHP 8.2提出了新的优化数据结构和独立的空类型。
  • 已经发布了一个带有disable_functions的PHP漏洞,尽管它实际上不是一个真正的漏洞。

你可以在10月版的PHP注释中阅读更多关于这一新闻。像往常一样,我们为您精心挑选了各种优秀的文章、工具、视频和流媒体。

⚡️新闻

  • PHP 8.1 rc 3

    发布了第三个候选版本时间表.要了解PHP 8.1中的新特性,请查看PHP 8.1有什么新功能PHP 8.1:之前和之后职位。一个全面的变更列表是可用的在PHP。看

    PHP 8.1的迁移指南现在也有。

    你可以试试PHP 8.1码头工人,例如在Mac上使用php:8.1-rc-cli映像通过自制程序,或者你可以随便找找3 v4l.org

    第一个使用PHP 8.1中的枚举的包已经可用了!
    alexanderpas / php-http-enum—带有http响应消息的状态码和文本的枚举。

  • PHP 8.0.117.4.247.3.31

    用安全修复程序更新受支持的分支cve - 2021 - 21706

    此修复解决了一个导致错误的问题ZipArchive:: extractTo在Windows上使用特定的文件路径名在目标目录外解压缩压缩文件。

  • Magento的未来

    这封来自Magento社区成员的信宣布,Magento将会有一个社区组织运行的分叉。目标是确保Magento的长期开源生命。

    此前,Adobe宣布他们计划将Magento分解成微服务。这究竟将如何发生尚不清楚。这就是为什么要创建一个分叉。它将与Adobe的Magento兼容,只要后者是开放的。

  • PhpStorm 2021.3早期访问程序是开放的

    PhpStorm 2021.3早期访问计划正在全面展开。每周我们都会发布新的版本,允许您在正式发布之前尝试新功能。

    即将发布的主要版本将包括对PHP 8.1的完全支持、对泛型的许多改进、部署的新选项、更新的调试器接口等等。

  • PER工作流- PHP-FIG

    PHP- fig已经批准了PHP演进建议的想法。除了PSR标准之外,现在还将有PERs,这是一种可以永久更改和补充的建议。例如,在代码样式的情况下,可以添加新的规则来反映新的语言特性。

  • 要绕过PHP中的“漏洞”(不是)disable_functions

    研究人员最近发表属性设置的约束的方法disable_functions指令php . ini

    您可以使用disable_functions禁止在PHP脚本中使用某些函数。例如,你可以禁止系统执行proc_openshell_exec阻止对外部程序的调用。
    你不能禁止eval (),因为它不是一个函数,而是一种语言构造。

    旁路问题不能称为漏洞,因为disable_functions不是一个安全特性,依赖它来保证安全是一个坏主意。


    了解更多关于PHP安全问题的信息:wiki.php.net/security

    如果你有兴趣更详细地理解这个问题,有一个很酷的disable_functions的工作原理以及这些漏洞是如何建立起来的。另一个甚至解释了你是如何做到的自动搜索此类问题

    另外,请查看对一个真实的RCE漏洞的分析fiveai /声望, Laravel的一个热门项目:通过Laravel配置注入执行代码

  • 作曲家/作曲家2.1.9

    此更新修复了Windows (cve - 2021 - 41116).Windows用户一定要更新。

  • PHPOpenDocs.com

    下面是一个为PHP相关内容创建社区站点的实验。

    它已经有了一个有用的支持页面提供按PHP版本分组的贡献者列表,以及内部章节中有许多关于PHP代码结构和如何开始为PHP核心做贡献的资源链接。

PHP内部

  • PHP中的新数据结构

    PHP有一个通用的数组数据结构,可以用作列表、关联数组、队列、堆栈等。

    通用性是通过在引子下面使用一个哈希表实现的。但是,这种多功能性是以额外的内存使用和细微的性能开销为代价的。

    SPL有更专门化的数据结构,但它们也有自己的包袱。

    Tyson Andre建议向PHP中添加新的优化数据结构。

    实现这一目标的一个选择是添加流行结构php-ds / ext-ds扩展,但它的作者不支持这个想法。在GitHub上的这个线程让我们对这场辩论的细节有所了解。

    所以现在有两个rfc:

    • [RFC] final class Vector向量结构——是一组具有连续索引0,1,2等的元素。它需要的内存只有当前阵列的一半,工作速度也比类似的SPL结构快。就其API而言,它只是一个带有实现的普通类
      ArrayAccessIteratorAggregate,可数名词接口。
      $values = new Vector();For ($i = 0;我美元
    • [RFC]最终类Deque是一个双向链接的队列,即在队列的开始和结束都可以添加和删除元素。你可以用它来代替SplQueueueSplDoublyLinkedList并立即看到性能和内存消耗的改进。

      双端队列也与使用大型数组的长时间运行的应用程序相关,因为它们在内存管理方面存在已知的问题。

    这些结构和其他结构的实现可在TysonAndre / pecl-teds扩展。

  • [RFC]允许空作为独立类型

    George Peter Banyard建议增加使用能力在类型声明。

    首先,这是PHP类型系统完整性所缺少的部分。有一个混合类型,从来没有类型被添加,也有联合和交叉,但单元类型不见了。

    其次,这种类型将涵盖类型提示的一些边缘情况,并改进静态分析。

    例如,目前您可以使用伪类型但不能指定函数的返回值假|零,只有bool |零

  • opcache是如何工作的

    尼基塔·波波夫(Nikita Popov)并不总是写博客,但每当他写博客时,他都会清晰而详细地描述概念。

工具

  • Xdebug 3.1.0流行的PHP调试器收到了一个更新。它提供了对PHP 8.1的支持、许多修复和一些相当小的特性。不要错过这关于Xdebug 3的系列视频由扩展作者德里克·雷森斯。
  • 螺旋/走鹃2.4-这是对Golang的PHP应用服务器的一个重大更新。该版本包括对队列、键值存储和与时态集成的支持。看到细节
  • 砖/日期-时间-一组用于处理日期和时间的不可变类。
  • php-runtime /运行时- Runtime组件将应用程序的引导逻辑从全局状态中分离出来,因此允许您在任何环境(如PHP-FPM、ReactPHP、Swoole等)中不做任何更改地运行应用程序。
    这原本是Symfony的一个组件,但后来证明它非常好,现在它是GitHub上的一个独立组织。
  • rindow / rindow-neuralnetworks神经网络训练框架基于Python Keras.根据其文档, GPU支持仅在实验模式下可用,且仅在Windows下可用。
  • piko-framework /路由器-另一个PHP路由器,这个是基于根树而且,根据基准,比Symfony路由器更快。
  • nunomaduro / termwind-一个PHP 8+包,格式化输出的控制台程序与顺风CSS风格的语法。
  • icanhazstring / random-issue-picker-如果你想参加Hacktoberfest,但不知道从哪里开始,这里有一个工具,可以在GitHub或GitLab上为你随机选择一个问题。

Symfony

Laravel

Misc

感谢你的阅读!

如果你有任何有趣或有用的链接通过PHP注释分享,请在这篇文章上留下评论或给我推特

订阅PHP注释

你的JetBrains PhpStorm团队
发展的动力