public function create($packagesBasePath, $packagePath, $packageKey, $composerName, array $autoloadConfiguration = [], array $packageClassInformation = null)
{
$absolutePackagePath = Files::concatenatePaths([$packagesBasePath, $packagePath]) . '/';
if ($packageClassInformation === null) {
$packageClassInformation = $this->detectFlowPackageFilePath($packageKey, $absolutePackagePath);
}
$packageClassName = Package::class;
if (!empty($packageClassInformation)) {
$packageClassName = $packageClassInformation['className'];
$packageClassPath = Files::concatenatePaths(array($absolutePackagePath, $packageClassInformation['pathAndFilename']));
require_once $packageClassPath;
}
$package = new $packageClassName($packageKey, $composerName, $absolutePackagePath, $autoloadConfiguration);
if (!$package instanceof PackageInterface) {
throw new Exception\CorruptPackageException(sprintf('The package class of package "%s" does not implement \\Neos\\Flow\\Package\\PackageInterface. Check the file "%s".', $packageKey, $packageClassInformation['pathAndFilename']), 1427193370);
}
return $package;
}