ngabor84/enum

Enum is a simple implementation of php enumeration type.

v0.3.2 2017-03-14 07:03 UTC

This package is auto-updated.

Last update: 2024-10-24 08:36:31 UTC


README

#Enum

Codeship Status for ngabor84/enum

About

Enum is a simple implementation of php's missing enumeration type.

Requirements

  • PHP 7.0 or above

Installation

Install Enum via the composer package manager from packagist ngabor84/enum.

Usage

// Define a new Enum type
class Status extends Enum {

    const ACTIVE = 'active';
    
    const PASSIVE = 'pasive';
    
}

// Use the new Status Enum type
$carStatus = new Status(Status::ACTIVE);
$carStatus->getValue(); // return 'active';

$carStatus2 = new Status();
$carStatus2->setValue(Status::PASSIVE);

if ($carStatus2->isEqualTo($carStatus)) { // it will be false
    echo "\$carStatus2 and \$carStatus has the same value";
} else { // this will be printed
    echo "\$carStatus2 and \$carStatus has different value"; 
    echo "\$carStatus2: $carStatus2"; // print '$carStatus2: passive'
}

Status::isValidValue('active'); // return true
Status::isValidKey('INACTIVE'); // return false
Status::getKeyByValue('passive'); // return 'PASSIVE'
Status::listOptions(); // return ['ACTIVE' => 'active', 'PASSIVE' => 'passive']
Status::listKeys(); // return ['ACTIVE', 'PASSIVE']
Status::listValues(); // return ['active', 'passive']
Status::getDefaultValue(); // return 'active' (it's the first constants value by default, but this method is also overridable)