2017 © Pedro Peláez
 

library string-processor

PHP string processing library.

image

kolyunya/string-processor

PHP string processing library.

  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 5 % Grown

The README.md

PHP string processing library

Status

Build Status Code Climate Latest Stable Version, (*1)

Description

This library provides a collection of string processors., (*2)

Installation

This library is composer-enabled. The recommended way of using it in your project is to require it via composer., (*3)

composer require kolyunya/string-processor

Single processor usage

Basic usage

Each processor implements the ProcessorInterface which contains the process method:, (*4)

/**
 * Processes a string and returns a processed version of the original string.
 * @param string $string A string to process.
 * @return string A processed version of the original string.
 */
public function process($string);

Construct a processor and run process($string) on it:, (*5)

$processor = new Processor();
echo $processor->process($string);

Shorthand usage

You can also use a processor without even instantiating it. Each processor has a static run method., (*6)

/**
 * Processes a string and returns a processed version of the original string.
 * @param string $string A string to process.
 * @param object|array $parameters Parameters passed to the processor's constructor.
 * @return string A processed version of the original string.
 */
public static function run($string, $parameters = array());

You can pass parameters to the processor's constructor in the $parameters array. You can also pass a single parameter without wrapping it into an array., (*7)

echo KebabCaseFormatter::run('snake_case'); // Output: "snake-case"
echo Translator::run(
    'Лорем ипсум долор сит амет',
    new RuEnDictionary()
); // Output: "Lorem ipsum dolor sit amet"

Processors combination

Multiprocessor usage

There is a special processor (Multiprocessor) which allows you to combine multiple processors in one. Suppose you want to convert a string to an UPPER-KEBAB case. You can combine two processors using Multiprocessor to solve this problem., (*8)

$processor = new Multiprocessor([
    new KebabCaseFormatter(),
    new UpperCaseFormatter(),
]);
echo $processor->process('snake_case'); // Output: "SNAKE-CASE"
echo $processor->process('CamelCase'); // Output: "CAMEL-CASE"

The UpperCaseFormatter will be applied after the KebabCaseFormatter. Note that either the processors order does not matter in the first example, it actually matters in the second one., (*9)

Another common problem example is to generate URL slugs. A string should be purified from punctuation characters, converted to the kebab-case and transliterated. Combine the PunctuationStripper, the KebabCaseFormatter and the Translator using Multiprocessor., (*10)

$processor = new Multiprocessor([
    new RuEnTranslator(),
    new AlphabeticalPurifier(),
    new KebabCaseFormatter(),
]);
echo $processor->process('Лорем ипсум долор сит амет'); // Output: "lorem-ipsum-dolor-sit-amet"
echo $processor->process('Привет, Мир!'); // Output: "privet-mir"

Processors decoration

Each processor is a decorator. The ProcessorInterface contains the decorate method:, (*11)

/**
 * Decorates supplied processor with the current processor.
 * @param ProcessorInterface $processor Processor to decorate.
 * @return ProcessorInterface Current processor.
 */
public function decorate(ProcessorInterface $processor);

That means that the above example can be implemented using processors decoration. The Multiprocessor usage is somewhat more readable though., (*12)

$processor =
(new RuEnTranslator())->decorate(
    (new KebabCaseFormatter())->decorate(
        (new PunctuationStripper())
    )
);
echo $processor->process('Лорем ипсум долор сит амет'); // Output: "lorem-ipsum-dolor-sit-amet"
echo $processor->process('Привет, Мир!'); // Output: "privet-mir"

Available processors

Currently the following processors are implemented: * Case switchers - format strings to arbitrary formats. * CamelCaseFormatter - formats a string to the CamelCase. * KebabCaseFormatter - formats a string to the kebab-case. * SnakeCaseFormatter - formats a string to the snake_case. * UpperCaseFormatter - formats a string to the UPPER CASE. * LowerCaseFormatter - formats a string to the lower case. * Translators - transliterate strings from one language to another. * RuEnTranslator - transliterates strings from Russian to English and the other way around. * Purifiers - purify strings. * PunctuationStripper - Strips punctuation characters. * AlphabeticalPurifier - Strips non-alphabetical characters. * Multiprocessor - combines multiple processors., (*13)

The Versions

21/04 2017

dev-master

9999999-dev https://github.com/Kolyunya/string-processor

PHP string processing library.

  Sources   Download

GNU GPL v3.0

The Requires

  • php >=5.3 <8.0

 

The Development Requires

parser string processor camel-case kebab-case snake-case string-manipulation string-processing string-parsing

20/04 2017

1.0.0

1.0.0.0 https://github.com/Kolyunya/string-processor

PHP string processing library.

  Sources   Download

GNU GPL v3.0

The Requires

  • php >=5.3 <8.0

 

The Development Requires

string camel-case kebab-case snake-case string-manipulation string-processing string-parsing