php-extended / php-enumerable
A simple library to provide access to enumerable functionnalities in php
Requires
- php: >=8.0
Requires (Dev)
- dev-master
- 7.0.6
- 7.0.5
- 7.0.4
- 7.0.3
- 7.0.2
- 7.0.1
- 7.0.0
- 6.0.7
- 6.0.6
- 6.0.5
- 6.0.4
- 6.0.3
- 6.0.2
- 6.0.1
- 6.0.0
- 5.0.1
- 5.0.0
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.1.26
- 3.1.25
- 3.1.24
- 3.1.23
- 3.1.22
- 3.1.21
- 3.1.20
- 3.1.19
- 3.1.18
- 3.1.17
- 3.1.16
- 3.1.15
- 3.1.14
- 3.1.13
- 3.1.12
- 3.1.11
- 3.1.10
- 3.1.9
- 3.1.8
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.11
- 3.0.10
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.0.0
- 1.2.0
- 1.1.0
- 1.0.1
- 1.0.0
This package is auto-updated.
Last update: 2024-12-01 00:08:44 UTC
README
A simple library to provide access to enumerable functionnalities in php
Installation
The installation of this library is made via composer and the autoloading of all classes of this library is made through their autoloader.
- Download
composer.phar
from their website. - Then run the following command to install this library as dependency :
php composer.phar php-extended/php-enumerable ^7
Basic Usage
The basic usage of this library is as follows. This is an example implementation given a language choice to be into a closed list.
class Language extends \Enumerable
{
/**
* The German language.
*
* @return \Language
*/
public static function DE() : \Language
{
$l = static::getValue('de');
if($l === null)
$l = static::setValue('de', new static('German'));
return static::getValue('de');
}
/**
* The English language.
*
* @return \Language
*/
public static function EN() : \Language
{
$l = static::getValue('en');
if($l === null)
$l = static::setValue('en', new static('English'));
return static::getValue('en');
}
/**
* The French language.
*
* @return \Language
*/
public static function FR() : \Language
{
$l = static::getValue('fr');
if($l === null)
$l = static::setValue('fr', new static('French'));
return static::getValue('fr');
}
/**
* The name of the language, in english.
*
* @var string
*/
private $_name;
/**
* Builds a new Language object with given name.
*
* @param string $name the name of the language, in english.
*/
private function __construct(string $name)
{
$this->_name = $name;
}
/**
* Gets the name of this Language object.
*
* @return string
*/
public function getName() : string
{
return $this->_name;
}
}
This class declares three instances of the enumerable, which are Language::DE()
,
Language::EN()
, and Language::FR()
. Those instances will have the
strings 'de'
, 'en'
and 'fr'
respectively set as their ids.
Note also that Language::EN() === Language::findById('en')
is
true, as the enumerable objects are designed to be singletons.
License
MIT (See license file).