You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.4 KiB
74 lines
1.4 KiB
1 year ago
|
<?php
|
||
|
|
||
|
/**
|
||
|
* This file is part of CodeIgniter 4 framework.
|
||
|
*
|
||
|
* (c) CodeIgniter Foundation <admin@codeigniter.com>
|
||
|
*
|
||
|
* For the full copyright and license information, please view
|
||
|
* the LICENSE file that was distributed with this source code.
|
||
|
*/
|
||
|
|
||
|
namespace CodeIgniter\Modules;
|
||
|
|
||
|
/**
|
||
|
* Modules Class
|
||
|
*
|
||
|
* @see https://codeigniter.com/user_guide/general/modules.html
|
||
|
*
|
||
|
* @phpstan-consistent-constructor
|
||
|
*/
|
||
|
class Modules
|
||
|
{
|
||
|
/**
|
||
|
* Auto-Discover
|
||
|
*
|
||
|
* @var bool
|
||
|
*/
|
||
|
public $enabled = true;
|
||
|
|
||
|
/**
|
||
|
* Auto-Discovery Within Composer Packages
|
||
|
*
|
||
|
* @var bool
|
||
|
*/
|
||
|
public $discoverInComposer = true;
|
||
|
|
||
|
/**
|
||
|
* Auto-Discover Rules Handler
|
||
|
*
|
||
|
* @var list<string>
|
||
|
*/
|
||
|
public $aliases = [];
|
||
|
|
||
|
public function __construct()
|
||
|
{
|
||
|
// For @phpstan-consistent-constructor
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Should the application auto-discover the requested resource.
|
||
|
*/
|
||
|
public function shouldDiscover(string $alias): bool
|
||
|
{
|
||
|
if (! $this->enabled) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
return in_array(strtolower($alias), $this->aliases, true);
|
||
|
}
|
||
|
|
||
|
public static function __set_state(array $array)
|
||
|
{
|
||
|
$obj = new static();
|
||
|
|
||
|
$properties = array_keys(get_object_vars($obj));
|
||
|
|
||
|
foreach ($properties as $property) {
|
||
|
$obj->{$property} = $array[$property];
|
||
|
}
|
||
|
|
||
|
return $obj;
|
||
|
}
|
||
|
}
|