Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Routing/ControllerRouteCallback.php
Строк: 88
<?php

namespace ConcreteCoreRouting;

use 
ConcreteCoreSupportFacadeApplication;
use 
SymfonyComponentHttpKernel;
use 
Response;
use 
Request;

class 
ControllerRouteCallback extends RouteCallback
{
    
/**
     * @param Request $request
     * @param Route $route
     * @param array $parameters
     *
     * @return Response
     */
    
public function execute(Request $requestRoute $route$parameters)
    {
        
$resolver Application::make('ConcreteCoreControllerApplicationAwareControllerResolver');
        
$callback $resolver->getController($request);
        
$arguments $resolver->getArguments($request$callback);
        
$controller $callback[0];
        
$method $callback[1];
        
$controller->on_start();
        
$response $controller->runAction($method$arguments);

        if (
$response instanceof SymfonyComponentHttpFoundationResponse) {
            
// note, our RedirectResponse doesn't extend Response, it extends symfony2 response
            
return $response;
        }
        if (
$response instanceof ConcreteCoreViewAbstractView) {
            
$content $response->render();
        } else {
            
$content null;
            
$view $controller->getViewObject();
            if (
is_object($view)) {
                
$view->setController($controller);
                if (isset(
$view) && $view instanceof ConcreteCoreViewAbstractView) {
                    
$content $view->render();
                }
            }
        }
        
$response = new Response();
        
$response->setContent($content);

        return 
$response;
    }

    
/**
     * @return array
     */
    
public static function getRouteAttributes($callback)
    {
        
$attributes = array();
        
$attributes['_controller'] = $callback;
        
$callback = new static($callback);
        
$attributes['callback'] = $callback;

        return 
$attributes;
    }
}
Онлайн: 1
Реклама