tourhunter-com/yii2-dev-updater

简化composer和迁移更新的Yii2组件

dev-master 2021-06-22 10:40 UTC

This package is auto-updated.

Last update: 2024-09-22 17:57:14 UTC


README

简化composer和迁移更新的Yii2组件。

它有助于跟踪git新提交后迁移和composer包中的更改,并允许在浏览器中一键触发更新。

该仓库是TourHunter组织的一部分。[链接](https://github.com/tourhunter-com)。本项目及所有参与人员均遵守[行为准则](https://github.com/tourhunter-com/yii2-dev-updater/blob/HEAD/CODE_OF_CONDUCT.md)。

贡献

请阅读我们的[贡献指南](https://github.com/tourhunter-com/yii2-dev-updater/blob/HEAD/CONTRIBUTING.md)。

安装

安装此扩展的首选方式是通过[composer](https://composer.php.ac.cn/download/)。

运行以下命令:

composer require tourhunter-com/yii2-dev-updater

或将以下内容添加到您的`composer.json`文件的`require`部分:

"tourhunter-com/yii2-dev-updater": "*"

使用方法

扩展安装后,将以下代码添加到您的应用程序`web.php`配置文件中

return [
    'bootstrap' => ['devUpdater'],
    //.....
    'components' => [
        //.....
        'devUpdater' => [
            'class' => 'tourhunter\devUpdater\DevUpdaterComponent',
        ],
    ]
]

重要提示:尝试在控制台应用程序中使用该组件将不会产生任何效果。

以下属性可用于自定义更新组件的行为。

allow_env

定义组件将激活的环境列表。

    'allow_env' => [ 'dev' ],

composerCommand

如果默认的Composer命令不同,可以设置启动Composer的控制台命令。

    'composerCommand' => 'composer',

controllerId

此参数影响组件页面路由中的控制器名称。

    'controllerId' => 'dev-updater',

updaterServices

定义一组活动组件更新服务,默认如下所示

    'updaterServices' => [
         'tourhunter\devUpdater\services\MigrationUpdaterService',
         'tourhunter\devUpdater\services\ComposerUpdaterService',
     ],

可以通过从列表中删除相关服务来禁用composer或迁移更新。还可以添加自定义更新逻辑的解决方案,但该服务必须扩展类`tourhunter\devUpdater\UpdaterService`。

lastUpdateInfoFilename

用于存储有关上次更新或错误状态的重要信息的文件路径。

    'lastUpdateInfoFilename' => '@runtime/devUpdaterInfo.json',

updatingLockFilename

包含更新过程执行信息的锁定文件的路径。

    'updatingLockFilename' => '@runtime/devUpdater.lock',

sudoUser

执行更新控制台命令的用户名。

    'sudoUser' => false,

如果Web服务器在默认用户(如apache或www-data)下运行,则在执行某些命令时可能会出现问题。例如,Composer需要一个默认用户文件夹来缓存数据。为了避免这个问题,组件支持sudo命令的执行。但在使用之前,您必须相应地配置服务器。

首先,您需要知道您是否有`mpm_itk`模块开启 - 它将阻止sudo的使用。您需要将其添加到Apache配置中

<IfModule mpm_itk_module>
    # Permit using "sudo"
    LimitUIDRange 0 65534
    LimitGIDRange 0 65534
</IfModule>

下一步是允许Web服务器用户在不同用户下执行所有必要的命令。`/etc/sudoers`中的设置

www-data ALL=(ALL) NOPASSWD: /bin/composer,/var/www/myYii2Project/yii

重要的是必须显示组件使用的文件的正确路径。默认情况下,它是Yii2框架的控制台实用工具。

同时,请确保在`/etc/sudoers`中取消以下代码的注释(如果存在)

#Defaults    requiretty

许可证

本项目为开源软件,可在[MIT许可证](https://github.com/tourhunter-com/yii2-dev-updater/blob/HEAD/LICENSE.md)下免费获取。