Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Testing/Concerns/TestViews.php
Строк: 55
<?php

namespace IlluminateTestingConcerns;

use 
IlluminateSupportFacadesFile;
use 
IlluminateSupportFacadesParallelTesting;

trait 
TestViews
{
    
/**
     * The original compiled view path prior to appending the token.
     *
     * @var string|null
     */
    
protected static $originalCompiledViewPath null;

    
/**
     * Boot test views for parallel testing.
     *
     * @return void
     */
    
protected function bootTestViews()
    {
        
ParallelTesting::setUpProcess(function () {
            if (
$path $this->parallelSafeCompiledViewPath()) {
                
File::ensureDirectoryExists($path);
            }
        });

        
ParallelTesting::setUpTestCase(function () {
            if (
$path $this->parallelSafeCompiledViewPath()) {
                
$this->switchToCompiledViewPath($path);
            }
        });

        
ParallelTesting::tearDownProcess(function () {
            if (
$path $this->parallelSafeCompiledViewPath()) {
                
File::deleteDirectory($path);
            }
        });
    }

    
/**
     * Get the test compiled view path.
     *
     * @return string|null
     */
    
protected function parallelSafeCompiledViewPath()
    {
        
self::$originalCompiledViewPath ??= $this->app['config']->get('view.compiled''');

        if (! 
self::$originalCompiledViewPath) {
            return 
null;
        }

        return 
rtrim(self::$originalCompiledViewPath'/')
            .
'/test_'
            
.ParallelTesting::token();
    }

    
/**
     * Switch to the given compiled view path.
     *
     * @param  string  $path
     * @return void
     */
    
protected function switchToCompiledViewPath($path)
    {
        
$this->app['config']->set('view.compiled'$path);

        if (
$this->app->resolved('blade.compiler')) {
            
$compiler $this->app['blade.compiler'];

            (function () use (
$path) {
                
$this->cachePath $path;
            })->
bindTo($compiler$compiler)();
        }
    }
}
Онлайн: 1
Реклама