hylianshield/alphabet
最新稳定版本:1.0.0
Composer 安装命令:
composer require hylianshield/alphabet
包简介
Library to support operations on a given alphabet
README 文档
README
The alphabet library is a means to standardize iterating over a given alphabet. It is useful for code that deals with encoding, cryptography or text manipulation.
Installation
composer require hylianshield/alphabet:^1.0
Usage
The alphabet constructor accepts 0 (zero) or more arguments, all of the type string.
The alphabet can function as an iterator and give you the number of entries.
<?php use \HylianShield\Alphabet\Alphabet; $alphabet = new Alphabet('A', 'B', 'C'); echo sprintf( 'Found %d entries:', count($alphabet) ) . PHP_EOL; foreach ($alphabet as $character) { echo $character . PHP_EOL; }
Outputs:
Found 3 entries:
A
B
C
Alphabet unpacking
If the input of the alphabet exists in a PHP array, one can use argument unpacking to populate the alphabet:
<?php use \HylianShield\Alphabet\Alphabet; $input = range('A', 'Z'); $alphabet = new Alphabet(...$input); echo sprintf( 'Alphabet consists of %d characters.', count($alphabet) );
Outputs:
Alphabet consists of 26 characters.
Alphabet (de)normalization
When turning back the alphabet into a flat structure, one can use the built-in PHP function, iterator_to_array.
<?php use \HylianShield\Alphabet\Alphabet; /** * @var Alphabet $alphabet * @var string[] $normalized */ $normalized = iterator_to_array($alphabet, false); // And to de-normalize the alphabet again, simply unpack the array. $alphabet = new Alphabet(...$normalized);
The second argument to iterator_to_array is set to false, since the keys do
not need to be interpreted and/or transformed.
It is a small performance optimization.
Testing
To run the unit tests, to check the code, simply run one of the pre-configured composer scripts:
composer testRuns PHPUnitcomposer coverageRuns PHPUnit with text coveragecomposer coverage-htmlRuns PHPUnit with HTML coverage and opens the result in the browser.
统计信息
- 总下载量: 11k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2017-01-01