Exemple #1
0
<?php

namespace Phonon\Transducers;

Reduce::extend(gettype([]), "\\Phonon\\Transducers\\Reduce\\ArrayReduce");
Reduce::extend(gettype(""), "\\Phonon\\Transducers\\Reduce\\StringReduce");
Reduce::extend("resource", "\\Phonon\\Transducers\\Reduce\\FileReduce");
Reduce::extend("Traversable", "\\Phonon\\Transducers\\Reduce\\TraversableReduce");
Into::extend(gettype([]), "\\Phonon\\Transducers\\Into\\ArrayInto");
Into::extend(gettype(""), "\\Phonon\\Transducers\\Into\\StringInto");
class Transducers
{
    public static function wrap(callable $stepFn)
    {
        return new Transformer\Wrap($stepFn);
    }
    public static function reduced($value)
    {
        return new Reduced($value);
    }
    public static function isReduced($value)
    {
        return $value instanceof Reduced;
    }
    public static function ensureReduced($value)
    {
        if (self::isReduced($value)) {
            return $value;
        }
        return self::reduced($value);
    }