PHP code example of brunojunior / simple-enum

1. Go to this page and download the library: Download brunojunior/simple-enum library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

brunojunior / simple-enum example snippets



class SimpleEnum extends \SimpleEnum\Enum
{
    const FIRST_VALUE = 0;
    const SECOND_VALUE = 1;
    const THIRD_VALUE = 2;
}


class LabeledEnum extends \SimpleEnum\Enum
{
    const FIRST_VALUE = 0;
    const SECOND_VALUE = 1;
    const THIRD_VALUE = 2;

    /**
     * Specify the labels
     */
    protected static function defineList(): void
    {
        static::addEnum(static::FIRST_VALUE, 'My first value');
        static::addEnum(static::SECOND_VALUE, 'This is the second value');
        static::addEnum(static::THIRD_VALUE, 'Hey! 3rd value!');
    }
}


class ComplexEnum extends \SimpleEnum\Enum
{
    const FIRST_VALUE = 0;
    const SECOND_VALUE = 1;
    const THIRD_VALUE = 2;
    
    /**
     * A property
     */
    private $prop;

    /**
     * Specify the labels
     */
    protected static function defineList(): void
    {
        static::addEnum(static::FIRST_VALUE, 'My first value')->setProp(42);
        static::addEnum(static::SECOND_VALUE, 'This is the second value')->setProp(0);
        static::addEnum(static::THIRD_VALUE, 'Hey! 3rd value!')->setProp(-1);
    }

    /**
     * @param int $value
     * @return ComplexEnum
     */
    private function setProp(int $value):self
    {
        $this->prop = $value;
        return $this;
    }

    /**
     * @return int|null
     */
    public function getProp():?int
    {
        return $this->prop;
    }
    
    /**
     * @return string
     */
    public function doStuffWithProp():string
    {
        if ($this->prop === 42) {
          return "This is the answer to life the universe and everything";
        }
        return "I don't know";
    }
}

$receivedValue = 2;
SimpleEnum::getInstance(SimpleEnum::THIRD_VALUE) == $receivedValue;

$receivedValue = 2;
SimpleEnum::getInstance(SimpleEnum::THIRD_VALUE)->is($receivedValue);