Skip to content

Latest commit

 

History

36 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Software License Latest Stable Version Total Downloads

php-enumeration

This small package can represent a enumeration field. For example in a database or an api.

Featureslist:

  • inspired and mostly used for MySQL enum-fields or API enum-fields
  • it is a simple string representation
  • no other values are allow besides the defined in the class
  • simple usage and easy to read
  • no features a enum do not have to deal with
  • with a default fallback value which will be used if no matching value exists in const´s
    • you can harden this object by throwing an exception in the getDefault-method

Install

Basic install via composer

composer require freshp/php-enumeration

Usage

Take a look in tests/fixtures to see a executable example.

Create a new object with:

  1. public const´s which represent strings
  2. implement the getDefault-method

Create an enumeration object

use FreshP\PhpEnumeration\Enum;

class EnumExample extends Enum
{
    public const TEST_CONSTANT = 'constant';
    public const TEST_DEFAULT = 'default';
    
    protected function getDefault(): string
    {
        return self::TEST_DEFAULT;
    }
}

use annotations for better ide support

use FreshP\PhpEnumeration\Enum;

/**
 * @method static self TEST_CONSTANT()
 * @method static self TEST_DEFAULT()
 */
class EnumExample extends Enum
...

make the data of the parent toArray-method public if you need to iterate over all options

class EnumExample extends Enum
{
...
    public static function listAllOptions(): array
    {
        return self::toArray();
    }
...

Use the enumeration object

  1. create the object by static call

    $enum = EnumExample::TEST_CONSTANT();
  2. create the object by normal initialization

    $enum = new EnumExample(EnumExample::TEST_CONSTANT);
  3. create a default object (the value from the getDefault-method will be called)

    $enum = new EnumExample();
  4. compare the object by using the __toString-method

    $enum->__toString() === EnumExample::TEST_CONSTANT

    or

    $enum->isEqual(EnumExample::TEST_CONSTANT())

Checks

Run each command in the project root directory.

run all check with composer script

composer quickcheck

Execute PHPUnit tests

./vendor/bin/phpunit.phar --testdox

Execute fix PHPCS problems

./vendor/bin/phpcbf.phar

Execute PHPCS checks

./vendor/bin/phpcs.phar

Execute PHPSTAN checks

./vendor/bin/phpstan.phar analyse -l max ./src

About

small package to represent a database or api enumeration field

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages