Skip to content

zinvapel/enumeration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BaseEnumeration class

Usage examples:

  • Own enum:
<?php

namespace App\Status;

use Zinvapel\Enumeration\BaseEnumeration;

class Status extends BaseEnumeration
{
    public const ACTIVE = 'active';
    
    public const INACTIVE = 'inactive';
    
    protected $names = [
        self::ACTIVE => 'Active',
        self::INACTIVE => 'Inactive', 
    ];
    
    /**
     * @return bool
     */
    public function isActive(): bool
    {
        return $this->eq(self::ACTIVE);        
    }
}
  • In code:
...
$status = new Status(Status::INACTIVE);

if ($status->neq(new Status(Status::ACTIVE))) {
    // do something with not active status
}
...
  • With static constructors:
<?php

namespace App\Status;

use Zinvapel\Enumeration\BaseEnumeration;

class Status extends BaseEnumeration
{
    public const ACTIVE = 'active';
    
    protected $names = [
        self::ACTIVE => 'Active', 
    ];
    
    /**
     * @return Status
     */
    public static function active(): Status
    {
        return new self(self::ACTIVE);        
    }
}

About

An enumeration class

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages