2017 © Pedro Peláez
 

library alphabet

Library to support operations on a given alphabet

image

hylianshield/alphabet

Library to support operations on a given alphabet

  • Sunday, January 1, 2017
  • by johmanx10
  • Repository
  • 2 Watchers
  • 0 Stars
  • 172 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 79 % Grown

The README.md

Introduction

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., (*1)

Installation

composer require hylianshield/alphabet:^1.0

Usage

The alphabet constructor accepts 0 (zero) or more arguments, all of the type string., (*2)

The alphabet can function as an iterator and give you the number of entries., (*3)

<?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:, (*4)

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:, (*5)

<?php
use \HylianShield\Alphabet\Alphabet;

$input    = range('A', 'Z');
$alphabet = new Alphabet(...$input);

echo sprintf(
    'Alphabet consists of %d characters.',
    count($alphabet)
);

Outputs:, (*6)

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., (*7)

<?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., (*8)

Testing

To run the unit tests, to check the code, simply run one of the pre-configured composer scripts:, (*9)

  • composer test Runs PHPUnit
  • composer coverage Runs PHPUnit with text coverage
  • composer coverage-html Runs PHPUnit with HTML coverage and opens the result in the browser.

The Versions

01/01 2017

dev-master

9999999-dev

Library to support operations on a given alphabet

  Sources   Download

Apache-2.0

The Requires

  • php ^7.0
  • ext-spl ^7.0

 

The Development Requires

01/01 2017

1.0.0

1.0.0.0

Library to support operations on a given alphabet

  Sources   Download

Apache-2.0

The Requires

  • php ^7.0
  • ext-spl ^7.0

 

The Development Requires