for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Mosaic\Routing;
use Mosaic\Common\Components\AbstractComponent;
use Mosaic\Routing\Loaders\LoaderChain;
use Mosaic\Routing\Loaders\LoadRoutesFromBinders;
use Mosaic\Routing\Loaders\LoadRoutesFromFile;
use Mosaic\Routing\Providers\FastRouteProvider;
/**
* @method static $this fastRoute(RouteLoader $loader = null)
*/
final class Component extends AbstractComponent
{
* @var LoaderChain
private $loader;
* @param string $implementation
* @param RouteLoader $loader
protected function __construct(string $implementation, RouteLoader $loader = null)
$this->loader = new LoaderChain($loader ? [$loader] : []);
parent::__construct($implementation);
}
* @return array
public function resolveFastRoute()
return [
new FastRouteProvider($this->loader)
];
* @param \string[] ...$paths
* @return $this
public function files(string ...$paths)
$this->loader->add(
new LoadRoutesFromFile(...$paths)
);
return $this;
* @param RouteBinder[] ...$binders
public function binders(RouteBinder ...$binders)
new LoadRoutesFromBinders(...$binders)
* @param callable $callback
public function resolveCustom(callable $callback) : array
return $callback($this->loader);