<?php namespace Illuminate\Database\Console\Migrations; use Illuminate\Support\Composer; use Illuminate\Database\Migrations\MigrationCreator; // namespace a class MigrateMakeCommand extends BaseCommand {// MigrateMakeCommand extends BaseCommand /** * The console command signature. * * @var string */ // The console command signature. protected $signature = 'make:migration {name : The name of the migration.} {--create= : The table to be created.} {--table= : The table to migrate.} {--path= : The location where the migration file should be created.}'; // too long signature /** * The console command description. * * @var string */ protected $description = 'Create a new migration file';// description /** * The migration creator instance. * * @var \Illuminate\Database\Migrations\MigrationCreator */ protected $creator;//The migration creator instance. /** * The Composer instance. * * @var \Illuminate\Support\Composer */ protected $composer;// set composer /** * Create a new migration install command instance. * * @param \Illuminate\Database\Migrations\MigrationCreator $creator * @param \Illuminate\Support\Composer $composer * @return void */ public function __construct(MigrationCreator $creator, Composer $composer) { parent::__construct(); $this->creator = $creator; $this->composer = $composer; }// __construct /** * Execute the console command. * * @return void */ public function fire() {// fire just execute the console command // 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');// get name $table = $this->input->getOption('table');// get table $create = $this->input->getOption('create');// get create if (! $table && is_string($create)) { $table = $create; }// set table be 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); // a wrap function to migration something and write it. $this->composer->dumpAutoloads();// use Auto loads } /** * Write the migration file to disk. * * @param string $name * @param string $table * @param bool $create * @return string */ protected function writeMigration($name, $table, $create) {// write the migration file to disk $path = $this->getMigrationPath();// set the path $file = pathinfo($this->creator->create($name, $path, $table, $create), PATHINFO_FILENAME); // get file $this->line("<info>Created Migration:</info> $file"); }// use a big wrap function /** * Get migration path (either specified by '--path' option or default location). * * @return string */ protected function getMigrationPath() {// Get migration path (either specified by "--path" option or default location) if (! is_null($targetPath = $this->input->getOption('path'))) { return $this->laravel->basePath().'/'.$targetPath; }// get this son class base path return parent::getMigrationPath();// use default path. } }
[李景山php]每天laravel-20161125|MigrateMakeCommand.php
原创
©著作权归作者所有:来自51CTO博客作者lijingsan1的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章