Final Class Yiisoft\YiiDevTool\App\PackageService
| Inheritance | Yiisoft\YiiDevTool\App\PackageService |
|---|
Public Methods
Method Details
| public void composerInstall ( Yiisoft\YiiDevTool\App\Component\Package\Package $package, array $additionalOptions, Yiisoft\YiiDevTool\App\Component\Package\PackageErrorList $errorList, Yiisoft\YiiDevTool\App\Component\Console\OutputManager $io ) | ||
| $package | Yiisoft\YiiDevTool\App\Component\Package\Package | |
| $additionalOptions | array | |
| $errorList | Yiisoft\YiiDevTool\App\Component\Package\PackageErrorList | |
| $io | Yiisoft\YiiDevTool\App\Component\Console\OutputManager | |
public function composerInstall(
Package $package,
array $additionalOptions,
PackageErrorList $errorList,
OutputManager $io
): void {
$this->composerInstallOrUpdate(
'install',
$package,
$additionalOptions,
$errorList,
$io
);
}
| public void composerUpdate ( Yiisoft\YiiDevTool\App\Component\Package\Package $package, array $additionalOptions, Yiisoft\YiiDevTool\App\Component\Package\PackageErrorList $errorList, Yiisoft\YiiDevTool\App\Component\Console\OutputManager $io ) | ||
| $package | Yiisoft\YiiDevTool\App\Component\Package\Package | |
| $additionalOptions | array | |
| $errorList | Yiisoft\YiiDevTool\App\Component\Package\PackageErrorList | |
| $io | Yiisoft\YiiDevTool\App\Component\Console\OutputManager | |
public function composerUpdate(
Package $package,
array $additionalOptions,
PackageErrorList $errorList,
OutputManager $io
): void {
$this->composerInstallOrUpdate(
'update',
$package,
$additionalOptions,
$errorList,
$io
);
}
public function createSymbolicLinks(PackageList $packageList, OutputManager $io): void
{
$io
->important()
->info('Re-linking vendor directories...');
$installedPackages = $packageList->getInstalledAndEnabledPackages();
foreach ($installedPackages as $package) {
$io->info("Package <package>{$package->getId()}</package> linking...");
$this->linkPackages($package, $installedPackages);
}
$io->done();
}
| public void gitClone ( Yiisoft\YiiDevTool\App\Component\Package\Package $package, string $commandName, Yiisoft\YiiDevTool\App\Component\Package\PackageErrorList $errorList, Yiisoft\YiiDevTool\App\Component\Console\OutputManager $io ) | ||
| $package | Yiisoft\YiiDevTool\App\Component\Package\Package | |
| $commandName | string | |
| $errorList | Yiisoft\YiiDevTool\App\Component\Package\PackageErrorList | |
| $io | Yiisoft\YiiDevTool\App\Component\Console\OutputManager | |
public function gitClone(
Package $package,
string $commandName,
PackageErrorList $errorList,
OutputManager $io
): void {
$io
->important()
->info('Cloning package repository...');
if ($package->isGitRepositoryCloned()) {
$io->warning([
'The package already contains <file>.git</file> directory.',
'Cloning skipped.',
]);
return;
}
$io->info("Repository url: <file>{$package->getConfiguredRepositoryUrl()}</file>");
$process = new Process(['git', 'clone', $package->getConfiguredRepositoryUrl(), $package->getPath()]);
$process
->setTimeout(null)
->run();
if ($process->isSuccessful()) {
$io->info($process->getOutput() . $process->getErrorOutput());
$io->done();
return;
}
$output = $process->getErrorOutput();
$io
->important()
->info($output);
$io->error([
"An error occurred during cloning package <package>{$package->getName()}</package> repository.",
"Package $commandName aborted.",
]);
$errorList->set($package, $output, 'cloning package repository');
}
public function removeSymbolicLinks(Package $package, PackageList $packageList, OutputManager $io): void
{
$vendorDirectory = "{$package->getPath()}/vendor";
if (!is_dir($vendorDirectory)) {
return;
}
$io
->important()
->info('Removing old package symlinks...');
$installedPackages = $packageList->getInstalledPackages();
foreach ($installedPackages as $installedPackage) {
$packagePath = "{$vendorDirectory}/{$installedPackage->getName()}";
if (is_dir($packagePath) && is_link($packagePath)) {
$io->info("Removing symlink <file>{$packagePath}</file>");
FileHelper::unlink($packagePath);
}
}
$io->done();
}
Signup or Login in order to comment.