webnet-fr /
database-anonymizer
| 1 | <?php |
||
| 2 | |||
| 3 | namespace WebnetFr\DatabaseAnonymizer\Config; |
||
| 4 | |||
| 5 | use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition; |
||
| 6 | |||
| 7 | /** |
||
| 8 | * @author Vlad Riabchenko <[email protected]> |
||
| 9 | */ |
||
| 10 | trait ConfigurationTrait |
||
| 11 | { |
||
| 12 | /** |
||
| 13 | * @param ArrayNodeDefinition $node |
||
| 14 | * |
||
| 15 | * @author Vlad Riabchenko <[email protected]> |
||
| 16 | */ |
||
| 17 | public function configureAnonymizer(ArrayNodeDefinition $node) |
||
| 18 | { |
||
| 19 | $node |
||
| 20 | ->children() |
||
| 21 | ->arrayNode('defaults') |
||
| 22 | ->scalarPrototype()->end() |
||
| 23 | ->end() |
||
|
0 ignored issues
–
show
Bug
introduced
by
Loading history...
|
|||
| 24 | ->arrayNode('tables') |
||
| 25 | ->arrayPrototype() |
||
| 26 | ->children() |
||
| 27 | ->booleanNode('truncate')->defaultFalse()->end() |
||
| 28 | ->arrayNode('primary_key') |
||
| 29 | ->scalarPrototype()->end() |
||
| 30 | ->end() |
||
| 31 | ->arrayNode('fields') |
||
| 32 | ->arrayPrototype() |
||
| 33 | ->variablePrototype()->end() |
||
| 34 | ->end() |
||
| 35 | ->end() // fields |
||
| 36 | ->end() |
||
| 37 | ->end() |
||
| 38 | ->end() // tables |
||
| 39 | ->end() |
||
| 40 | ->beforeNormalization() |
||
| 41 | // Pass default table configuration to field configuration. |
||
| 42 | // defaults: |
||
| 43 | // locale: fr_FR |
||
| 44 | // seed: seed_key |
||
| 45 | // tables: |
||
| 46 | // user: |
||
| 47 | // fields: |
||
| 48 | // name: |
||
| 49 | // generator: first_name |
||
| 50 | // # locale "fr_FR" will be set here. |
||
| 51 | // # seed "seed_key" will be set here. |
||
| 52 | // lastname: |
||
| 53 | // generator: first_name |
||
| 54 | // locale: en_EN |
||
| 55 | // seed: lastname_seed_key |
||
| 56 | // # locale "en_EN" overwrites default value fr_FR. |
||
| 57 | // # seed "lastname_seed_key" overwrites default value "seed_key". |
||
| 58 | ->ifTrue(static function ($v) { |
||
| 59 | return \is_array($v) && \array_key_exists('defaults', $v) && \is_array($v['defaults']); |
||
| 60 | }) |
||
| 61 | ->then(static function ($c) { |
||
| 62 | if (isset($c['tables'])) { |
||
| 63 | foreach ($c['tables'] as &$tableConfig) { |
||
| 64 | if ($tableConfig['fields']) { |
||
| 65 | foreach ($tableConfig['fields'] as &$fieldConfig) { |
||
| 66 | if (isset($c['defaults'])) { |
||
| 67 | foreach ($c['defaults'] as $defaultKey => $defaultValue) { |
||
| 68 | if (!\array_key_exists($defaultKey, $fieldConfig)) { |
||
| 69 | $fieldConfig[$defaultKey] = $defaultValue; |
||
| 70 | } |
||
| 71 | } |
||
| 72 | } |
||
| 73 | } |
||
| 74 | } |
||
| 75 | } |
||
| 76 | } |
||
| 77 | |||
| 78 | return $c; |
||
| 79 | }) |
||
| 80 | ->end() |
||
| 81 | ; |
||
| 82 | } |
||
| 83 | } |
||
| 84 |