<?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 
]; 
 
 |