1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace N98\Magento\Command\Database; |
4
|
|
|
|
5
|
|
|
use N98\Magento\Command\AbstractMagentoCommand; |
6
|
|
|
use N98\Magento\Command\Database\Compressor\AbstractCompressor; |
7
|
|
|
use N98\Magento\Command\Database\Compressor\Compressor; |
8
|
|
|
use N98\Magento\DbSettings; |
9
|
|
|
use N98\Util\Console\Helper\DatabaseHelper; |
10
|
|
|
use Symfony\Component\Console\Output\OutputInterface; |
11
|
|
|
|
12
|
|
|
abstract class AbstractDatabaseCommand extends AbstractMagentoCommand |
13
|
|
|
{ |
14
|
|
|
/** |
15
|
|
|
* @var array|DbSettings |
16
|
|
|
*/ |
17
|
|
|
protected $dbSettings; |
18
|
|
|
|
19
|
|
|
/** |
20
|
|
|
* @var bool |
21
|
|
|
*/ |
22
|
|
|
protected $isSocketConnect = false; |
23
|
|
|
|
24
|
|
|
/** |
25
|
|
|
* @param OutputInterface $output |
26
|
|
|
*/ |
27
|
|
|
protected function detectDbSettings(OutputInterface $output) |
28
|
|
|
{ |
29
|
|
|
$database = $database = $this->getDatabaseHelper(); |
30
|
|
|
$this->dbSettings = $database->getDbSettings($output); |
31
|
|
|
} |
32
|
|
|
|
33
|
|
|
/** |
34
|
|
|
* @param $name |
35
|
|
|
* |
36
|
|
|
* @return mixed |
37
|
|
|
*/ |
38
|
|
|
public function __get($name) |
39
|
|
|
{ |
40
|
|
|
if ($name == '_connection') { |
41
|
|
|
// TODO(tk): deprecate |
|
|
|
|
42
|
|
|
return $this->getDatabaseHelper()->getConnection(); |
43
|
|
|
} |
44
|
|
|
} |
45
|
|
|
|
46
|
|
|
/** |
47
|
|
|
* Generate help for compression |
48
|
|
|
* |
49
|
|
|
* @return string |
50
|
|
|
*/ |
51
|
|
|
protected function getCompressionHelp() |
52
|
|
|
{ |
53
|
|
|
$messages = array(); |
54
|
|
|
$messages[] = ''; |
55
|
|
|
$messages[] = '<comment>Compression option</comment>'; |
56
|
|
|
$messages[] = ' Supported compression: gzip'; |
57
|
|
|
$messages[] = ' The gzip cli tool has to be installed.'; |
58
|
|
|
$messages[] = ' Additionally, for data-to-csv option tar cli tool has to be installed too.'; |
59
|
|
|
|
60
|
|
|
return implode(PHP_EOL, $messages); |
61
|
|
|
} |
62
|
|
|
|
63
|
|
|
/** |
64
|
|
|
* @param string $type |
65
|
|
|
* @return Compressor |
66
|
|
|
* @deprecated Since 1.97.29; use AbstractCompressor::create() instead |
67
|
|
|
*/ |
68
|
|
|
protected function getCompressor($type) |
69
|
|
|
{ |
70
|
|
|
return AbstractCompressor::create($type); |
71
|
|
|
} |
72
|
|
|
|
73
|
|
|
/** |
74
|
|
|
* @return string |
75
|
|
|
* |
76
|
|
|
* @deprecated Please use database helper |
77
|
|
|
*/ |
78
|
|
|
protected function getMysqlClientToolConnectionString() |
79
|
|
|
{ |
80
|
|
|
return $this->getDatabaseHelper()->getMysqlClientToolConnectionString(); |
81
|
|
|
} |
82
|
|
|
|
83
|
|
|
/** |
84
|
|
|
* Creates a PDO DSN for the adapter from $this->_config settings. |
85
|
|
|
* |
86
|
|
|
* @see Zend_Db_Adapter_Pdo_Abstract |
87
|
|
|
* @return string |
88
|
|
|
* |
89
|
|
|
* @deprecated Please use database helper |
90
|
|
|
*/ |
91
|
|
|
protected function _dsn() |
92
|
|
|
{ |
93
|
|
|
return $this->getDatabaseHelper()->dsn(); |
94
|
|
|
} |
95
|
|
|
|
96
|
|
|
/** |
97
|
|
|
* @return DatabaseHelper |
98
|
|
|
*/ |
99
|
|
|
protected function getDatabaseHelper() |
100
|
|
|
{ |
101
|
|
|
return $this->getHelper('database'); |
102
|
|
|
} |
103
|
|
|
|
104
|
|
|
/** |
105
|
|
|
* @param array $excludes |
106
|
|
|
* @param array $definitions |
107
|
|
|
* @param array $resolved Which definitions where already resolved -> prevent endless loops |
108
|
|
|
* |
109
|
|
|
* @return array |
110
|
|
|
* |
111
|
|
|
* @deprecated Please use database helper |
112
|
|
|
*/ |
113
|
|
|
protected function resolveTables(array $excludes, array $definitions, array $resolved = array()) |
114
|
|
|
{ |
115
|
|
|
return $this->getHelper('database')->resolveTables($excludes, $definitions, $resolved); |
|
|
|
|
116
|
|
|
} |
117
|
|
|
} |
118
|
|
|
|
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.