| Server IP : 198.38.94.67 / Your IP : 216.73.217.142 Web Server : LiteSpeed System : Linux d6054.dxb1.stableserver.net 5.14.0-570.25.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 9 04:57:09 EDT 2025 x86_64 User : azfilmst ( 1070) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /opt/cpanel/ea-wappspector/vendor/php-di/php-di/src/Definition/Source/ |
Upload File : |
<?php
declare(strict_types=1);
namespace DI\Definition\Source;
use DI\Definition\Definition;
/**
* Reads DI definitions from a file returning a PHP array.
*
* @author Matthieu Napoli <matthieu@mnapoli.fr>
*/
class DefinitionFile extends DefinitionArray
{
private bool $initialized = false;
/**
* @param string $file File in which the definitions are returned as an array.
*/
public function __construct(
private string $file,
?Autowiring $autowiring = null,
) {
// Lazy-loading to improve performances
parent::__construct([], $autowiring);
}
public function getDefinition(string $name) : ?Definition
{
$this->initialize();
return parent::getDefinition($name);
}
public function getDefinitions() : array
{
$this->initialize();
return parent::getDefinitions();
}
/**
* Lazy-loading of the definitions.
*/
private function initialize() : void
{
if ($this->initialized === true) {
return;
}
$definitions = require $this->file;
if (! is_array($definitions)) {
throw new \Exception("File $this->file should return an array of definitions");
}
$this->addDefinitions($definitions);
$this->initialized = true;
}
}