diff --git a/src/ncc/Classes/Runtime.php b/src/ncc/Classes/Runtime.php index d6ce587..e35b4fb 100644 --- a/src/ncc/Classes/Runtime.php +++ b/src/ncc/Classes/Runtime.php @@ -164,6 +164,11 @@ */ private static function importFromSystem(string $package, string $version=Versions::LATEST): string { + if(!self::getPackageManager()->getPackageLock()->entryExists($package)) + { + throw new ImportException(sprintf('The package "%s" does not exist in the package lock', $package)); + } + $entry = self::getPackageManager()->getPackageLock()->getEntry($package); foreach($entry->getClassMap($version) as $class => $component_name) @@ -247,18 +252,7 @@ }; } - // Import dependencies recursively - if(!$package_reader->getFlag(PackageFlags::STATIC_DEPENDENCIES)) - { - foreach($package_reader->getDependencies() as $dependency) - { - $dependency = $package_reader->getDependency($dependency); - - /** @noinspection UnusedFunctionResultInspection */ - self::import($dependency->getName(), $dependency->getVersion()); - } - } - + // Import the required files if($package_reader->getMetadata()->getOption(BuildConfigurationOptions::REQUIRE_FILES) !== null) { foreach($package_reader->getMetadata()->getOption(BuildConfigurationOptions::REQUIRE_FILES) as $item) @@ -274,6 +268,18 @@ } } + // Import dependencies recursively + if(!$package_reader->getFlag(PackageFlags::STATIC_DEPENDENCIES)) + { + foreach($package_reader->getDependencies() as $dependency) + { + $dependency = $package_reader->getDependency($dependency); + + /** @noinspection UnusedFunctionResultInspection */ + self::import($dependency->getName(), $dependency->getVersion()); + } + } + return $package_reader->getAssembly()->getPackage(); }