EventMakeCommand.php
TLDR
This file is a part of the Demo Projects project and is located at src/Illuminate/Foundation/Console/EventMakeCommand.php
. It contains a class EventMakeCommand
which extends GeneratorCommand
and is used to create a new event class.
Methods
alreadyExists
This method is used to determine if a class already exists. It checks if the given class name exists or if the file already exists at the path of the generated class.
getStub
This method is used to get the stub file for the generator. It returns the path of the stub file used to generate the event class.
resolveStubPath
This method is used to resolve the fully-qualified path to the stub. It checks if a custom path for the stub file exists, otherwise, it returns the default stub file path relative to the current file.
getDefaultNamespace
This method is used to get the default namespace for the event class. It appends the Events
namespace to the root namespace.
getOptions
This method is used to get the console command options. It returns an array of options where force
option allows creating the event class even if it already exists.
<?php
namespace Illuminate\Foundation\Console;
use Illuminate\Console\GeneratorCommand;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Input\InputOption;
#[AsCommand(name: 'make:event')]
class EventMakeCommand extends GeneratorCommand
{
/**
* The console command name.
*
* @var string
*/
protected $name = 'make:event';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Create a new event class';
/**
* The type of class being generated.
*
* @var string
*/
protected $type = 'Event';
/**
* Determine if the class already exists.
*
* @param string $rawName
* @return bool
*/
protected function alreadyExists($rawName)
{
return class_exists($rawName) ||
$this->files->exists($this->getPath($this->qualifyClass($rawName)));
}
/**
* Get the stub file for the generator.
*
* @return string
*/
protected function getStub()
{
return $this->resolveStubPath('/stubs/event.stub');
}
/**
* Resolve the fully-qualified path to the stub.
*
* @param string $stub
* @return string
*/
protected function resolveStubPath($stub)
{
return file_exists($customPath = $this->laravel->basePath(trim($stub, '/')))
? $customPath
: __DIR__.$stub;
}
/**
* Get the default namespace for the class.
*
* @param string $rootNamespace
* @return string
*/
protected function getDefaultNamespace($rootNamespace)
{
return $rootNamespace.'\Events';
}
/**
* Get the console command options.
*
* @return array
*/
protected function getOptions()
{
return [
['force', 'f', InputOption::VALUE_NONE, 'Create the class even if the event already exists'],
];
}
}