2017 © Pedro Peláez
 

library enumerated

Enums represent a set of predefined values. Useful for ensuring data consistency.

image

davidianbonner/enumerated

Enums represent a set of predefined values. Useful for ensuring data consistency.

  • Thursday, December 14, 2017
  • by davidianbonner
  • Repository
  • 2 Watchers
  • 0 Stars
  • 622 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 121 % Grown

The README.md

Enumerated

Author Build Status Quality Score Software License Packagist Version Coverage Status, (*1)

An enumerated type (Enum) is a data type that consists of a set of predefined values. This can be useful for ensuring data consistency. The Enumerated package provides a simple base class for creating enumerated types allowing the devloper to define values statically., (*2)

Install

Via Composer, (*3)

``` bash $ composer require davidianbonner/enumerated, (*4)


## Usage Most applications require some form of an enumerated type. PHP does not have native Enum support (yet: [https://wiki.php.net/rfc/enum](https://wiki.php.net/rfc/enum)). To get past this, we tend to pack groups of predefined values into config or settings files as arrays. This doesn't represent the data or it's type in a straightforward manner. ### Before ```php <?php return [ 'language' => [ 'php' => 'php', 'javascript' => 'js', 'css' => 'css', 'go' => 'go', ], ];

Used like so:, (*5)

$codebase->language = config('language.php');

// or

foreach (config('language') as $language) {
    echo '<option value="'.$language.'">'.$language.'</option>';
}

After

An enum would be a better fit for this set of values., (*6)

<?php

use DavidIanBonner\Enumerated\Enum;

class Language extends Enum
{
    const PHP = 'php';
    const JAVASCRIPT = 'js';
    const GO = 'go';
    const CSS = 'css';
}

Used like so:, (*7)

$codebase->language = Language::PHP;

// or

$type = Language::PHP;
$codebase->language = Language::ofType($type)->value();

// or

foreach (Language::allValues() as $language) {
    echo '<option value="'.$language.'">'.$language.'</option>';
}

Validate a value

A value can be validated against the predefined values:, (*8)

if (Language::isValid($value)) {
    // Is valid
}

Laravel Collection instance

This package requires the Laravel Support package in order to return a collection of the available values:, (*9)

// Returns an instance of Illuminate\Support\Collection
Language::collect();

Return keys

The allValues and collect method will accept a boolean argument to return the keys/constant names:, (*10)

$values = Language::allValues(true);

// Returns
[
    'PHP' => 'php',
    'JAVASCRIPT' => 'js',
    'CSS' => 'css',
    'GO' => 'go',
]

Change log

Please see CHANGELOG for more information on what has changed recently., (*11)

Testing

bash $ phpunit test, (*12)

Contributing

Please see CONTRIBUTING and CODE_OF_CONDUCT for details., (*13)

Security

If you discover any security related issues, please email davidianbonner@gmail.com instead of using the issue tracker., (*14)

Credits

License

The MIT License (MIT). Please see License File for more information., (*15)

The Versions

14/12 2017

dev-master

9999999-dev https://github.com/davidianbonner/enumerated

Enums represent a set of predefined values. Useful for ensuring data consistency.

  Sources   Download

MIT

The Requires

 

The Development Requires

enumerated davidianbonner

14/12 2017

1.0.1

1.0.1.0 https://github.com/davidianbonner/enumerated

Enums represent a set of predefined values. Useful for ensuring data consistency.

  Sources   Download

MIT

The Requires

 

The Development Requires

enumerated davidianbonner

14/12 2017

dev-analysis-qx4erB

dev-analysis-qx4erB https://github.com/davidianbonner/enumerated

Enums represent a set of predefined values. Useful for ensuring data consistency.

  Sources   Download

MIT

The Requires

 

The Development Requires

enumerated davidianbonner

26/10 2017

0.9.0

0.9.0.0 https://github.com/davidianbonner/enumerated

Enums represent a set of predefined values. Useful for ensuring data consistency.

  Sources   Download

MIT

The Requires

 

The Development Requires

enumerated davidianbonner

26/10 2017

1.0.0

1.0.0.0 https://github.com/davidianbonner/enumerated

Enums represent a set of predefined values. Useful for ensuring data consistency.

  Sources   Download

MIT

The Requires

 

The Development Requires

enumerated davidianbonner