📜  刷新播种机 laravel - PHP (1)

📅  最后修改于: 2023-12-03 15:36:57.697000             🧑  作者: Mango

刷新播种机 Laravel - PHP

简介

刷新播种机是一个基于Laravel框架开发的开源PHP软件,可用于生成种子文件并存储于指定目录中。该软件采用命令行工具交互式操作,且支持插件和HTTP API的方式使用。

功能特点
  • 生成种子文件:支持自定义文件名和文件哈希值
  • 存储到指定目录:支持配置种子存储路径
  • 支持插件:方便扩展和定制需要的功能
  • 支持HTTP API:方便程序化调用
安装方法

通过Composer命令进行安装:

composer require yu-bi/refresh-seeder
使用方法
生成种子文件

在终端输入以下命令:

php artisan refresh-seeder:make SeedName

其中,SeedName表示生成种子文件的名称。生成的种子文件默认存储在 database/seeds 目录下。你也可以通过 -p 参数指定存储路径,例如:

php artisan refresh-seeder:make SeedName -p /path/to/seeds

生成的种子文件代码如下:

```php
<?php

use Illuminate\Database\Seeder;

class SeedName extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
    }
}
```
生成种子数据

在终端输入以下命令:

php artisan refresh-seeder:seed SeedName

其中,SeedName表示需要填充数据的种子文件名称。种子数据填充完成后,将输出插入的记录数。

支持插件

本软件支持自定义插件扩展功能。插件必须放置在 app/RefreshSeeder/Plugins 目录下,并实现 RefreshSeeder\Plugins\PluginInterface 接口。

你可以在 app/RefreshSeeder/Plugins 目录下创建一个名为 MyPlugin.php 的PHP文件,实现自己的功能。

例如,下面是一个名为 MyPlugin.php 插件实现添加默认头像图片到 user 表的插件代码。

<?php

namespace App\RefreshSeeder\Plugins;

use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;

class MyPlugin implements PluginInterface
{
    public function run(): void
    {
        $users = DB::table('users')->get();

        foreach ($users as $user) {
            $pathToFile = 'public/user-'.$user->id.'.png';

            // Check if file exists
            if (! Storage::exists($pathToFile)) {
                Storage::copy('public/default/avatar.png', $pathToFile);
            }

            // Update table record
            DB::table('users')
                ->where('id', $user->id)
                ->update(['avatar' => 'user-'.$user->id.'.png']);
        }
    }
}

接着,你需要在种子文件里使用这个插件。打开种子文件,加入以下代码:

public function run()
{
    factory(App\User::class, 10)->create();

    $plugin = new \App\RefreshSeeder\Plugins\MyPlugin();
    $plugin->run();
}
HTTP API

本软件支持HTTP API方式使用。打开浏览器或发送HTTP请求,访问如下地址:

GET /api/seeder/SeedName

其中,SeedName表示需要填充数据的种子文件名称。

总结

本文介绍了 Refresh Seeder Laravel - PHP 开源软件的功能特点、安装方法、使用方法、支持插件和HTTP API 的方式及对应示例代码。在实际应用中,你可以根据自己的业务需求和开发习惯,使用该软件定制自己需要的功能。