Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Database/Schema/SchemaState.php
Строк: 149
<?php

namespace IlluminateDatabaseSchema;

use 
IlluminateDatabaseConnection;
use 
IlluminateFilesystemFilesystem;
use 
SymfonyComponentProcessProcess;

abstract class 
SchemaState
{
    
/**
     * The connection instance.
     *
     * @var IlluminateDatabaseConnection
     */
    
protected $connection;

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

    
/**
     * The name of the application's migration table.
     *
     * @var string
     */
    
protected $migrationTable 'migrations';

    
/**
     * The process factory callback.
     *
     * @var callable
     */
    
protected $processFactory;

    
/**
     * The output callable instance.
     *
     * @var callable
     */
    
protected $output;

    
/**
     * Create a new dumper instance.
     *
     * @param  IlluminateDatabaseConnection  $connection
     * @param  IlluminateFilesystemFilesystem|null  $files
     * @param  callable|null  $processFactory
     * @return void
     */
    
public function __construct(Connection $connection, ?Filesystem $files null, ?callable $processFactory null)
    {
        
$this->connection $connection;

        
$this->files $files ?: new Filesystem;

        
$this->processFactory $processFactory ?: function (...$arguments) {
            return 
Process::fromShellCommandline(...$arguments)->setTimeout(null);
        };

        
$this->handleOutputUsing(function () {
            
//
        
});
    }

    
/**
     * Dump the database's schema into a file.
     *
     * @param  IlluminateDatabaseConnection  $connection
     * @param  string  $path
     * @return void
     */
    
abstract public function dump(Connection $connection$path);

    
/**
     * Load the given schema file into the database.
     *
     * @param  string  $path
     * @return void
     */
    
abstract public function load($path);

    
/**
     * Create a new process instance.
     *
     * @param  mixed  ...$arguments
     * @return SymfonyComponentProcessProcess
     */
    
public function makeProcess(...$arguments)
    {
        return 
call_user_func($this->processFactory, ...$arguments);
    }

    
/**
     * Determine if the current connection has a migration table.
     *
     * @return bool
     */
    
public function hasMigrationTable(): bool
    
{
        return 
$this->connection->getSchemaBuilder()->hasTable($this->migrationTable);
    }

    
/**
     * Specify the name of the application's migration table.
     *
     * @param  string  $table
     * @return $this
     */
    
public function withMigrationTable(string $table)
    {
        
$this->migrationTable $table;

        return 
$this;
    }

    
/**
     * Specify the callback that should be used to handle process output.
     *
     * @param  callable  $output
     * @return $this
     */
    
public function handleOutputUsing(callable $output)
    {
        
$this->output $output;

        return 
$this;
    }
}
Онлайн: 0
Реклама