RSS Git Download  Clone
Raw Blame History
<?php

namespace Framework;

use Pimple\Container;

class CallbackResolver
{
    private const PATTERN = '/^[A-Za-z0-9._\-]+:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/';

    private $app;

    public function __construct(Container $app)
    {
        $this->app = $app;
    }

    public function resolveCallback($name)
    {
        if (is_string($name) && preg_match(self::PATTERN, $name)) {
            list($service, $method) = explode(':', $name, 2);
            return [$this->app[$service], $method];
        }

        return $name;
    }
}