4slv/enum-generator

emun class code generator

v1.0.1 2018-06-15 13:35 UTC

This package is not auto-updated.

Last update: 2024-04-17 19:02:56 UTC


README

Генератор кода класса перечисляемого типа Enum myclabs/php-enum

Как использовать

Пример:

use EnumGenerator\EnumElement;
use EnumGenerator\EnumGenerator;

require_once 'vendor/autoload.php';

$projectPath = '/tmp/enum-generator';
$enumClassName = 'Sex';
$enumNamespace = 'Enum';
$enumClassComment = 'Пол';
$enumCodeDirRelativePath = 'enum';
$enumElementList = [
    (new EnumElement())->setName('MALE')->setValue('Male')->setComment('Мужчина'),
    (new EnumElement())->setName('FEMALE')->setValue('Female')->setComment('Женщина')
];

$enumGenerator = new EnumGenerator();
$enumGenerator
    ->setProjectPath($projectPath) // $projectPath абсолютный путь к папке проекта
    ->setClassName($enumClassName) // $enumClassName название класса с перечислениями
    ->setEnumNamespace($enumNamespace) // $enumNamespace пространство имен класса с перечислениями
    ->setClassComment($enumClassComment) // $enumClassComment комментарий к классу с перечислениями
    ->setEnumCodeRelativePath($enumCodeDirRelativePath) // $enumCodeDirRelativePath относительный путь к папке
    ->setEnumElementList($enumElementList) // $enumElementList список описания элементов перечисления
    ->generate(); // генерация класса

В результате сгенерируется файл: /tmp/enum-generator/Sex.php

со следующим содержимым:

<?php
namespace Enum;

use MyCLabs\Enum\Enum;

/** Пол */
class Sex extends Enum
{
    /** Мужчина */
    const MALE = 'Male';

    /** Женщина */
    const FEMALE = 'Female';


}