芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/public_html/invoicer.pulsehost.co.uk/vendor/invoiceshelf/modules/src/Updater.php
module->findOrFail($module); chdir(base_path()); $this->installRequires($module); $this->installDevRequires($module); $this->copyScriptsToMainComposerJson($module); } /** * Check if composer should output anything. * * @return string */ private function isComposerSilenced() { return config('modules.composer.composer-output') === false ? ' --quiet' : ''; } /** * @param Module $module */ private function installRequires(Module $module) { $packages = $module->getComposerAttr('require', []); $concatenatedPackages = ''; foreach ($packages as $name => $version) { $concatenatedPackages .= "\"{$name}:{$version}\" "; } if (!empty($concatenatedPackages)) { $this->run("composer require {$concatenatedPackages}{$this->isComposerSilenced()}"); } } /** * @param Module $module */ private function installDevRequires(Module $module) { $devPackages = $module->getComposerAttr('require-dev', []); $concatenatedPackages = ''; foreach ($devPackages as $name => $version) { $concatenatedPackages .= "\"{$name}:{$version}\" "; } if (!empty($concatenatedPackages)) { $this->run("composer require --dev {$concatenatedPackages}{$this->isComposerSilenced()}"); } } /** * @param Module $module */ private function copyScriptsToMainComposerJson(Module $module) { $scripts = $module->getComposerAttr('scripts', []); $composer = json_decode(file_get_contents(base_path('composer.json')), true); foreach ($scripts as $key => $script) { if (array_key_exists($key, $composer['scripts'])) { $composer['scripts'][$key] = array_unique(array_merge($composer['scripts'][$key], $script)); continue; } $composer['scripts'] = array_merge($composer['scripts'], [$key => $script]); } file_put_contents(base_path('composer.json'), json_encode($composer, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT)); } }