/** * Do some stuff on file. * * @param array $configuration * @param FileContainer $fileContainer * * @return void */ public function generate(array $configuration, FileContainer $fileContainer) { foreach ($configuration['enums'] as $enumName => $enumConfiguration) { $fqcn = $this->createEnumFqcn($configuration, $enumName); $file = new ClassFileDefinition($enumName, $enumConfiguration, $fqcn); $file->setParent(new FullyQualifiedClassName('MyCLabs\\Enum\\Enum')); $file->setPrefix(ClassPrefix::FINAL_PREFIX()); foreach ($enumConfiguration['items'] as $item) { $file->addConstant(new ConstantDefinition(new PhpVariableName($item), new StringValue($item))); } $fileContainer->addFile($file, [Tag::ENUM]); } }