<?php
/**
* Set $projectPath = getcwd(); if your put it under project root
**/
$projectPath = __DIR__ . '/my/project/';
/**
* Array of full directories path for scan;
* Scan will be recursive
* Put directories with most intensive imports in top of list for more quick result
* @see http://api.symfony.com/4.0/Symfony/Component/Finder/Finder.html#method_in
**/
$scanDirectories = [
$projectPath . '/config/',
$projectPath . '/Acme/',
$projectPath . '/controllers/',
$projectPath . '/console/',
$projectPath . '/models/',
$projectPath . '/modules/',
$projectPath . '/services/',
];
$scanFiles = [
$projectPath . '/autocomplete.php',
];
/**
* Names relative to ones of scanDirectories
*
* @see http://api.symfony.com/4.0/Symfony/Component/Finder/Finder.html#method_exclude
**/
$excludeDirectories = [
'runtime',
'storage/logs',
];
return [
/**
* Required params
**/
'composerJsonPath' => $projectPath . '/composer.json',
'vendorPath' => $projectPath . '/vendor/',
'scanDirectories' => $scanDirectories,
/**
* Optional params
**/
'skipPackages' => [], //List of packages that must be excluded from verification
'excludeDirectories' => $excludeDirectories,
'scanFiles' => $scanFiles,
'extensions' => ['*.php'],
'requireDev' => false, //Check composer require-dev section, default false
/**
* Optional, custom logic for check is file contains definitions of package
*
* @example
* 'customMatch'=> function($definition, $packageName, \Symfony\Component\Finder\SplFileInfo $file):bool{
* $isPresent = false;
* if($packageName === 'phpunit/phpunit'){
* $isPresent = true;
* }
* if($file->getExtension()==='twig'){
* $isPresent = customCheck();
* }
* return $isPresent;
* }
**/
'customMatch'=> null,
/**
* Report mode options
* Report mode enabled, when reportPath value is valid directory path
* !!!Note!!! The scanning time and memory usage will be increased when report mode enabled,
* it sensitive especially for big projects and when requireDev option enabled
**/
'reportPath' => null, //path in directory, where usage report will be stores;
/**
* Optional custom formatter (by default report stored as json)
* $report array format
* [
* 'packageName'=> [
* 'definition'=>['fileNames',...]
* ....
* ]
* ...
* ]
*
* @example
* 'reportFormatter'=>function(array $report):string{
* return print_r($report, true);
* }
**/
'reportFormatter'=>null,
'reportExtension'=>null, //by default - json, set own, if use custom formatter
];
|