2017 © Pedro Peláez
 

library enum

Enum lib

image

froler314/enum

Enum lib

  • Monday, October 10, 2016
  • by Froler314
  • Repository
  • 1 Watchers
  • 1 Stars
  • 4,554 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 7 % Grown

The README.md

Enum

Library for enumerate objects, (*1)

Simple use

Create enum class with constants:

class MyEnum extends Enum {
    const CONSTANT_A = 'value_a';
    const CONSTANT_B = 'value_b';
}

Use it as object or as scalar:

$enumObject = MyEnum::getInstance(MyEnum::CONSTANT_A);
echo $enumObject->getValue(); // prints 'value_a'
echo $enumObject;             // also prints 'value_a'

Validate enum by passing whole object instead of scalar:

function someFunction(MyEnum $enumObject): void
{
    // ...
}

$enumObject = MyEnum::getInstance(MyEnum::CONSTANT_A);
someFunction($enumObject);

Compare instances:

function compareFunction(MyEnum $firstEnumObject, MyEnum $secondEnumObject): bool
{
    return $firstEnumObject === $secondEnumObject       // both variants
        || $firstEnumObject->equals($secondEnumObject)  // are identical
}

Get enum instances via magic static call

/**
 * @method static self valueA()
 * @method static self valueB()
 */
class MyEnum extends Enum {
    use MagicStaticCallEnum; // use MagicStaticCallEnum trait

    const CONSTANT_A = 'value_a';
    const CONSTANT_B = 'value_b';
}

$enumObject = MyEnum::valueA(); // instead of MyEnum::getInstance(MyEnum::CONSTANT_A)

The Versions

10/10 2016

dev-naming

dev-naming

Enum lib

  Sources   Download

The Development Requires

by Alexander Dmitriev

10/10 2016

v1.1.0

1.1.0.0

Enum lib

  Sources   Download

The Development Requires

by Alexander Dmitriev

27/09 2016

dev-master

9999999-dev

Enum lib

  Sources   Download

The Development Requires

by Alexander Dmitriev

27/09 2016

v1.0.1

1.0.1.0

Enum lib

  Sources   Download

The Development Requires

by Alexander Dmitriev

25/09 2016

v1.0.0

1.0.0.0

Enum lib

  Sources   Download

The Development Requires

by Alexander Dmitriev