📅  最后修改于: 2023-12-03 15:36:57.697000             🧑  作者: Mango
刷新播种机是一个基于Laravel框架开发的开源PHP软件,可用于生成种子文件并存储于指定目录中。该软件采用命令行工具交互式操作,且支持插件和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请求,访问如下地址:
GET /api/seeder/SeedName
其中,SeedName表示需要填充数据的种子文件名称。
本文介绍了 Refresh Seeder Laravel - PHP 开源软件的功能特点、安装方法、使用方法、支持插件和HTTP API 的方式及对应示例代码。在实际应用中,你可以根据自己的业务需求和开发习惯,使用该软件定制自己需要的功能。