chez14/f3-ilgar

用于 Fat-Free Framework 的简单迁移工具

v1.1.0 2019-06-09 11:03 UTC

README

PHP from Packagist Travis (.org) Packagist GitHub release

快速且简单的 Fat-Free Framework 迁移工具。

入门指南

  1. 通过 Composer 安装

    composer require chez14/f3-ilgar
  2. 选择你的轰炸选项

    • 使用默认配置吗? 默认设置

      • 调用 /ilgar/migrate 执行迁移

      • 使用 Migration 作为迁移类命名空间前缀

      • 迁移包放置在项目根目录中的 Migrationmigration 文件夹中。

      然后,只需将以下内容添加到你的 index.php 文件中

      \Chez14\Ilgar\Boot::now();
    • 使用自己的风格和自定义安全设置

      只需在任何控制器中调用 \Chez14\Ilgar\Boot::trigger_on();。这将会触发迁移过程并返回 快速统计

  3. 创建你的第一个迁移包

  4. 通过访问 /ilgar/migrate 部署迁移

    curl https://:8087/ilgar/migrate

    php index.php /ilgar/migrate

MigrationPacket 类示例

此文件位于你的项目根目录的 migration 文件夹中。或者,你可以通过设置 ILGAR.path 来设置文件夹。

$this->f3->set('ILGAR.path', "new-folder/");

重要! 文件名应格式化为 "0-classname.php",其中 0 是任何数字(你可以使用普通数字 1-ClassName.php,或 CI-style 时间戳 180901012400-ClassName.php),用单短横线分隔,后面跟着你的类名,可以是小写、蛇形或驼峰形式。

重要! 你需要 扩展 \Chez14\Ilgar\MigrationPacket 类。这将确保所需的方法始终可用且可靠。

这是你的文件: 1-test01.php

namespace Migration;

class Test01 extends \Chez14\Ilgar\MigrationPacket {
    public function on_migrate(){
        // Do your things here!
        // All the F3 object were loaded, F3 routines executed,
        // this will just like you doing things in your controller file.
        
        $f3 = \F3::instance(); //get the $f3 from here.
        
        echo "Hello from Test01 Migration package";
    }

    public function on_failed(\Exception $e) {

    }
}

MigrationPacket 抽象类

它只是一个普通类。你需要实现一些东西

  • on_migrate()
  • on_failed(\Exception $e)

Ilgar 有两个能力,轰炸自毁轰炸 指执行迁移任务(on_migrate),自毁 指当它失败时,它将使用剩余的力量执行自杀式轰炸,在这种情况下,意味着回滚迁移任务(on_failed)。

更方便的事件驱动函数(所有这些都是可选的)

  • pre_migrate()

    在迁移事件之前。这可能在你需要先准备一些东西时很有用。

    如果你想进行检查,请检查 is_migratable

  • post_migrate()

    在迁移事件之后。这将在包成功执行时执行。

  • is_migratable()

    验证当前包是否适用。这必须返回 true 才能执行此包。

Ilgar 的快速 API

Ilgar 的 API 在 Chez14\Ilgar\Internal 类中可用。它是一个 \Prefab 子类,所以如果你想获取其实例,你可以通过调用 Chez14\Ilgar\Internal::instance() 来获取实例。无论如何,以下是 API 列表

get_current_version()

返回一个 int

这个整数表示当前迁移版本点,由文件名声明。

将从 migration.json 加载版本。

reset_version()

返回 void。

将强制删除指定路径上的 migration.json

get_stats()

返回 快速统计

这将返回与迁移相关的当前统计信息。

快速统计

快速统计是一个数组,包括

$stats = [
    "success" => $counter, // how many migration executed
    "last_exception" => $failed, // last exception occured, this is an Exception object.
    "version" => $current // current version applied
];

许可证

是的,GPLv3

常见问题解答和RAQ(不常问的问题)

为什么命名为“伊尔加”?

伊尔加是一种轰击型特里翁战士。它被阿托克拉托奇奥用于入侵。是的,它的目的是通过迁移数据包轰击数据库。