1
|
|
|
<?php |
2
|
|
|
/** |
3
|
|
|
* neuralyzer : Data Anonymization Library and CLI Tool |
4
|
|
|
* |
5
|
|
|
* PHP Version 7.1 |
6
|
|
|
* |
7
|
|
|
* @author Emmanuel Dyan |
8
|
|
|
* @author Rémi Sauvat |
9
|
|
|
* @copyright 2018 Emmanuel Dyan |
10
|
|
|
* |
11
|
|
|
* @package edyan/neuralyzer |
12
|
|
|
* |
13
|
|
|
* @license GNU General Public License v2.0 |
14
|
|
|
* |
15
|
|
|
* @link https://github.com/edyan/neuralyzer |
16
|
|
|
*/ |
17
|
|
|
|
18
|
|
|
namespace Edyan\Neuralyzer\Console\Commands; |
19
|
|
|
|
20
|
|
|
use Symfony\Component\Console\Command\Command; |
21
|
|
|
use Symfony\Component\Console\Input\InputInterface; |
22
|
|
|
use Symfony\Component\Console\Input\InputOption; |
23
|
|
|
use Symfony\Component\Console\Output\OutputInterface; |
24
|
|
|
|
25
|
|
|
/** |
26
|
|
|
* Command to generate an example config file |
27
|
|
|
*/ |
28
|
|
|
class ConfigExampleCommand extends Command |
29
|
|
|
{ |
30
|
|
|
/** |
31
|
|
|
* Set the command shortcut to be used in configuration |
32
|
|
|
* |
33
|
|
|
* @var string |
34
|
|
|
*/ |
35
|
|
|
protected $command = 'config:example'; |
36
|
|
|
|
37
|
|
|
|
38
|
|
|
/** |
39
|
|
|
* Configure the command |
40
|
|
|
* |
41
|
|
|
* @return void |
42
|
|
|
*/ |
43
|
13 |
|
protected function configure() |
44
|
|
|
{ |
45
|
|
|
// First command : Test the DB Connexion |
46
|
13 |
|
$this->setName($this->command) |
47
|
13 |
|
->setDescription( |
48
|
13 |
|
'Generate an example configuration for the Anonymizer' |
49
|
13 |
|
)->setHelp( |
50
|
13 |
|
'This command will take all default values from the config validation' . PHP_EOL . |
51
|
13 |
|
"Usage: neuralyzer <info>{$this->command}</info>" |
52
|
|
|
); |
53
|
13 |
|
} |
54
|
|
|
|
55
|
|
|
/** |
56
|
|
|
* Execute the command |
57
|
|
|
* |
58
|
|
|
* @param InputInterface $input |
59
|
|
|
* @param OutputInterface $output |
60
|
|
|
* |
61
|
|
|
* @return void |
62
|
|
|
*/ |
63
|
|
|
protected function execute(InputInterface $input, OutputInterface $output) |
64
|
|
|
{ |
65
|
|
|
$dumper = new \Symfony\Component\Config\Definition\Dumper\YamlReferenceDumper; |
66
|
|
|
$config = $dumper->dump( |
67
|
|
|
new \Edyan\Neuralyzer\Configuration\ConfigDefinition([]) |
|
|
|
|
68
|
|
|
); |
69
|
|
|
|
70
|
|
|
$output->writeLn($config); |
71
|
|
|
} |
72
|
|
|
} |
73
|
|
|
|
This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.
If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.
In this case you can add the
@ignore
PhpDoc annotation to the duplicate definition and it will be ignored.