Usage - Factory Definitions
You can define model factories using the
define function. You may call it like this:
League\FactoryMuffin\Facade::define('Fully\Qualifed\ModelName', array('foo' => 'bar')), where
foo is the name of the attribute you want set on your model, and
bar describes how you wish to generate the attribute. Please see the generators section for more information on how this works.
You can also define multiple different factory definitions for your models. You can do this by prefixing the model class name with your "group" followed by a colon. This results in you defining your model like this:
League\FactoryMuffin\Facade::define('myGroup:Fully\Qualifed\ModelName', array('foo' => 'bar')). You don't have to entirely define your model here because we will first look for a definition without the group prefix, then apply your group definition on top of that definition, overriding attribute definitions where required.
We have provided a nifty way for you to do this in your tests. PHPUnit provides a
setupBeforeClass function. Within that function you can call
League\FactoryMuffin\Facade::loadFactories(__DIR__ . '/factories');, and it will include all files in the factories folder. Within those php files, you can put your definitions (all your code that calls the define function). The
loadFactories function will throw a
League\FactoryMuffin\Exceptions\DirectoryNotFoundException exception if the directory you're loading is not found.