This package is abandoned and no longer maintained. No replacement package was suggested.

Framework Agnostic Customizable String Synthesizer with Add-in Processors and Macros.

1.1.4 2016-07-25 17:33 UTC

This package is not auto-updated.

Last update: 2019-11-04 08:48:37 UTC


Synthesizer is a framework agnostic customizable string synthesizer with add-in processors and macros.

Build Status Total Downloads Latest Stable Version License


  • Stack-based string processing
  • A variety of string processors
  • A phpspec test suite for easy development
  • Service Provider for Laravel 5


Installing Synthesizer is simple.

  1. Pull this package in through Composer.

        "require": {
            "kenarkose/synthesizer": "~1.0"
  2. Create a new Synthesizer instance

    $synthesizer = new Kenarkose\Synthesizer\Synthesizer;
        'markdown' => 'Kenarkose\Synthesizer\Processor\Markdown\Processor',
        'htmlspecialchars' => 'Kenarkose\Synthesizer\Processor\HTMLSpecialCharsProcessor'
    $synthesizer->addMacro('markdown', ['htmlspecialchars', 'markdown']);
    echo $synthesizer->markdown('Hello <synthesizer>!');
    // <p>Hello &lt;synthesizer&gt;!</p>
    echo $synthesizer->useMarkdownProcessor('Hello <synthesizer>!');
    // <p>Hello <synthesizer>!</p>

Synthesizer's public API offers a variety of methods for adding macros or processors. For more options you may refer to source code and tests as Synthesizer is well tested.

For Laravel 5 Users

The Synthesizer Service Provider for Laravel 5 registers a number of processors and macros if the config file is published. Otherwise you may add your own by using the supplied Facade.

Laravel Installation

  1. In order to register Synthesizer Service Provider add 'Kenarkose\Synthesizer\Provider\Laravel\SynthesizerServiceProvider' to the end of providers array in your config/app.php file.

    'providers' => array(
  2. You may access the services provided by Synthesizer by using the supplied Facade.

    Synthesizer::addProcessor('markdown', new Kenarkose\Synthesizer\Processor\MarkdownExtraProcessor);
    Synthesizer::addProcessor('callable', function($synthesizer, $value, $args)
        return str_replace('hi', 'hello', $value);

    In order to register the Facade add 'Synthesizer' => 'Kenarkose\Synthesizer\Provider\Laravel\SynthesizerFacade' to the end of aliases array in your config/app.php file.

    'aliases' => array(
        'App'        => 'Illuminate\Support\Facades\App',
        'Artisan'    => 'Illuminate\Support\Facades\Artisan',
        'Synthesizer'   => 'Kenarkose\Synthesizer\Provider\Laravel\SynthesizerFacade',
  3. Finally, you may register the default processors and macros for Synthesizer by publishing the configuration file. To do so, use the following command.

    php artisan vendor:publish

    Than, you will find the configuration file on the config/synthesizer.php path.


Synthesizer is released under MIT License.