Skip to content
Snippets Groups Projects
Modules.php 1.74 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?php namespace Config;
    
    // Cannot extend BaseConfig or looping resources occurs.
    class Modules
    {
    	/*
    	 |--------------------------------------------------------------------------
    	 | Auto-Discovery Enabled?
    	 |--------------------------------------------------------------------------
    	 |
    	 | If true, then auto-discovery will happen across all elements listed in
    	 | $activeExplorers below. If false, no auto-discovery will happen at all,
    	 | giving a slight performance boost.
    	 */
    	public $enabled = true;
    
    	/*
    	 |--------------------------------------------------------------------------
    	 | Auto-Discovery Within Composer Packages Enabled?
    	 |--------------------------------------------------------------------------
    	 |
    	 | If true, then auto-discovery will happen across all namespaces loaded
    	 | by Composer, as well as the namespaces configured locally.
    	 */
    	public $discoverInComposer = true;
    
    	/*
    	|--------------------------------------------------------------------------
    	| Auto-discover Rules
    	|--------------------------------------------------------------------------
    	|
    	| Lists the aliases of all discovery classes that will be active
    	| and used during the current application request. If it is not
    	| listed here, only the base application elements will be used.
    	*/
    	public $activeExplorers = [
    		'events',
    		'registrars',
    		'routes',
    		'services',
    	];
    
    	/**
    	 * Should the application auto-discover the requested resources.
    	 *
    	 * Valid values are:
    	 *  - events
    	 *  - registrars
    	 *  - routes
    	 *  - services
    	 *
    	 * @param string $alias
    	 *
    	 * @return boolean
    	 */
    	public function shouldDiscover(string $alias)
    	{
    		if (! $this->enabled)
    		{
    			return false;
    		}
    
    		$alias = strtolower($alias);
    
    		return in_array($alias, $this->activeExplorers);
    	}
    }