This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | |||
3 | namespace Rey\BitrixMigrations; |
||
4 | |||
5 | use Rey\BitrixMigrations\Configuration\ConfigurationInterface; |
||
6 | use Rey\BitrixMigrations\ConsoleHelper\ConfigurationHelper; |
||
7 | use Rey\BitrixMigrations\Command; |
||
8 | use Symfony\Component\Console\Application; |
||
9 | use Symfony\Component\Console\Helper\HelperSet; |
||
10 | use Symfony\Component\Console\Helper\DialogHelper; |
||
11 | use Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper as DoctrineConnectionHelper; |
||
12 | |||
13 | |||
14 | /** |
||
15 | * Class extends the Doctrine migration for use with Bitrix cms |
||
16 | * |
||
17 | * @api |
||
18 | */ |
||
19 | class MigrationManager |
||
20 | { |
||
21 | /** |
||
22 | * @var \Symfony\Component\Console\Application |
||
23 | */ |
||
24 | private $console; |
||
25 | |||
26 | /** |
||
27 | * @var \Rey\BitrixMigrations\Configuration |
||
28 | */ |
||
29 | private $config; |
||
30 | |||
31 | /** |
||
32 | * Create new instance |
||
33 | * |
||
34 | * @param Application $console \Symfony\Component\Console\Application |
||
35 | * @param ConfigurationInterface $config \Rey\BitrixMigrations\Configuration |
||
36 | * |
||
37 | * @api |
||
38 | */ |
||
39 | public function __construct(Application $console, ConfigurationInterface $config) |
||
40 | { |
||
41 | $this->console = $console; |
||
42 | $this->config = $config; |
||
0 ignored issues
–
show
|
|||
43 | } |
||
44 | |||
45 | /** |
||
46 | * Initialize Bitrix migration |
||
47 | * |
||
48 | * @api |
||
49 | */ |
||
50 | public function init() |
||
51 | { |
||
52 | $this->initializeHelpers(); |
||
53 | $this->registerCommands(); |
||
54 | } |
||
55 | |||
56 | /** |
||
57 | * Get Configuration |
||
58 | * |
||
59 | * @return \Rey\BitrixMigrations\Configuration |
||
60 | * |
||
61 | * @api |
||
62 | */ |
||
63 | public function getConfiguration() |
||
64 | { |
||
65 | return $this->config; |
||
66 | } |
||
67 | |||
68 | /** |
||
69 | * Get console instance |
||
70 | * |
||
71 | * @return \Symfony\Component\Console\Application |
||
72 | */ |
||
73 | protected function getConsole() |
||
74 | { |
||
75 | return $this->console; |
||
76 | } |
||
77 | |||
78 | /** |
||
79 | * Get Console HelperSet instance |
||
80 | * |
||
81 | * @return \Symfony\Component\Console\Helper\HelperSet |
||
82 | */ |
||
83 | protected function getHelperSet() |
||
84 | { |
||
85 | $console = $this->getConsole(); |
||
86 | |||
87 | if (!$helperSet = $console->getHelperSet()) { |
||
88 | $helperSet = new HelperSet(); |
||
89 | } |
||
90 | |||
91 | return $helperSet; |
||
92 | } |
||
93 | |||
94 | /** |
||
95 | * Initialize helpers for console |
||
96 | */ |
||
97 | protected function initializeHelpers() |
||
98 | { |
||
99 | $config = $this->getConfiguration(); |
||
100 | $console = $this->getConsole(); |
||
101 | $helperSet = $this->getHelperSet(); |
||
102 | |||
103 | if (!$helperSet->has('dialog')) { |
||
104 | $helperSet->set(new DialogHelper(), 'dialog'); |
||
0 ignored issues
–
show
The class
Symfony\Component\Console\Helper\DialogHelper has been deprecated with message: since version 2.5, to be removed in 3.0. Use {@link \Symfony\Component\Console\Helper\QuestionHelper} instead.
This class, trait or interface has been deprecated. The supplier of the file has supplied an explanatory message. The explanatory message should give you some clue as to whether and when the type will be removed from the class and what other constant to use instead. ![]() |
|||
105 | } |
||
106 | |||
107 | if (!$helperSet->has('db')) { |
||
108 | $connection = $config->getDoctrineDbConnection(); |
||
109 | $helperSet->set(new DoctrineConnectionHelper($connection), 'db'); |
||
110 | } |
||
111 | |||
112 | if (!$helperSet->has('migrations')) { |
||
113 | $migrationConfiguration = $config->getDoctrineConfiguration(); |
||
114 | $migrationConfiguration->registerMigrationsFromDirectory($migrationConfiguration->getMigrationsDirectory()); |
||
115 | |||
116 | $helperSet->set(new ConfigurationHelper($migrationConfiguration), 'migrations'); |
||
117 | } |
||
118 | |||
119 | if ($helperSet->has('em')) { |
||
120 | $console->add(new Command\MigrationsDiffDoctrineCommand()); |
||
121 | } |
||
122 | } |
||
123 | |||
124 | /** |
||
125 | * Get a list of commands |
||
126 | * |
||
127 | * @return string[] Command name |
||
128 | */ |
||
129 | protected function getCommandList() |
||
130 | { |
||
131 | return array( |
||
132 | 'MigrationsExecuteDoctrineCommand', |
||
133 | 'MigrationsGenerateDoctrineCommand', |
||
134 | 'MigrationsMigrateDoctrineCommand', |
||
135 | 'MigrationsStatusDoctrineCommand', |
||
136 | 'MigrationsVersionDoctrineCommand', |
||
137 | ); |
||
138 | } |
||
139 | |||
140 | /** |
||
141 | * Register commands for console |
||
142 | */ |
||
143 | protected function registerCommands() |
||
144 | { |
||
145 | $console = $this->getConsole(); |
||
146 | $commandsList = $this->getCommandList(); |
||
147 | $doctrineConfig = $this->getConfiguration()->getDoctrineConfiguration(); |
||
148 | |||
149 | foreach ($commandsList as $commandName) { |
||
150 | $commandClass = sprintf('\Rey\BitrixMigrations\Command\%s', $commandName); |
||
151 | $command = new $commandClass(); |
||
152 | $command->setMigrationConfiguration($doctrineConfig); |
||
153 | |||
154 | $console->add($command); |
||
155 | } |
||
156 | } |
||
157 | } |
||
158 |
Our type inference engine has found a suspicous assignment of a value to a property. This check raises an issue when a value that can be of a given class or a super-class is assigned to a property that is type hinted more strictly.
Either this assignment is in error or an instanceof check should be added for that assignment.