hms5232 / webman-factory
Factory for webman framework.
Requires
- php: ^8.1
- fakerphp/faker: ^1.21
- illuminate/database: ^12 || ^11 || ^10
- workerman/webman-framework: ^2.1
Requires (Dev)
- squizlabs/php_codesniffer: ^3.13
- symfony/console: >= 6.0
Suggests
- webman/console: Required if you want to use the command feature.
README
Factory for webman framework.
Installation
composer require --dev hms5232/webman-factory
You can remove the --dev
flag as your need.
Usage
Like Laravel factory, but there are something different, and you need to do the following additional:
-
The factory class should extend
Hms5232\WebmanFactory\WebmanFactory
:use Hms5232\WebmanFactory\WebmanFactory; class AdminFactory extends WebmanFactory { /** * Define the model's default state. * * @return array */ public function definition() { return [ 'name' => $this->faker->name(), 'email' => $this->faker->unique()->safeEmail(), ]; } }
-
The model class should use
Hms5232\WebmanFactory\HasFactory
instead ofIlluminate\Database\Eloquent\Factories\HasFactory
:- use Illuminate\Database\Eloquent\Factories\HasFactory; + use Hms5232\WebmanFactory\HasFactory; class Admin extends Model { use HasFactory; }
otherwise, you should specify the factory:
// app/model/Admin.php use database\factories\AdminFactory; /** * Create a new factory instance for the model. */ protected static function newFactory() { return AdminFactory::new(); }
Additional Features
Here are some additional features that can't be used before install related dependencies. Run the following command to see the details:
composer suggests hms5232/webman-factory
Command
We also provide make:factory
to generate a new factory like Laravel:
php webman make:factory AdminFactory
The AdminFactory
will be created in database/factories/AdminFactory.php
and suppose the model is app/model/Admin.php
by default. You can change these paths in config/plugin/hms5232/webman-factory/app.php
.