protected function loadPackage($file)
{
if (is_file($file)) {
$zip = new \ZipArchive();
if ($zip->open($file) === true) {
$json = $zip->getFromName('composer.json');
if ($json && ($package = App::package()->load($json))) {
$extra = $package->get('extra');
if (isset($extra['icon']) || isset($extra['image'])) {
unset($extra['icon']);
unset($extra['image']);
$package->set('extra', $extra);
}
$package->set('shasum', sha1_file($file));
}
$zip->close();
}
}
if (isset($package) && $package) {
return $package;
}
App::abort(400, __('Can\'t load json file from package.'));
}