Class PolicyCommand
Bake task for building policy classes
Property Summary
-
$_eventClass protected
string
Default class name for new event objects.
-
$_eventManager protected
Cake\Event\EventManagerInterface|null
Instance of the Cake\Event\EventManager this object is using to dispatch inner events.
-
$_tableLocator protected
Cake\ORM\Locator\LocatorInterface|null
Table locator instance
-
$connection public
string
-
$defaultTable protected
string|null
This object's default table alias.
-
$factory protected
?CommandFactoryInterface
-
$force public
bool
-
$name protected
string
The name of this command.
-
$pathFragment public
string
Path to Policy directory
-
$plugin public
string
-
$theme public
string|null
-
$type protected
string
Method Summary
-
__construct() public
Constructor
-
_camelize() protected
Creates a camelized version of $name
-
_entityName() protected
Creates the proper entity name (singular) for the specified name
-
_fixtureName() protected
Creates a fixture name
-
_getBakeThemes() protected
Get available bake themes
-
_getName() protected
Handles splitting up the plugin prefix and classname.
-
_modelKey() protected
Creates the proper underscored model key for associations
-
_modelNameFromKey() protected
Creates the proper model name from a foreign key
-
_pluginNamespace() protected
Return plugin's namespace
-
_pluginPath() protected
Find the correct path for a plugin. Scans $pluginPaths for the plugin you want.
-
_pluralHumanName() protected
Creates the plural human name used in views
-
_setCommonOptions() protected
Set common options used by all bake tasks.
-
_singularHumanName() protected
Creates the singular human name used in views
-
_singularName() protected
Creates the singular name for use in views.
-
_variableName() protected
Creates the plural variable name for views
-
abort() public
Halt the current process with a StopException.
-
bake() protected
Generate a class stub
-
bakeTest() public
Do nothing (for now)
-
buildOptionParser() public
Gets the option parser instance and configures it.
-
createTemplateRenderer() public
Creates a new instance of TemplateRenderer with theme set.
-
defaultName() public static
Get the command name.
-
deleteEmptyFile() protected
Delete empty file in a given path
-
dispatchEvent() public
Wrapper for creating and dispatching events.
-
displayHelp() protected
Output help content
-
execute() public
Execute the command.
-
executeCommand() public
Execute another command with the provided set of arguments.
-
extractCommonProperties() protected
Pull common/frequently used arguments & options into properties so that method signatures can be simpler.
-
fetchTable() public
Convenience method to get a table instance.
-
fileName() public
Get the generated object's filename without the leading path.
-
getDescription() public static
Get the command description.
-
getEventManager() public
Returns the Cake\Event\EventManager manager instance for this object.
-
getName() public
Get the command name.
-
getOptionParser() public
Get the option parser.
-
getPath() public
Gets the path for output. Checks the plugin property and returns the correct path.
-
getPrefix() protected
Get the prefix name.
-
getRootName() public
Get the root command name.
-
getTableLocator() public
Gets the table locator.
-
getTemplatePath() public
Gets the path to the template path for the application or plugin.
-
initialize() public
Hook method invoked by CakePHP when a command is about to be executed.
-
isValidColumnName() protected
Check if a column name is valid.
-
log() public
Convenience method to write a message to Log. See Log::write() for more information on writing to logs.
-
name() public
Get the generated object's name.
-
parseFile() protected
Parses a file if it exists.
-
run() public
Run the command.
-
setEventManager() public
Returns the Cake\Event\EventManagerInterface instance for this object.
-
setName() public
Set the name this command uses in the collection.
-
setOutputLevel() protected
Set the output level based on the Arguments.
-
setTableLocator() public
Sets the table locator.
-
template() public
Get the template name.
-
templateData() public
Get template data.
-
writeFile() protected
Write file contents out to path and prompt user with options with file exists.
Method Detail
__construct() ¶ public
__construct(Cake\Console\CommandFactoryInterface $factory = null)
Constructor
Parameters
-
Cake\Console\CommandFactoryInterface
$factory optional Command factory instance.
_camelize() ¶ protected
_camelize(string $name): string
Creates a camelized version of $name
Parameters
-
string
$name name
Returns
string
_entityName() ¶ protected
_entityName(string $name): string
Creates the proper entity name (singular) for the specified name
Parameters
-
string
$name Name
Returns
string
_fixtureName() ¶ protected
_fixtureName(string $name): string
Creates a fixture name
Parameters
-
string
$name Model class name
Returns
string
_getName() ¶ protected
_getName(string $name): string
Handles splitting up the plugin prefix and classname.
Sets the plugin parameter and plugin property.
Parameters
-
string
$name The name to possibly split.
Returns
string
_modelKey() ¶ protected
_modelKey(string $name): string
Creates the proper underscored model key for associations
If the input contains a dot, assume that the right side is the real table name.
Parameters
-
string
$name Model class name
Returns
string
_modelNameFromKey() ¶ protected
_modelNameFromKey(string $key): string
Creates the proper model name from a foreign key
Parameters
-
string
$key Foreign key
Returns
string
_pluginNamespace() ¶ protected
_pluginNamespace(string $pluginName): string
Return plugin's namespace
Parameters
-
string
$pluginName Plugin name
Returns
string
_pluginPath() ¶ protected
_pluginPath(string $pluginName): string
Find the correct path for a plugin. Scans $pluginPaths for the plugin you want.
Parameters
-
string
$pluginName Name of the plugin you want ie. DebugKit
Returns
string
_pluralHumanName() ¶ protected
_pluralHumanName(string $name): string
Creates the plural human name used in views
Parameters
-
string
$name Controller name
Returns
string
_setCommonOptions() ¶ protected
_setCommonOptions(Cake\Console\ConsoleOptionParser $parser): Cake\Console\ConsoleOptionParser
Set common options used by all bake tasks.
Parameters
-
Cake\Console\ConsoleOptionParser
$parser Options parser.
Returns
Cake\Console\ConsoleOptionParser
_singularHumanName() ¶ protected
_singularHumanName(string $name): string
Creates the singular human name used in views
Parameters
-
string
$name Controller name
Returns
string
_singularName() ¶ protected
_singularName(string $name): string
Creates the singular name for use in views.
Parameters
-
string
$name Name to use
Returns
string
_variableName() ¶ protected
_variableName(string $name): string
Creates the plural variable name for views
Parameters
-
string
$name Name to use
Returns
string
abort() ¶ public
abort(int $code = self::CODE_ERROR): never
Halt the current process with a StopException.
Parameters
-
int
$code optional The exit code to use.
Returns
never
Throws
Cake\Console\Exception\StopException
bake() ¶ protected
bake(string $name, Cake\Console\Arguments $args, Cake\Console\ConsoleIo $io): void
Generate a class stub
Parameters
-
string
$name The class name
-
Cake\Console\Arguments
$args The console arguments
-
Cake\Console\ConsoleIo
$io The console io
Returns
void
bakeTest() ¶ public
bakeTest(string $className, Cake\Console\Arguments $args, Cake\Console\ConsoleIo $io): void
Do nothing (for now)
Parameters
-
string
$className The class to bake a test for.
-
Cake\Console\Arguments
$args The arguments object
-
Cake\Console\ConsoleIo
$io The consoleio object
Returns
void
buildOptionParser() ¶ public
buildOptionParser(Cake\Console\ConsoleOptionParser $parser): Cake\Console\ConsoleOptionParser
Gets the option parser instance and configures it.
Parameters
-
Cake\Console\ConsoleOptionParser
$parser The parser to update.
Returns
Cake\Console\ConsoleOptionParser
createTemplateRenderer() ¶ public
createTemplateRenderer(): Bake\Utility\TemplateRenderer
Creates a new instance of TemplateRenderer with theme set.
Returns
Bake\Utility\TemplateRenderer
defaultName() ¶ public static
defaultName(): string
Get the command name.
Returns the command name based on class name.
For e.g. for a command with class name UpdateTableCommand
or BakeUpdateTableCommand
the default name returned would be 'bake update_table'
.
Returns
string
deleteEmptyFile() ¶ protected
deleteEmptyFile(string $path, Cake\Console\ConsoleIo $io): void
Delete empty file in a given path
Parameters
-
string
$path Path to folder which contains 'empty' file.
-
Cake\Console\ConsoleIo
$io ConsoleIo to delete file with.
Returns
void
dispatchEvent() ¶ public
dispatchEvent(string $name, array $data = [], TSubject|null $subject = null): Cake\Event\EventInterface<TSubject>
Wrapper for creating and dispatching events.
Returns a dispatched event.
Parameters
-
string
$name Name of the event.
-
array
$data optional Any value you wish to be transported with this event to it can be read by listeners.
-
TSubject|null
$subject optional The object that this event applies to ($this by default).
Returns
Cake\Event\EventInterface<TSubject>
displayHelp() ¶ protected
displayHelp(Cake\Console\ConsoleOptionParser $parser, Cake\Console\Arguments $args, Cake\Console\ConsoleIo $io): void
Output help content
Parameters
-
Cake\Console\ConsoleOptionParser
$parser The option parser.
-
Cake\Console\Arguments
$args The command arguments.
-
Cake\Console\ConsoleIo
$io The console io
Returns
void
execute() ¶ public
execute(Cake\Console\Arguments $args, Cake\Console\ConsoleIo $io): int|null
Execute the command.
Parameters
-
Cake\Console\Arguments
$args The command arguments.
-
Cake\Console\ConsoleIo
$io The console io
Returns
int|null
executeCommand() ¶ public
executeCommand(Cake\Console\CommandInterface|string $command, array $args = [], Cake\Console\ConsoleIo|null $io = null): int|null
Execute another command with the provided set of arguments.
If you are using a string command name, that command's dependencies will not be resolved with the application container. Instead you will need to pass the command as an object with all of its dependencies.
Parameters
-
Cake\Console\CommandInterface|string
$command The command class name or command instance.
-
array
$args optional The arguments to invoke the command with.
-
Cake\Console\ConsoleIo|null
$io optional The ConsoleIo instance to use for the executed command.
Returns
int|null
extractCommonProperties() ¶ protected
extractCommonProperties(Cake\Console\Arguments $args): void
Pull common/frequently used arguments & options into properties so that method signatures can be simpler.
Parameters
-
Cake\Console\Arguments
$args Arguments to extract
Returns
void
fetchTable() ¶ public
fetchTable(string|null $alias = null, array<string, mixed> $options = []): Cake\ORM\Table
Convenience method to get a table instance.
Parameters
-
string|null
$alias optional The alias name you want to get. Should be in CamelCase format. If
null
then the value of $defaultTable property is used.-
array<string, mixed>
$options optional The options you want to build the table with. If a table has already been loaded the registry options will be ignored.
Returns
Cake\ORM\Table
Throws
Cake\Core\Exception\CakeException
If `$alias` argument and `$defaultTable` property both are `null`.
See Also
fileName() ¶ public
fileName(string $name): string
Get the generated object's filename without the leading path.
Parameters
-
string
$name
Returns
string
getDescription() ¶ public static
getDescription(): string
Get the command description.
Returns
string
getEventManager() ¶ public
getEventManager(): Cake\Event\EventManagerInterface
Returns the Cake\Event\EventManager manager instance for this object.
You can use this instance to register any new listeners or callbacks to the object events, or create your own events and trigger them at will.
Returns
Cake\Event\EventManagerInterface
getOptionParser() ¶ public
getOptionParser(): Cake\Console\ConsoleOptionParser
Get the option parser.
You can override buildOptionParser() to define your options & arguments.
Returns
Cake\Console\ConsoleOptionParser
Throws
Cake\Core\Exception\CakeException
When the parser is invalid
getPath() ¶ public
getPath(Cake\Console\Arguments $args): string
Gets the path for output. Checks the plugin property and returns the correct path.
Parameters
-
Cake\Console\Arguments
$args Arguments instance to read the prefix option from.
Returns
string
getPrefix() ¶ protected
getPrefix(Cake\Console\Arguments $args): string
Get the prefix name.
Handles camelcasing each namespace in the prefix path.
Parameters
-
Cake\Console\Arguments
$args Arguments instance to read the prefix option from.
Returns
string
getTableLocator() ¶ public
getTableLocator(): Cake\ORM\Locator\LocatorInterface
Gets the table locator.
Returns
Cake\ORM\Locator\LocatorInterface
getTemplatePath() ¶ public
getTemplatePath(Cake\Console\Arguments $args, string|null $container = null): string
Gets the path to the template path for the application or plugin.
Parameters
-
Cake\Console\Arguments
$args Arguments instance to read the prefix option from.
-
string|null
$container optional The container directory in the templates directory.
Returns
string
initialize() ¶ public
initialize(): void
Hook method invoked by CakePHP when a command is about to be executed.
Override this method and implement expensive/important setup steps that should not run on every command run. This method will be called before the options and arguments are validated and processed.
Returns
void
isValidColumnName() ¶ protected
isValidColumnName(string $name): bool
Check if a column name is valid.
The Regex used here basically states that:
- the column name has to start with an ASCII character (lower or upper case) or an underscore and
- further characters are allowed to be either lower or upper case ASCII characters, numbers or underscores.
Parameters
-
string
$name The name of the column.
Returns
bool
log() ¶ public
log(Stringable|string $message, string|int $level = LogLevel::ERROR, array|string $context = []): bool
Convenience method to write a message to Log. See Log::write() for more information on writing to logs.
Parameters
-
Stringable|string
$message Log message.
-
string|int
$level optional Error level.
-
array|string
$context optional Additional log data relevant to this message.
Returns
bool
parseFile() ¶ protected
parseFile(string $path): Bake\CodeGen\ParsedFile|null
Parses a file if it exists.
Parameters
-
string
$path File path
Returns
Bake\CodeGen\ParsedFile|null
run() ¶ public
run(array $argv, Cake\Console\ConsoleIo $io): int|null
Run the command.
Parameters
-
array
$argv -
Cake\Console\ConsoleIo
$io
Returns
int|null
setEventManager() ¶ public
setEventManager(Cake\Event\EventManagerInterface $eventManager): $this
Returns the Cake\Event\EventManagerInterface instance for this object.
You can use this instance to register any new listeners or callbacks to the object events, or create your own events and trigger them at will.
Parameters
-
Cake\Event\EventManagerInterface
$eventManager the eventManager to set
Returns
$this
setName() ¶ public
setName(string $name): $this
Set the name this command uses in the collection.
Generally invoked by the CommandCollection when the command is added. Required to have at least one space in the name so that the root command can be calculated.
Parameters
-
string
$name
Returns
$this
setOutputLevel() ¶ protected
setOutputLevel(Cake\Console\Arguments $args, Cake\Console\ConsoleIo $io): void
Set the output level based on the Arguments.
Parameters
-
Cake\Console\Arguments
$args The command arguments.
-
Cake\Console\ConsoleIo
$io The console io
Returns
void
setTableLocator() ¶ public
setTableLocator(Cake\ORM\Locator\LocatorInterface $tableLocator): $this
Sets the table locator.
Parameters
-
Cake\ORM\Locator\LocatorInterface
$tableLocator LocatorInterface instance.
Returns
$this
templateData() ¶ public
templateData(Cake\Console\Arguments $arguments): array
Get template data.
Parameters
-
Cake\Console\Arguments
$arguments
Returns
array
writeFile() ¶ protected
writeFile(Cake\Console\ConsoleIo $io, string $path, string $contents, bool $forceOverwrite = false, bool $skipIfUnchanged = true): bool
Write file contents out to path and prompt user with options with file exists.
Parameters
-
Cake\Console\ConsoleIo
$io Console io
-
string
$path The path to create the file at
-
string
$contents The contents to put into the file
-
bool
$forceOverwrite optional Whether the file should be overwritten without prompting the user
-
bool
$skipIfUnchanged optional Skip writing output if the contents match existing file
Returns
bool
Throws
Cake\Console\Exception\StopException
When `q` is given as an answer to whether a file should be overwritten.
Property Detail
$_eventManager ¶ protected
Instance of the Cake\Event\EventManager this object is using to dispatch inner events.
Type
Cake\Event\EventManagerInterface|null