Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Url/Resolver/RouteUrlResolver.php
Строк: 86
<?php
namespace ConcreteCoreUrlResolver;

use 
ConcreteCoreUrlUrl;
use 
SymfonyComponentRoutingGeneratorUrlGenerator;
use 
SymfonyComponentRoutingGeneratorUrlGeneratorInterface;
use 
SymfonyComponentRoutingRouteCollection;

/**
 * Class RouteUrlResolver
 * @package ConcreteCoreUrlResolver
 * @deprecated Use RouterUrlResolver instead.
 */
class RouteUrlResolver implements UrlResolverInterface
{

    protected 
$generator;
    protected 
$routeList;

    protected 
$pathUrlResolver;

    public function 
__construct(UrlResolverInterface $path_url_resolver,
                                
UrlGeneratorInterface $generator,
                                
RouteCollection $route_list)
    {
        
$this->pathUrlResolver $path_url_resolver;
        
$this->generator $generator;
        
$this->routeList $route_list;
    }

    
/**
     * @return UrlGeneratorInterface
     */
    
public function getGenerator()
    {
        return 
$this->generator;
    }

    
/**
     * @return RouteCollection
     */
    
public function getRouteList()
    {
        return 
$this->routeList;
    }

    
/**
     * Resolve urls from the list of registered routes takes a string
     *
     * [code]
     * $url = URL::to('route/user_route', array('id' => 1));
     * [/code]
     *
     * OR
     *
     * [code]
     * // Register a route
     * $route_list->register('/users/{id}', 'MyApplicationUserController::view', 'user_route');
     *
     * // Create a resolver
     * $route_url_resolver = new ConcreteCoreUrlResolverRouteUrlResolver($generator, $route_list);
     *
     * // Retrieve the URL
     * $url = $route_url_resolver->resolve(array('route/user_route', array('id' => 1)));
     * [/code]
     *
     * @param array $arguments [ string $handle, array $parameters = array() ]
     *                         The first parameter MUST be prepended with
     *                         "route/" for it to be tested.
     * @param LeagueURLURLInterface $resolved
     * @return LeagueURLURLInterface
     */
    
public function resolve(array $arguments$resolved null)
    {
        if (
count($arguments) < 3) {
            
$route_handle array_shift($arguments);
            
$route_parameters count($arguments) ? array_shift($arguments) : array();

            if (
is_string($route_handle) &&
                
strtolower(substr($route_handle06)) == 'route/' &&
                
is_array($route_parameters)) {

                
$route_handle substr($route_handle6);
                if (
$route $this->getRouteList()->get($route_handle)) {
                    if (
$path $this->getGenerator()->generate($route_handle$route_parametersUrlGenerator::ABSOLUTE_PATH)) {
                        return 
$this->pathUrlResolver->resolve(array($path));
                    }
                }
            }
        }

        return 
$resolved;
    }

}
Онлайн: 1
Реклама