ezappslab/laravel-evolver

通过一系列操作管理安装和升级序列

v0.0.11 2024-05-05 21:12 UTC

This package is not auto-updated.

Last update: 2024-09-22 23:08:05 UTC


README

Evolver是一个Laravel包,旨在通过一系列操作来管理安装和升级序列。它通过将部署和升级过程封装到配置文件中定义的可执行步骤中来简化这些过程。

安装

要安装此包,请使用Composer

composer require ezappslab/laravel-evolver

安装包后,您必须执行以下Artisan命令,将必要的配置文件复制到您的项目

php artisan evolver:install

此命令将evolver.php配置文件复制到您的Laravel配置目录。

配置

操作在evolver.php配置文件中定义。每个操作都是一个实现了Actionable接口的类,该接口需要一个execute方法,用于定义操作的任务。

以下是一个基本操作的示例

namespace App\Actions;

use Infinity\Evolver\Contracts\Actionable;

class UpdateDatabaseSchema implements Actionable
{
    public function execute()
    {
        // Logic to update the database schema
    }
}

按照以下方式将操作添加到evolver.php文件中

return [
    'install' => [
        App\Actions\InitializeDatabase::class,
        App\Actions\SeedDatabase::class,
    ],
    'upgrade' => [
        App\Actions\UpdateDatabaseSchema::class,
    ],
];

用法

此包提供了两个命令来执行定义的操作

安装命令将执行配置文件中定义的所有安装操作

php artisan app:install

升级命令将执行配置文件中定义的所有升级操作

php artisan app:upgrade

这些命令将按照在evolver.php配置文件中定义的顺序运行相应的操作。

实用工具

在安装或升级应用程序时,使用版本控制助手检测版本至关重要。

use Infinity\Evolver\Facades\Versioning;

Versioning::isEqual(string $version)
Versioning::isNotEqual(string $version)
Versioning::isLessThan(string $version)
Versioning::isLessThanOrEqual(string $version)
Versioning::isGreaterThan(string $version)
Versioning::isGreaterThanOrEqual(string $version)

为了简化使用,请在Facades数组中注册Facade

'Versioning' => Infinity\Evolver\Facades\Versioning::class

贡献

欢迎为Evolver包做出贡献。请确保任何pull requests都符合Laravel的标准,并附带必要的测试。

许可

此包是开源软件,许可协议为MIT。