Would you like to build plain PHP objects using Laravel 5 model factories?
BuiltByFactory
trait makes it a breeze...
composer require stephanecoinon/object-factory
<?php
// /app/Popo.php
namespace App;
use StephaneCoinon\ObjectFactory\BuiltByFactory;
/**
* This is a plain old PHP class, we do not extend Eloquent.
*/
class Popo
{
use BuiltByFactory;
/**
* Objects built by model factory are constructed from an array of
* attributes.
*
* Here's an example of implementation.
*
* @param array $attributes
* @return static
*/
public function __construct($attributes = [])
{
foreach ($attributes as $key => $value) {
$this->$key = $value;
}
}
}
<?php
// /database/factories/PopoFactory.php
use Faker\Generator as Faker;
$factory->define(App\Popo::class, function (Faker $faker) {
return [
'name' => $faker->name,
];
});
// A single instance
$object = factory(App\Popo::class)->make();
// Or a collection
$objects = factory(App\Popo::class, 3)->make();