PHP

如何延长遗留 PHP 应用程序的生命周期

PHP 正在稳步发展。每年都会有一个主要的新版本发布,其中包含新功能、性能改进、相当一部分弃用,甚至语法更改。PHP 核心开发人员维护两个最新的 PHP 版本,其中包括主动错误修复和安全修复,然后是安全修复。这实际上意味着每个主要的 PHP 版本将最多支持三年,并且现有的 PHP 应用程序将被迫升级。

PHP 8.2发布了!

PHP 8.2发布了!

PHP 8.2 为性能和细粒度类型安全、readonly类、敏感参数编辑支持、新random扩展和许多新功能带来了类型系统改进,以及一些旨在简化和现代化 PHP 语言的更改,例如:
只读类 (Readonly classes)

析取范式 (DNF) 类型
新的独立类型:null、false 和 true
新的 “Random” 扩展
traits 中的常量
弃用动态属性。

PHP 8.2 新特性

所有 PHP 7.x 版本现在都是 EOL(寿命终止)

PHP 7.4 是 PHP 7.x 系列的最后一个版本,今天达到了生命周期结束日期。这实质上意味着不会对任何 PHP 7 版本进行错误或安全修复。

PHP 7.0.0 是 PHP 7.x 系列的第一个版本,于 2015 年 12 月发布,对该语言进行了几项重大改进。PHP 7.0 是为 PHP 带来标量类型(stringint,float等)以及返回类型支持的版本。它还添加了对抽象语法树 (AST) 的支持,并删除了许多已弃用和过时的功能(例如mysql扩展)。

PHP 7.x 系列中的一些主要功能里程碑包括:

  • 2016 年的 PHP

在 Mac 上使用 Homebrew 升级到 PHP 8.2

使用 Homebrew 升级

首先确保 brew 是最新的:

brew update

接下来,升级PHP。您可以使用内置的 php 配方,但我建议使用shivammathur/homebrew-php

#正常升级

brew upgrade php

#升级用shivammathur/homebrew-php

brew tap shivammathur/php
brew install shivammathur/php/php@8.2

要在版本之间切换,请使用以下命令:

brew link --overwrite --force php@8.2

您可以在存储库中阅读更多内容。

#下一步

通过运行检查当前版本php -v

如何在 Debian 和 Ubuntu 系统上安装/升级 PHP 8.2

如何在 Debian、Ubuntu 和其他基于 Ubuntu 的系统上安装 PHP 8.2
PHP 8.2带来了主要的新特性,例如只读类、新random扩展敏感参数编辑以及语言简化更改,包括动态属性的弃用和字符串插值相关的弃用。

注意:PHP 8.2 尚未达到 GA 版本,但
PHP 8.2 计划于 11 月 24 日发布。当第一个稳定的 PHP 8.2 版本发布时,此通知将被删除。在此之前,本指南的其余部分将安装 PHP 8.2 的最新候选版本。对于生产服务器,建议等到 GA 发布。

    

PHP 8.2 中弃用的动态属性

与次要版本一样,PHP 8.2增加了一些弃用。弃用通常是令人沮丧的根源,但重要的是要意识到它们实际上非常有帮助。我已经写过关于处理一般弃用的文章,所以如果你已经感到沮丧,也许最好先看看那个帖子。今天,我想关注一个特别是在 PHP 8.2 中的弃用:弃用的动态属性。

所以首先,什么是动态属性?好吧,它们是类定义中不存在的属性,但在运行时动态设置在这些类的对象上。

例如这个Post类没有name属性,但是我们在运行时设置它:

class Post
{
}

// …

$post = new Post();

$post->name = 'Name';

var_dump($post->name); // 'Name'

自 PHP 8.2

    

使用PHP做 http pxory 缓存&代理, 使用redis做缓存,支持毫秒过期,拥有超高性能

使用PHP做 http pxory 缓存&代理, 使用 redis 做缓存,支持毫秒过期,拥有超高性能

<?php

 //PHP http pxory 缓存&代理, 使用redis做缓存,支持毫秒过期,拥有超高性能

 $url=@$_GET['url'];
if (empty($_GET['url'])) {
     echo 'url is empty ';
     exit;
}

 $path=parse_url($url, PHP_URL_PATH);
 $key=$path;

 $redis = new Redis();
 $redis->pconnect('127.0.0.1', 6379);

if ($content=$redis->get($key)) {
     echo $content;
     exit;
}