diff --git a/src/Kernel.php b/src/Kernel.php index 9f27cb2..298e8a7 100644 --- a/src/Kernel.php +++ b/src/Kernel.php @@ -31,8 +31,6 @@ class Kernel { public string $definitionFilePath; - public array $definitionFilePaths = []; - public string $errorLogPath; public string $projectPath; @@ -126,12 +124,11 @@ class Kernel { } } - if ($this->definitionFilePath ?? false) { - $containerBuilder->addDefinitions($this->definitionFilePath); - } + # $containerBuilder->useAnnotations(false); - foreach($this->definitionFilePaths ?? [] as $path) { - $containerBuilder->addDefinitions($path); + if ($this->definitionFilePath ?? false) { + $containerBuilder->addDefinitions(Lean::autoloadDefinitionsFromComposerExtra()); + $containerBuilder->addDefinitions(require($this->definitionFilePath)); } $this->container = $containerBuilder->build(); diff --git a/src/Lean.php b/src/Lean.php index 5fe87fe..542f792 100644 --- a/src/Lean.php +++ b/src/Lean.php @@ -161,33 +161,20 @@ class Lean return []; } - public static function getDefinitionsPathsFromComposer() : array - { - $list = []; - - foreach(Composer::readComposerLock()['packages'] as $package) { - foreach($package['extra']['lean']['autoload']['definitions'] ?? [] as $autoload) { - $list[] = static::pathFromPackage($package, $autoload); - } - } - - foreach(Composer::readComposerJson()['extra']['lean']['autoload']['definitions'] ?? [] ?? [] as $autoload) { - $list[] = getenv('PROJECT_PATH') . DIRECTORY_SEPARATOR . $autoload; - } - - return $list; - } - public static function autoloadDefinitionsFromComposerExtra() : array { $list = []; foreach(Composer::readComposerLock()['packages'] as $package) { foreach($package['extra']['lean']['autoload']['definitions'] ?? [] as $autoload) { - $list = array_replace($list, static::loadFromPackage($package, $autoload)); + $list = array_replace($list, static::loadFromPackage($package, $autoload, getenv('VENDOR_DIR') ?: dirname(__DIR__, 3))); } } + foreach(Composer::readComposerJson()['extra']['lean']['autoload']['definitions'] ?? [] as $autoload) { + $list = array_replace($list, static::loadFromPackage(null, $autoload, getenv('PROJECT_PATH') ?: dirname(__DIR__, 5))); + } + return $list; } @@ -197,35 +184,26 @@ class Lean foreach(Composer::readComposerLock()['packages'] as $package) { foreach($package['extra']['lean']['autoload']['config'] ?? [] as $autoload) { - $list = array_merge_recursive($list, static::loadFromPackage($package, $autoload)); + $list = array_merge_recursive($list, static::loadFromPackage($package, $autoload, getenv('VENDOR_DIR') ?: dirname(__DIR__, 3))); } } + foreach(Composer::readComposerJson()['extra']['lean']['autoload']['config'] ?? [] as $autoload) { + $list = array_merge_recursive($list, static::loadFromPackage(null, $autoload, getenv('PROJECT_PATH') ?: dirname(__DIR__, 5))); + } + return $list; } - protected static function pathFromPackage(array $package, array|string $autoload) : string - { - $vendor = getenv('VENDOR_DIR') ? getenv('VENDOR_PATH') : dirname(__DIR__, 3); - - $filepath = $vendor . DIRECTORY_SEPARATOR . $package['name'] . DIRECTORY_SEPARATOR . $autoload; - - if (! file_exists($filepath)) { - throw new \InvalidArgumentException("Given definition filepath do not exists '$filepath'"); - } - - return $filepath; - } - - protected static function loadFromPackage(array $package, array|string $autoload) : false|array + protected static function loadFromPackage(?array $package, array|string $autoload, string $path) : false|array { $list = []; if (is_string($autoload)) { - $file = static::pathFromPackage($package, $autoload); + $file = $path . DIRECTORY_SEPARATOR . ($package ? $package['name'] . DIRECTORY_SEPARATOR : "") . $autoload; if ( ! file_exists($file) ) { - throw new \InvalidArgumentException(sprintf("Given autoload file `%s` from package `%s` was not found or is unreachable", $autoload, $package['name'])); + throw new \InvalidArgumentException(sprintf("Given autoload file `%s` from package `%s` was not found or is unreachable", $file, $package['name'])); } return require($file); @@ -238,4 +216,4 @@ class Lean return false; } -} +} \ No newline at end of file diff --git a/view/lean/widget/breadcrumb.phtml b/view/lean/widget/breadcrumb.phtml index ec135d7..55e523d 100644 --- a/view/lean/widget/breadcrumb.phtml +++ b/view/lean/widget/breadcrumb.phtml @@ -1,28 +1,33 @@ - \ No newline at end of file +{% endif %} \ No newline at end of file