Class I18nExtractCommand

Language string extractor

Namespace: Cake\Command

Constants summary

  • int
    CODE_ERROR
    1
  • int
    CODE_SUCCESS
    0

Properties summary

  • $_countMarkerError protected
    int

    Count number of marker errors found

  • $_exclude protected
    string[]

    An array of directories to exclude.

  • $_extractCore protected
    bool

    Holds whether this call should extract the CakePHP Lib messages

  • $_file protected
    string

    Current file being processed

  • $_files protected
    string[]

    Files from where to extract

  • $_markerError protected
    bool

    Displays marker error(s) if true

  • $_merge protected
    bool

    Merge all domain strings into the default.pot file

  • $_modelFactories protected
    (callable|\Cake\Datasource\Locator\LocatorInterface)[]

    A list of overridden model factory functions.

  • $_modelType protected
    string

    The model type to use.

  • $_output protected
    string

    Destination path

  • $_paths protected
    string[]

    Paths to use when looking for strings

  • $_relativePaths protected
    bool

    Use relative paths in the pot files rather than full path

  • $_storage protected
    array

    Contains all content waiting to be write

  • $_tableLocator protected
    \Cake\ORM\Locator\LocatorInterface|null

    Table locator instance

  • $_tokens protected
    array

    Extracted tokens

  • $_translations protected
    array

    Extracted strings indexed by domain.

  • $modelClass protected
    string|null

    This object's primary model class name. Should be a plural form.

  • $name protected
    string

    The name of this command.

Method Summary

  • __construct() public

    Constructor

  • _addTranslation() protected

    Add a translation to the internal translations property

  • _buildFiles() protected

    Build the translate template file contents out of obtained strings

  • _extract() protected

    Extract text

  • _extractTokens() protected

    Extract tokens out of all files to be processed

  • _formatString() protected

    Format a string to be added as a translatable string

  • _getPaths() protected

    Method to interact with the user and get path selections.

  • _getStrings() protected

    Get the strings from the position forward

  • _isExtractingApp() protected

    Returns whether this execution is meant to extract string only from directories in folder represented by the APP constant, i.e. this task is extracting strings from same application.

  • _isPathUsable() protected

    Checks whether or not a given path is usable for writing.

  • _markerError() protected

    Indicate an invalid marker on a processed file

  • _parse() protected

    Parse tokens

  • _searchFiles() protected

    Search files that may contain translatable strings

  • _setModelClass() protected

    Set the modelClass property based on conventions.

  • _store() protected

    Prepare a file to be stored

  • _writeFiles() protected

    Write the files that need to be stored

  • _writeHeader() protected

    Build the translation template header

  • abort() public

    Halt the the current process with a StopException.

  • buildOptionParser() public

    Gets the option parser instance and configures it.

  • checkUnchanged() protected

    Check whether the old and new output are the same, thus unchanged

  • defaultName() public static

    Get the command name.

  • displayHelp() protected

    Output help content

  • execute() public

    Execute the command

  • executeCommand() public

    Execute another command with the provided set of arguments.

  • getModelType() public

    Get the model type to be used by this class

  • getName() public

    Get the command name.

  • getOptionParser() public

    Get the option parser.

  • getRootName() public

    Get the root command name.

  • getTableLocator() public

    Gets the table locator.

  • initialize() public

    Hook method invoked by CakePHP when a command is about to be executed.

  • loadModel() public

    Loads and constructs repository objects required by this object

  • log() public

    Convenience method to write a message to Log. See Log::write() for more information on writing to logs.

  • modelFactory() public

    Override a existing callable to generate repositories of a given type.

  • run() public

    Run the command.

  • setModelType() public

    Set the model type to be used by this class

  • 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.

Method Detail

__construct() public

__construct()

Constructor

By default CakePHP will construct command objects when building the CommandCollection for your application.

_addTranslation() protected

_addTranslation(string $domain, string $msgid, array $details)

Add a translation to the internal translations property

Takes care of duplicate translations

Parameters

string $domain

The domain

string $msgid

The message string

array $details optional

Context and plural form if any, file and line references

_buildFiles() protected

_buildFiles(\Cake\Console\Arguments $args)

Build the translate template file contents out of obtained strings

Parameters

\Cake\Console\Arguments $args

Console arguments

_extract() protected

_extract(\Cake\Console\Arguments $args, \Cake\Console\ConsoleIo $io)

Extract text

Parameters

\Cake\Console\Arguments $args

The Arguments instance

\Cake\Console\ConsoleIo $io

The io instance

_extractTokens() protected

