Library of Congress Cutter Number Generation Library.
This package follows the specifications presented on the Classification and Shelflisting Manual Instruction Sheet G63.
See demonstration on PHP Sandbox.
composer require gerardbalaoro/cuttergen
/**
* Initialize CutterGen instance, pass default expansion length (optional)
* - $length = 0 : no expansion
* - $length = -1 : expand all characters
*/
$cutter = new CutterGen\CutterGen(1);
/**
* Can also set default expansion length using `setLength`
*/
$cutter->setLength(2);
/**
* Generate cutter number (Prints: S658)
*/
echo $cutter->generate('Smith');
/**
* Can also pass length (Prints: S65)
*/
echo $cutter->generate('Smith', 1);
For initials Qa-Qt, use numbers 2-29
By default, the package assigns values to a character by its order in the English alpabeth, starting at 2.
To customize, simple pass a callable object to the setHandlder()
method.
$cutter = new CutterGen\CutterGen();
$cutter->setHandler('qa-qt', function($char) {
if ($char == 'a') {
return '5';
}
...
});
// Prints: Q55
echo $cutter->generate('Qaldor')