mirror of
https://github.com/flarum/core.git
synced 2025-10-12 07:24:27 +02:00
Combine URL generator classes into one
This commit is contained in:
59
src/Http/UrlGenerator.php
Normal file
59
src/Http/UrlGenerator.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Flarum.
|
||||
*
|
||||
* (c) Toby Zerner <toby.zerner@gmail.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Flarum\Http;
|
||||
|
||||
use Flarum\Foundation\Application;
|
||||
|
||||
class UrlGenerator
|
||||
{
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $routes = [];
|
||||
|
||||
/**
|
||||
* @param Application $app
|
||||
*/
|
||||
public function __construct(Application $app)
|
||||
{
|
||||
$this->app = $app;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a named route collection for URL generation.
|
||||
*
|
||||
* @param string $key
|
||||
* @param RouteCollection $routes
|
||||
* @param string $prefix
|
||||
* @return static
|
||||
*/
|
||||
public function addCollection($key, RouteCollection $routes, $prefix = null)
|
||||
{
|
||||
$this->routes[$key] = new RouteCollectionUrlGenerator(
|
||||
$this->app->url($prefix),
|
||||
$routes
|
||||
);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve an URL generator instance for the given named route collection.
|
||||
*
|
||||
* @param string $collection
|
||||
* @return RouteCollectionUrlGenerator
|
||||
*/
|
||||
public function to($collection)
|
||||
{
|
||||
return $this->routes[$collection];
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user