Skip to content

Commit ab3f179

Browse files
committed
add exclude-pattern argument to compiler
1 parent 9d3bae5 commit ab3f179

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

dev/tools/Magento/Tools/Di/compiler.php

+7-2
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,15 @@
3232
'extra-classes-file=s' => 'path to file with extra proxies and factories to generate',
3333
'generation=s' => 'absolute path to generated classes, <magento_root>/var/generation by default',
3434
'di=s' => 'absolute path to DI definitions directory, <magento_root>/var/di by default',
35+
'exclude-pattern=s' => 'allows to exclude Paths from compilation (default is #[\\\\/]m1[\\\\/]#i)',
3536
]
3637
);
3738
$opt->parse();
3839

3940
$generationDir = $opt->getOption('generation') ? $opt->getOption('generation') : $rootDir . '/var/generation';
4041
$diDir = $opt->getOption('di') ? $opt->getOption('di') : $rootDir . '/var/di';
42+
$fileExcludePatterns = $opt->getOption('exclude-pattern') ?
43+
[$opt->getOption('exclude-pattern')] : ['#[\\\\/]M1[\\\\/]#i'];
4144
$relationsFile = $diDir . '/relations.ser';
4245
$pluginDefFile = $diDir . '/plugins.ser';
4346

@@ -60,7 +63,7 @@
6063
$filePatterns = ['php' => '/.*\.php$/', 'di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/'];
6164
$codeScanDir = realpath($rootDir . '/app');
6265
$directoryScanner = new Scanner\DirectoryScanner();
63-
$files = $directoryScanner->scan($codeScanDir, $filePatterns);
66+
$files = $directoryScanner->scan($codeScanDir, $filePatterns, $fileExcludePatterns);
6467
$files['additional'] = [$opt->getOption('extra-classes-file')];
6568
$entities = [];
6669

@@ -144,11 +147,13 @@
144147
$validator = new \Magento\Framework\Code\Validator();
145148
$validator->add(new \Magento\Framework\Code\Validator\ConstructorIntegrity());
146149
$validator->add(new \Magento\Framework\Code\Validator\ContextAggregation());
150+
$classesScanner = new \Magento\Tools\Di\Code\Reader\ClassesScanner();
151+
$classesScanner->addExcludePatterns($fileExcludePatterns);
147152

148153
$directoryInstancesNamesList = new \Magento\Tools\Di\Code\Reader\InstancesNamesList\Directory(
149154
$log,
150155
new \Magento\Framework\Code\Reader\ClassReader(),
151-
new \Magento\Tools\Di\Code\Reader\ClassesScanner(),
156+
$classesScanner,
152157
$validator,
153158
$generationDir
154159
);

0 commit comments

Comments
 (0)