/var/www/hkosl.com/imusiccircle/webadmin/libraies/illuminate/database/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php namespace Illuminate\Database\Console\Migrations;

use 
Symfony\Component\Console\Input\InputOption;
use 
Symfony\Component\Console\Input\InputArgument;
use 
Illuminate\Database\Migrations\MigrationCreator;

class 
MigrateMakeCommand extends BaseCommand {

    
/**
     * The console command name.
     *
     * @var string
     */
    
protected $name 'migrate:make';

    
/**
     * The console command description.
     *
     * @var string
     */
    
protected $description 'Create a new migration file';

    
/**
     * The migration creator instance.
     *
     * @var \Illuminate\Database\Migrations\MigrationCreator
     */
    
protected $creator;

    
/**
     * The path to the packages directory (vendor).
     *
     * @var string
     */
    
protected $packagePath;

    
/**
     * Create a new migration install command instance.
     *
     * @param  \Illuminate\Database\Migrations\MigrationCreator  $creator
     * @param  string  $packagePath
     * @return void
     */
    
public function __construct(MigrationCreator $creator$packagePath)
    {
        
parent::__construct();

        
$this->creator $creator;
        
$this->packagePath $packagePath;
    }

    
/**
     * Execute the console command.
     *
     * @return void
     */
    
public function fire()
    {
        
// It's possible for the developer to specify the tables to modify in this
        // schema operation. The developer may also specify if this table needs
        // to be freshly created so we can create the appropriate migrations.
        
$name $this->input->getArgument('name');

        
$table $this->input->getOption('table');

        
$create $this->input->getOption('create');

        if ( ! 
$table && is_string($create)) $table $create;

        
// Now we are ready to write the migration out to disk. Once we've written
        // the migration out, we will dump-autoload for the entire framework to
        // make sure that the migrations are registered by the class loaders.
        
$this->writeMigration($name$table$create);

        
$this->call('dump-autoload');
    }

    
/**
     * Write the migration file to disk.
     *
     * @param  string  $name
     * @param  string  $table
     * @param  bool    $create
     * @return string
     */
    
protected function writeMigration($name$table$create)
    {
        
$path $this->getMigrationPath();

        
$file pathinfo($this->creator->create($name$path$table$create), PATHINFO_FILENAME);

        
$this->line("<info>Created Migration:</info> $file");
    }

    
/**
     * Get the console command arguments.
     *
     * @return array
     */
    
protected function getArguments()
    {
        return array(
            array(
'name'InputArgument::REQUIRED'The name of the migration'),
        );
    }

    
/**
     * Get the console command options.
     *
     * @return array
     */
    
protected function getOptions()
    {
        return array(
            array(
'bench'nullInputOption::VALUE_OPTIONAL'The workbench the migration belongs to.'null),

            array(
'create'nullInputOption::VALUE_OPTIONAL'The table to be created.'),

            array(
'package'nullInputOption::VALUE_OPTIONAL'The package the migration belongs to.'null),

            array(
'path'nullInputOption::VALUE_OPTIONAL'Where to store the migration.'null),

            array(
'table'nullInputOption::VALUE_OPTIONAL'The table to migrate.'),
        );
    }

}