1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- namespace Illuminate\Database\Console\Factories;
- use Illuminate\Console\GeneratorCommand;
- use Symfony\Component\Console\Input\InputOption;
- class FactoryMakeCommand extends GeneratorCommand
- {
- /**
- * The console command name.
- *
- * @var string
- */
- protected $name = 'make:factory';
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = 'Create a new model factory';
- /**
- * The type of class being generated.
- *
- * @var string
- */
- protected $type = 'Factory';
- /**
- * Get the stub file for the generator.
- *
- * @return string
- */
- protected function getStub()
- {
- return __DIR__.'/stubs/factory.stub';
- }
- /**
- * Build the class with the given name.
- *
- * @param string $name
- * @return string
- */
- protected function buildClass($name)
- {
- $namespaceModel = $this->option('model')
- ? $this->qualifyClass($this->option('model'))
- : trim($this->rootNamespace(), '\\').'\\Model';
- $model = class_basename($namespaceModel);
- return str_replace(
- [
- 'NamespacedDummyModel',
- 'DummyModel',
- ],
- [
- $namespaceModel,
- $model,
- ],
- parent::buildClass($name)
- );
- }
- /**
- * Get the destination class path.
- *
- * @param string $name
- * @return string
- */
- protected function getPath($name)
- {
- $name = str_replace(
- ['\\', '/'], '', $this->argument('name')
- );
- return $this->laravel->databasePath()."/factories/{$name}.php";
- }
- /**
- * Get the console command options.
- *
- * @return array
- */
- protected function getOptions()
- {
- return [
- ['model', 'm', InputOption::VALUE_OPTIONAL, 'The name of the model'],
- ];
- }
- }
|