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

namespace IlluminateFoundationTestingTraits;

use 
IlluminateFoundationTestingAttributesSeed;
use 
IlluminateFoundationTestingAttributesSeeder;
use 
ReflectionClass;

trait 
CanConfigureMigrationCommands
{
    
/**
     * The parameters that should be used when running "migrate:fresh".
     *
     * @return array
     */
    
protected function migrateFreshUsing()
    {
        
$seeder $this->seeder();

        return 
array_merge(
            [
                
'--drop-views' => $this->shouldDropViews(),
                
'--drop-types' => $this->shouldDropTypes(),
            ],
            
$seeder ? ['--seeder' => $seeder] : ['--seed' => $this->shouldSeed()]
        );
    }

    
/**
     * Determine if views should be dropped when refreshing the database.
     *
     * @return bool
     */
    
protected function shouldDropViews()
    {
        return 
property_exists($this'dropViews') ? $this->dropViews false;
    }

    
/**
     * Determine if types should be dropped when refreshing the database.
     *
     * @return bool
     */
    
protected function shouldDropTypes()
    {
        return 
property_exists($this'dropTypes') ? $this->dropTypes false;
    }

    
/**
     * Determine if the seed task should be run when refreshing the database.
     *
     * @return bool
     */
    
protected function shouldSeed()
    {
        
$class = new ReflectionClass($this);

        do {
            if (
$class->getAttributes(Seed::class) !== []) {
                return 
true;
            }
        } while (
$class $class->getParentClass());

        return 
property_exists($this'seed') ? $this->seed false;
    }

    
/**
     * Determine the specific seeder class that should be used when refreshing the database.
     *
     * @return mixed
     */
    
protected function seeder()
    {
        
$class = new ReflectionClass($this);

        do {
            
$seeder $class->getAttributes(Seeder::class);

            if (
count($seeder) > 0) {
                return 
$seeder[0]->newInstance()->class;
            }
        } while (
$class $class->getParentClass());

        return 
property_exists($this'seeder') ? $this->seeder false;
    }
}
Онлайн: 1
Реклама