1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace Frameworkless; |
4
|
|
|
|
5
|
|
|
use Symfony\Component\Console\Application; |
6
|
|
|
use Symfony\Component\Console\Input\InputInterface; |
7
|
|
|
use Symfony\Component\Console\Output\OutputInterface; |
8
|
|
|
use Symfony\Component\Console\Input\InputArgument; |
9
|
|
|
use Symfony\Component\Console\Input\InputOption; |
10
|
|
|
use Symfony\Component\Finder\Finder; |
11
|
|
|
|
12
|
|
|
class Console extends Application |
13
|
|
|
{ |
14
|
|
|
/** |
15
|
|
|
* Gets the name of the command based on input. |
16
|
|
|
* |
17
|
|
|
* @param InputInterface $input The input interface |
18
|
|
|
* |
19
|
|
|
* @return string The command name |
20
|
|
|
*/ |
21
|
|
|
// protected function getCommandName(InputInterface $input) |
|
|
|
|
22
|
|
|
// { |
23
|
|
|
// // This should return the name of your command. |
24
|
|
|
// return 'my_command'; |
25
|
|
|
// } |
26
|
|
|
// |
27
|
|
|
// protected function my_command(){ |
28
|
|
|
// exit('f'); |
29
|
|
|
// } |
30
|
|
|
|
31
|
|
|
/** |
32
|
|
|
* Gets the default commands that should always be available. |
33
|
|
|
* |
34
|
|
|
* @return array An array of default Command instances |
35
|
|
|
*/ |
36
|
|
|
protected function getDefaultCommands() |
37
|
|
|
{ |
38
|
|
|
// Keep the core default commands to have the HelpCommand |
39
|
|
|
// which is used when using the --help option |
40
|
|
|
$defaultCommands = parent::getDefaultCommands(); |
41
|
|
|
|
42
|
|
|
// $defaultCommands[] = new MyCommand(); |
|
|
|
|
43
|
|
|
$this->register('packages:install') |
44
|
|
|
->setDescription('Say hello to someone on the command line.') |
45
|
|
|
->setDefinition(array( |
46
|
|
|
new InputArgument('name', InputArgument::OPTIONAL, 'The name of the person to say hello to.', 'Stranger'), |
47
|
|
|
)) |
48
|
|
|
->setCode(function (InputInterface $input, OutputInterface $output) { |
|
|
|
|
49
|
|
|
|
50
|
|
|
$finder = \Symfony\Component\Finder\Finder::create(); |
51
|
|
|
|
52
|
|
|
$root_path = __DIR__ . "../.."; |
53
|
|
|
|
54
|
|
|
$iterator = $finder |
55
|
|
|
->files() |
56
|
|
|
->in($root_path . "/vendor/*/*/db"); |
57
|
|
|
|
58
|
|
|
foreach ($iterator as $file) { |
59
|
|
|
//print $file->getRealpath() . PHP_EOL; |
|
|
|
|
60
|
|
|
|
61
|
|
|
// Dump the relative path to the file, omitting the filename |
62
|
|
|
//var_dump($file->getRelativePath()); |
|
|
|
|
63
|
|
|
|
64
|
|
|
// Dump the relative path to the file |
65
|
|
|
//var_dump($file->getRelativePathname()); |
|
|
|
|
66
|
|
|
|
67
|
|
|
if (!copy($file->getRealpath(), $root_path . '/db/' . $file->getRelativePathname())) { |
68
|
|
|
echo sprintf("error copy migration %s..." . PHP_EOL, $file->getRelativePathname()); |
69
|
|
|
} |
70
|
|
|
else{ |
71
|
|
|
echo sprintf("copy migration %s" . PHP_EOL, $file->getRelativePathname()); |
72
|
|
|
} |
73
|
|
|
} |
74
|
|
|
|
75
|
|
|
echo "completed!" . PHP_EOL; |
76
|
|
|
|
77
|
|
|
|
78
|
|
|
}); |
79
|
|
|
|
80
|
|
|
return $defaultCommands; |
81
|
|
|
} |
82
|
|
|
|
83
|
|
|
/** |
84
|
|
|
* Overridden so that the application doesn't expect the command |
85
|
|
|
* name to be the first argument. |
86
|
|
|
*/ |
87
|
|
|
public function getDefinition() |
88
|
|
|
{ |
89
|
|
|
$inputDefinition = parent::getDefinition(); |
90
|
|
|
// clear out the normal first argument, which is the command name |
91
|
|
|
$inputDefinition->setArguments(); |
92
|
|
|
|
93
|
|
|
return $inputDefinition; |
94
|
|
|
} |
95
|
|
|
} |
Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.
The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.
This check looks for comments that seem to be mostly valid code and reports them.