0 follower

Final Class Yiisoft\Yii\Gii\Component\CodeFile\CodeFileWriter

InheritanceYiisoft\Yii\Gii\Component\CodeFile\CodeFileWriter

Public Methods

Hide inherited methods

Method Description Defined By
write() Saves the generated code into files. Yiisoft\Yii\Gii\Component\CodeFile\CodeFileWriter

Method Details

Hide inherited methods

write() public method

Saves the generated code into files.

public write( Yiisoft\Yii\Gii\Component\CodeFile\CodeFile[] $files, string[] $answers ): Yiisoft\Yii\Gii\Component\CodeFile\CodeFileWriteResult
$files Yiisoft\Yii\Gii\Component\CodeFile\CodeFile[]

The code files to be saved

$answers string[]
return Yiisoft\Yii\Gii\Component\CodeFile\CodeFileWriteResult

Whether files are successfully saved without any error.

                public function write(array $files, array $answers): CodeFileWriteResult
{
    $result = new CodeFileWriteResult();
    foreach ($files as $file) {
        $fileId = $file->getId();
        $operation = $answers[$fileId];
        switch (CodeFileWriteOperationEnum::tryFrom($operation)) {
            case CodeFileWriteOperationEnum::SKIP:
                $result->addResult($file, CodeFileWriteStatusEnum::SKIPPED);
                break;
            case CodeFileWriteOperationEnum::SAVE:
                try {
                    $status = $file->save();
                } catch (Exception $e) {
                    $result->addError($file, (string)$e);
                    break;
                }
                $result->addResult($file, $status);
                break;
            default:
                $result->addError(
                    $file,
                    sprintf(
                        'Unknown operation "%s". Only the following operations are available: %s',
                        $operation,
                        implode(
                            ', ',
                            array_map(
                                fn (CodeFileWriteOperationEnum $value) => $value->value,
                                CodeFileWriteOperationEnum::cases()
                            )
                        ),
                    ),
                );
                break;
        }
    }
    return $result;
}