lmn/composer-update-manager

通过代码安装 composer 更新的库

v0.2.4 2022-06-19 21:49 UTC

This package is auto-updated.

Last update: 2024-08-29 23:23:48 UTC


README

Build Status

检查您的 composer.lock 是否最新。此类将生成一个过时包的文件并提供过时包的数量。您还可以更新特定包

我不建议在生产环境中更新包

创建管理器

此包附带预定义的 ComposerUpdateManager 工厂。此工厂将创建具有文件存储的管理器。默认设置适用于 Linux 用户。

<?php
$managerFactory = new Lmn\ComposerUpdateManager\FileManagerFactory();
$manager = $managerFactory->createComposerUpdateManager();

获取过时包进行更新

默认文件存储作为缓存的一种形式,因此您可以始终请求过时包。此列表不会自动刷新。要刷新此列表,请调用 checkAvailableUpdates 方法。方法 getAvailableUpdates 返回 Lmn\ComposerUpdateManager\Package 的列表。

<?php
$managerFactory = new Lmn\ComposerUpdateManager\FileManagerFactory();
$manager = $managerFactory->createComposerUpdateManager();

$available = $manager->getAvailableUpdates();

检查更新

要运行包检查,您必须调用 ->checkAvailableUpdates() 方法。实际上,如果您使用 Composer 作为 ApplicationInterface,它将运行 composer outdated --direct。此过程稍微耗时,可能需要几分钟,因此我们建议在某种队列/后台进程中运行它。

<?php
$managerFactory = new Lmn\ComposerUpdateManager\FileManagerFactory();
$manager = $managerFactory->createComposerUpdateManager();

$available = $manager->checkAvailableUpdates();

还值得一提的是,您可能需要增加您的 memory_limit256M

获取过时数量

<?php
$managerFactory = new Lmn\ComposerUpdateManager\FileManagerFactory();
$manager = $managerFactory->createComposerUpdateManager();

$available = $manager->getOutdatedCount();

创建 ComposerUpdateManager

要创建实例,您必须提供存储关于过时包信息的方式。

  1. StorageInterface - 我们提供 FileStorage,它接受包含 file_path 的配置数组。此 file_path 是一个用于存储过时包输出的文件。
  2. ApplicationInterface - 检查过时包的应用程序。我们只有 Composer 类作为选项。此类需要两个配置值 home,它是 composer 命令的变量,以及 root_path,它是 composer.json 文件的路径。

home 通常设置为 __DIR__ . '/vendor/bin/composer'

示例

<?php
$manager = new Lmn\ComposerUpdateManager\ComposerUpdateManager(
    new Lmn\ComposerUpdateManager\Storage\FileStorage([
        'file_path' => './storage/tmp/outdated_output.txt'
    ]), 
    new Lmn\ComposerUpdateManager\Application\Composer([
        'home' => __DIR__ . '/vendor/bin/composer',
        'root_path' => '../'
    ])
);
?>