chez14 / f3-ilgar
用于 Fat-Free Framework 的简单迁移工具
Requires
- php: >=7.1
- monolog/monolog: ^1.23
Requires (Dev)
- bcosca/fatfree-core: ^3.6
README
快速且简单的 Fat-Free Framework 迁移工具。
入门指南
-
通过 Composer 安装
composer require chez14/f3-ilgar
-
选择你的轰炸选项
-
使用默认配置吗? 默认设置
-
调用
/ilgar/migrate
执行迁移 -
使用
Migration
作为迁移类命名空间前缀 -
迁移包放置在项目根目录中的
Migration
或migration
文件夹中。
然后,只需将以下内容添加到你的
index.php
文件中\Chez14\Ilgar\Boot::now();
-
-
使用自己的风格和自定义安全设置
只需在任何控制器中调用
\Chez14\Ilgar\Boot::trigger_on();
。这将会触发迁移过程并返回 快速统计。
-
-
创建你的第一个迁移包
-
通过访问
/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。