Вход Регистрация
Файл: src/vendor/way/generators/src/Way/Generators/templates/Data/Migration.php
Строк: 95
<?php namespace WayGeneratorsTemplatesData;

use 
App;
use 
WayGeneratorsParsersMigrationFieldsParser;
use 
WayGeneratorsParsersMigrationNameParser;

class 
Migration {

    
/**
     * The name of the migration.
     *
     * @var string
     */
    
private $migrationName;

    
/**
     * A string representation of the migration fields.
     *
     * @var string
     */
    
private $fields;

    
/**
     * Create a new Migration template data instance.
     *
     * @param string $migrationName
     * @param string $fields
     */
    
public function __construct($migrationName$fields)
    {
        
$this->migrationName $migrationName;
        
$this->fields $fields;
    }

    
/**
     * Fetch the template data for a migration generation.
     *
     * @return array
     */
    
public function fetch()
    {
        
$parsedName $this->getParsedMigrationName();
        
$parsedFields $this->getParsedMigrationFields();

        return [
            
'class' => $this->getClass(),
            
'up'    => $this->getMigrationUp($parsedName$parsedFields),
            
'down'  => $this->getMigrationDown($parsedName$parsedFields)
        ];
    }

    
/**
     * Parse the migration name.
     *
     * @return array
     */
    
private function getParsedMigrationName()
    {
        
$nameParser = new MigrationNameParser;

        return 
$nameParser->parse($this->migrationName);
    }

    
/**
     * Parse the migration fields.
     *
     * @return array
     */
    
private function getParsedMigrationFields()
    {
        
$fieldParser = new MigrationFieldsParser;

        return 
$fieldParser->parse($this->fields);
    }

    
/**
     * Get the class name for the migration.
     */
    
private function getClass()
    {
        return 
ucwords(camel_case($this->migrationName));
    }

    
/**
     * Get the schema for the up() method.
     *
     * @param $migrationData
     * @param $fields
     * @return mixed
     */
    
private function getMigrationUp($migrationData$fields)
    {
        return 
$this->resolveSchemaCreator()->up($migrationData$fields);
    }

    
/**
     * Get the schema for the down() method.
     *
     * @param $migrationData
     * @param $fields
     * @return mixed
     */
    
private function getMigrationDown($migrationData$fields)
    {
        return 
$this->resolveSchemaCreator()->down($migrationData$fields);
    }

    
/**
     * Get a SchemaCreator instance.
     *
     * @return mixed
     */
    
private function resolveSchemaCreator()
    {
        return 
App::make('WayGeneratorsSchemaCreator');
    }

}
Онлайн: 2
Реклама