PHP

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;
}

 
                        

PHP 8.2 新特性

PHP 8.2 将于2022 年 12 月 8 日发布。在本文中,我们将逐一介绍所有新特性、性能改进、更改和弃用。

只读类RFC

PHP 8.1 中引入了只读属性。此 RFC 构建在它们之上,并添加了语法糖以使所有类属性同时变为只读。代替这样写:

class Post
{
    public function __construct(
        public readonly string $title, 
        public readonly Author $author,
        public readonly string $body
            

PHP 正在干掉 Python

PHP 正在干掉 python .
在流行文化的冲击下,也许很多人都不赞同本文表达的观点,但我毅然决定再一次逆流而上。我认为,虽然 PHP 百般受轻视,但这门编程语言的流行度比以往任何时候都高!
为什么?怎么 PHP 还没死吗?不是有那么多比 PHP 更优秀的编程语言吗?
不,并没有。如果真的有这样的语言的话,它们早就带头干掉 PHP 了。我们需要重新审视什么才是“更好”的编程语言。
为什么 PHP 还没死?如果你表示不解,那可能是因为你并不了解编程、程序员、市场和民主。实际上,这与代码、函数或语法没有任何关系。

抨击 PHP 成为了一种时尚

 
如今,为了在编程的圈子内走红,你就必须抨击与“主流文化”吹捧的编程语言有竞争关系的语言。这与语言本身的功能无关,只是因为文化,就有点像宗教。
程序员是一群固执己见的人,非常傲慢,但我们必须克服这些缺点。我们喜欢抨击我们不喜欢和不使用的编程语言。你会发现有些工程师说 Java 很糟糕,有些说 C# 很糟糕,而有些则说 Go 很糟糕。至于具体是什么语言根本不重要,总会有人批评。
此外,还有一种更深的鄙视,最近这段日子 PHP 和 Python 之间默默地展开了一场较量,似乎学术界正在策划一场阴谋:干掉 PHP,让 Python 取而代之。
如今,你甚至会发现在一些维基百科的页面中,LAMP 技术栈中的 P …
    

Laravel 的 ORM 缓存包

LaraCache是一个基于 ORM 的 Laravel 包,用于基于模型查询创建、更新和管理缓存项。使用此包,您可以缓存在整个应用程序中大量使用的查询。

use Mostafaznv\LaraCache\Traits\LaraCache;
 
class Article extends Model
{
    use LaraCache;
 
    public static function cacheEntities(): array
    {
        return [
            CacheEntity::make('list.forever')
                ->cache(function() {
                    return Article::query()->latest()->get();
                }),
 
            CacheEntity::make('latest')
                ->validForRestOfDay()
                ->cache(function() {
                    return Article::query()->latest()->first();
                })
        ];
    }
}

使用该

                

PHP监控一个进程是否在运行的方法

PHP监控一个进程是否在运行的方法

 

exec("pgrep lighttpd", $pids);
if(empty($pids)) {

    // lighttpd is not running!
}

pgrep -f  全名匹配.

 

$mabbitmq=shell_exec("pgrep [r]abbitmq"); //https://stackoverflow.com/questions/51551908/why-is-the-result-equal-to-0-and-sometimes-1-shell-execpgrep-f
$mabbitmq = str_replace(PHP_EOL, '', $mabbitmq);
$mongodb=shell_exec("pgrep [m]ongo");
$mongodb = str_replace(PHP_EOL, '', $mongodb);
$ydmcuclient=shell_exec("pgrep -f [y]dmcu_client");
$ydmcuclient