Skip to content

Latest commit

 

History

History
67 lines (53 loc) · 1.05 KB

README.md

File metadata and controls

67 lines (53 loc) · 1.05 KB

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);        
    }
}