_extractTokens(\Cake\Console\Arguments $args, \Cake\Console\ConsoleIo $io)

Extract tokens out of all files to be processed

Parameters

\Cake\Console\Arguments $args

The io instance

\Cake\Console\ConsoleIo $io

The io instance

_formatString() protected

_formatString(string $string)

Format a string to be added as a translatable string

Parameters

string $string

String to format

Returns

string

Formatted string

_getPaths() protected

_getPaths(\Cake\Console\ConsoleIo $io)

Method to interact with the user and get path selections.

Parameters

\Cake\Console\ConsoleIo $io

The io instance.

_getStrings() protected

_getStrings(int $position, int $target)

Get the strings from the position forward

Parameters

int $position

Actual position on tokens array

int $target

Number of strings to extract

Returns

array

Strings extracted

_isExtractingApp() protected

_isExtractingApp()

Returns whether this execution is meant to extract string only from directories in folder represented by the APP constant, i.e. this task is extracting strings from same application.

Returns

bool

_isPathUsable() protected

_isPathUsable(mixed $path)

Checks whether or not a given path is usable for writing.

Parameters

string $path

Path to folder

Returns

bool

true if it exists and is writable, false otherwise

_markerError() protected

_markerError(mixed $io, string $file, int $line, string $marker, int $count)

Indicate an invalid marker on a processed file

Parameters

\Cake\Console\ConsoleIo $io

The io instance.

string $file

File where invalid marker resides

int $line

Line number

string $marker

Marker found

int $count

Count

_parse() protected

_parse(\Cake\Console\ConsoleIo $io, string $functionName, array $map)

Parse tokens

Parameters

\Cake\Console\ConsoleIo $io

The io instance

string $functionName

Function name that indicates translatable string (e.g: '__')

array $map

Array containing what variables it will find (e.g: domain, singular, plural)

_searchFiles() protected

_searchFiles()

Search files that may contain translatable strings

_setModelClass() protected

_setModelClass(string $name)

Set the modelClass property based on conventions.

If the property is already set it will not be overwritten

Parameters

string $name

Class name.

_store() protected

_store(string $domain, string $header, string $sentence)

Prepare a file to be stored

Parameters

string $domain

The domain

string $header

The header content.

string $sentence

The sentence to store.

_writeFiles() protected

_writeFiles(\Cake\Console\Arguments $args, \Cake\Console\ConsoleIo $io)

Write the files that need to be stored

Parameters

\Cake\Console\Arguments $args

The command arguments.

\Cake\Console\ConsoleIo $io

The console io

_writeHeader() protected

_writeHeader(string $domain)

Build the translation template header

Parameters

string $domain

Domain

Returns

string

Translation template header

abort() public

abort(int $code)

Halt the the current process with a StopException.

Parameters

int $code optional

The exit code to use.

Throws

Cake\Console\Exception\StopException

buildOptionParser() public

buildOptionParser(\Cake\Console\ConsoleOptionParser $parser)

Gets the option parser instance and configures it.

Parameters

\Cake\Console\ConsoleOptionParser $parser

The parser to configure

Returns

\Cake\Console\ConsoleOptionParser

checkUnchanged() protected

checkUnchanged(string $oldFile, int $headerLength, string $newFileContent)

Check whether the old and new output are the same, thus unchanged

Compares the sha1 hashes of the old and new file without header.

Parameters

string $oldFile

The existing file.

int $headerLength

The length of the file header in bytes.

string $newFileContent

The content of the new file.

Returns

bool

Whether or not the old and new file are unchanged.

defaultName() public static

defaultName()

Get the command name.

Returns the command name based on class name. For e.g. for a command with class name UpdateTableCommand the default name returned would be 'update_table'.

Returns

string

displayHelp() protected

displayHelp(\Cake\Console\ConsoleOptionParser $parser, \Cake\Console\Arguments $args, \Cake\Console\ConsoleIo $io)

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

execute() public

execute(\Cake\Console\Arguments $args, \Cake\Console\ConsoleIo $io)

Execute the command

Parameters

\Cake\Console\Arguments $args

The command arguments.

\Cake\Console\ConsoleIo $io

The console io

Returns

int|null

The exit code or null for success

executeCommand() public

executeCommand(mixed $command, array $args, ?\Cake\Console\ConsoleIo $io)

Execute another command with the provided set of arguments.

Parameters

string|\Cake\Console\CommandInterface $command

The command class name or command instance.

array $args optional

The arguments to invoke the command with.

\Cake\Console\ConsoleIo $io optional

The ConsoleIo instance to use for the executed command.

Returns

int|null

The exit code or null for success of the command.

getModelType() public

