Вход Регистрация
Файл: gapps/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php
Строк: 78
<?php

namespace IlluminateFoundationConsole;

use 
IlluminateConsoleCommand;
use 
IlluminateFilesystemFilesystem;
use 
IlluminateRoutingRouteCollection;

class 
RouteCacheCommand extends Command
{
    
/**
     * The console command name.
     *
     * @var string
     */
    
protected $name 'route:cache';

    
/**
     * The console command description.
     *
     * @var string
     */
    
protected $description 'Create a route cache file for faster route registration';

    
/**
     * The filesystem instance.
     *
     * @var IlluminateFilesystemFilesystem
     */
    
protected $files;

    
/**
     * Create a new route command instance.
     *
     * @param  IlluminateFilesystemFilesystem  $files
     * @return void
     */
    
public function __construct(Filesystem $files)
    {
        
parent::__construct();

        
$this->files $files;
    }

    
/**
     * Execute the console command.
     *
     * @return void
     */
    
public function fire()
    {
        
$this->call('route:clear');

        
$routes $this->getFreshApplicationRoutes();

        if (
count($routes) == 0) {
            return 
$this->error("Your application doesn't have any routes.");
        }

        foreach (
$routes as $route) {
            
$route->prepareForSerialization();
        }

        
$this->files->put(
            
$this->laravel->getCachedRoutesPath(), $this->buildRouteCacheFile($routes)
        );

        
$this->info('Routes cached successfully!');
    }

    
/**
     * Boot a fresh copy of the application and get the routes.
     *
     * @return IlluminateRoutingRouteCollection
     */
    
protected function getFreshApplicationRoutes()
    {
        
$app = require $this->laravel->bootstrapPath().'/app.php';

        
$app->make('IlluminateContractsConsoleKernel')->bootstrap();

        return 
$app['router']->getRoutes();
    }

    
/**
     * Build the route cache file.
     *
     * @param  IlluminateRoutingRouteCollection  $routes
     * @return string
     */
    
protected function buildRouteCacheFile(RouteCollection $routes)
    {
        
$stub $this->files->get(__DIR__.'/stubs/routes.stub');

        return 
str_replace('{{routes}}'base64_encode(serialize($routes)), $stub);
    }
}
Онлайн: 1
Реклама