摘要
记录一次项目的 composer update
。
背景
composer 负责 PHP 项目的依赖管理。当需要升级依赖时,执行「composer update」会根据文件 composer.json
里的信息进行升级,并在升级安装成功后修改文件 composer.lock
。
项目由 Laravel 5.6 升级到 ~6.8,涉及到 PHP 项目中 redis
的使用。
主要根据 Laravel 中文文档 的升级说明进行。
配置升级信息
可手动修改文件 composer.json
里的信息,也可通过命令安装或删除依赖,比如:
composer require predis\predis ~1.1
composer remove predis\predis
predis or phpredis
在 laravel ~6.8
里,称 PHP 的 redis
扩展为 phpredis
,称 composer 的 redis
依赖为 predis
。
两者可选择其一使用。
观点一:composer 的 predis\predis ^1.1
已经停止维护,不推荐使用。
观点二:此依赖趋近“完美”,在 PHP 内核未有大改动之前,不需要维护更新,即可继续使用 predis
。
在 laravel ~6.8
里的配置参考:
安装 phpredis
注意 PHP 的版本。
注意 PHP 的版本。
注意 PHP 的版本。
推荐:
pecl install redis
香。
PECL is a repository for PHP Extensions, providing a directory of all known extensions and hosting facilities for downloading and development of PHP extensions.
Laravel 5.6 -> 5.7
只能说,这么巧,遇见了影响的可能性为 低
的情况。
官方升级说明 其中的「调度任务链接 & 队列」。
因为我的项目中,用到命令:
# Laravel 5.6
artisan queue:work
# Laravel 5.7
artisan queue:work redis
并且使用 supervisorctl
管理此命令,所以原本异步执行的事件变得同步。因为 5.7 版本的需要指定 队列的连接的名称 $connection
,我在这里使用过 redis
或 database
,根据配置选就可以了。
再通过在任务类上设置对应 connection
属性后,异步执行正常。