getModelType()

Get the model type to be used by this class

Returns

string

getName() public

getName()

Get the command name.

Returns

string

getOptionParser() public

getOptionParser()

Get the option parser.

You can override buildOptionParser() to define your options & arguments.

Returns

\Cake\Console\ConsoleOptionParser

Throws

RuntimeException
When the parser is invalid

getRootName() public

getRootName()

Get the root command name.

Returns

string

getTableLocator() public

getTableLocator()

Gets the table locator.

Returns

\Cake\ORM\Locator\LocatorInterface

initialize() public

initialize()

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.

loadModel() public

loadModel(?string $modelClass, ?string $modelType)

Loads and constructs repository objects required by this object

Typically used to load ORM Table objects as required. Can also be used to load other types of repository objects your application uses.

If a repository provider does not return an object a MissingModelException will be thrown.

Parameters

string|null $modelClass optional

Name of model class to load. Defaults to $this->modelClass. The name can be an alias like 'Post' or FQCN like App\Model\Table\PostsTable::class.

string|null $modelType optional

The type of repository to load. Defaults to the getModelType() value.

Returns

\Cake\Datasource\RepositoryInterface

The model instance created.

Throws

Cake\Datasource\Exception\MissingModelException
If the model class cannot be found.
UnexpectedValueException
If $modelClass argument is not provided and ModelAwareTrait::$modelClass property value is empty.

log() public

log(string $message, mixed $level, mixed $context)

Convenience method to write a message to Log. See Log::write() for more information on writing to logs.

Parameters

string $message

Log message.

int|string $level optional

Error level.

string|array $context optional

Additional log data relevant to this message.

Returns

bool

Success of log write.

modelFactory() public

modelFactory(string $type, mixed $factory)

Override a existing callable to generate repositories of a given type.

Parameters

string $type

The name of the repository type the factory function is for.

callable|\Cake\Datasource\Locator\LocatorInterface $factory

The factory function used to create instances.

run() public

run(array $argv, \Cake\Console\ConsoleIo $io)

Run the command.

Parameters

array $argv

Arguments from the CLI environment.

\Cake\Console\ConsoleIo $io

The console io

Returns

int|null

Exit code or null for success.

setModelType() public

setModelType(string $modelType)

Set the model type to be used by this class

Parameters

string $modelType

The model type

Returns

$this

setName() public

setName(string $name)

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

The name the command uses in the collection.

Returns

$this

Throws

InvalidArgumentException

setOutputLevel() protected

setOutputLevel(\Cake\Console\Arguments $args, \Cake\Console\ConsoleIo $io)

Set the output level based on the Arguments.

Parameters

\Cake\Console\Arguments $args

The command arguments.

\Cake\Console\ConsoleIo $io

The console io

setTableLocator() public

setTableLocator(\Cake\ORM\Locator\LocatorInterface $tableLocator)

Sets the table locator.

Parameters

\Cake\ORM\Locator\LocatorInterface $tableLocator

LocatorInterface instance.

Returns

$this

Property Detail

$_countMarkerError protected

Count number of marker errors found

Type

int

$_exclude protected

An array of directories to exclude.

Type

string[]

$_extractCore protected

Holds whether this call should extract the CakePHP Lib messages

Type

bool

$_file protected

Current file being processed

Type

string

$_files protected

Files from where to extract

Type

string[]

$_markerError protected

Displays marker error(s) if true

Type

bool

$_merge protected

Merge all domain strings into the default.pot file

Type

bool

$_modelFactories protected

A list of overridden model factory functions.

Type

(callable|\Cake\Datasource\Locator\LocatorInterface)[]

$_modelType protected

The model type to use.

Type

string

$_output protected

Destination path

Type

string

$_paths protected

Paths to use when looking for strings

Type

string[]

$_relativePaths protected

Use relative paths in the pot files rather than full path

Type

bool

$_storage protected

Contains all content waiting to be write

Type

array

$_tableLocator protected

Table locator instance

Type

\Cake\ORM\Locator\LocatorInterface|null

$_tokens protected

Extracted tokens

Type

array

$_translations protected

Extracted strings indexed by domain.

Type

array

$modelClass protected

This object's primary model class name. Should be a plural form.

CakePHP will not inflect the name.

Example: For an object named 'Comments', the modelClass would be 'Comments'. Plugin classes should use Plugin.Comments style names to correctly load models from the correct plugin.

Use empty string to not use auto-loading on this object. Null auto-detects based on controller name.

Type

string|null

$name protected

The name of this command.

Type

string

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.1/class-Cake.Command.I18nExtractCommand.html