Files
crm-ms1/v4_ci4/system/Commands/Generators/TransformerGenerator.php
2026-05-27 11:44:10 -04:00

95 lines
2.0 KiB
PHP

<?php
declare(strict_types=1);
/**
* This file is part of CodeIgniter 4 framework.
*
* (c) CodeIgniter Foundation <admin@codeigniter.com>
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace CodeIgniter\Commands\Generators;
use CodeIgniter\CLI\BaseCommand;
use CodeIgniter\CLI\GeneratorTrait;
/**
* Generates a skeleton transformer file.
*/
class TransformerGenerator extends BaseCommand
{
use GeneratorTrait;
/**
* The Command's Group
*
* @var string
*/
protected $group = 'Generators';
/**
* The Command's Name
*
* @var string
*/
protected $name = 'make:transformer';
/**
* The Command's Description
*
* @var string
*/
protected $description = 'Generates a new transformer file.';
/**
* The Command's Usage
*
* @var string
*/
protected $usage = 'make:transformer <name> [options]';
/**
* The Command's Arguments
*
* @var array<string, string>
*/
protected $arguments = [
'name' => 'The transformer class name.',
];
/**
* The Command's Options
*
* @var array<string, string>
*/
protected $options = [
'--namespace' => 'Set root namespace. Default: "APP_NAMESPACE".',
'--suffix' => 'Append the component title to the class name (e.g. User => UserTransformer).',
'--force' => 'Force overwrite existing file.',
];
/**
* Actually execute a command.
*/
public function run(array $params)
{
$this->component = 'Transformer';
$this->directory = 'Transformers';
$this->template = 'transformer.tpl.php';
$this->classNameLang = 'CLI.generator.className.transformer';
$this->generateClass($params);
}
/**
* Prepare options and do the necessary replacements.
*/
protected function prepare(string $class): string
{
return $this->parseTemplate($class);
}
}