ok
Direktori : /home2/selectio/public_html/3-idiots/vendor/nwidart/laravel-modules/src/Process/ |
Current File : /home2/selectio/public_html/3-idiots/vendor/nwidart/laravel-modules/src/Process/Updater.php |
<?php namespace Nwidart\Modules\Process; use Nwidart\Modules\Module; class Updater extends Runner { /** * Update the dependencies for the specified module by given the module name. * * @param string $module */ public function update($module) { $module = $this->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)); } }