hms5232/webman-factory

Factory for webman framework.

v0.2.0 2025-08-26 12:24 UTC

This package is auto-updated.

Last update: 2025-08-27 12:56:05 UTC


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 of Illuminate\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.

License

MIT