Skip to content

Commit

Permalink
ENH PHP 8.1 compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
emteknetnz committed Apr 4, 2022
1 parent a76509e commit 4df11a0
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 18 deletions.
6 changes: 3 additions & 3 deletions src/RecipeCommandBehaviour.php
Original file line number Diff line number Diff line change
Expand Up @@ -103,17 +103,17 @@ protected function findBestConstraint($existingVersion)
}

// Existing version is already a ^1.0.0 or ~1.0.0 constraint
if (preg_match('#^[~^]#', $existingVersion)) {
if (preg_match('#^[~^]#', (string) $existingVersion)) {
return $existingVersion;
}

// Existing version is already a dev constraint
if (stristr($existingVersion, 'dev') !== false) {
if (stristr((string) $existingVersion, 'dev') !== false) {
return $existingVersion;
}

// Numeric-only version maps to semver constraint
if (preg_match('#^([\d.]+)$#', $existingVersion)) {
if (preg_match('#^([\d.]+)$#', (string) $existingVersion)) {
return "^{$existingVersion}";
}

Expand Down
28 changes: 15 additions & 13 deletions src/RecipeInstaller.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ protected function installProjectFiles(
$relativePath = $this->installProjectFile($sourceRoot, $destinationRoot, $path, $installedFiles);

// Add file to installed (even if already exists)
if (!in_array($relativePath, $installedFiles)) {
if (!in_array($relativePath, $installedFiles ?: [])) {
$installedFiles[] = $relativePath;
}
}
Expand All @@ -87,15 +87,15 @@ protected function installProjectFiles(
protected function installProjectFile($sourceRoot, $destinationRoot, $sourcePath, $installedFiles)
{
// Relative path
$relativePath = substr($sourcePath, strlen($sourceRoot) + 1); // Name path without leading '/'
$relativePath = substr((string) $sourcePath, strlen((string) $sourceRoot) + 1); // Name path without leading '/'

// Get destination path
$relativeDestination = $this->rewriteFilePath($destinationRoot, $relativePath);
$destination = $destinationRoot . DIRECTORY_SEPARATOR . $relativeDestination;

// Check if file exists
if (file_exists($destination)) {
if (file_get_contents($destination) === file_get_contents($sourcePath)) {
if (file_exists((string) $destination)) {
if (file_get_contents((string) $destination) === file_get_contents((string) $sourcePath)) {
$this->io->write(
" - Skipping <info>$relativePath</info> (<comment>existing, but unchanged</comment>)"
);
Expand All @@ -104,15 +104,17 @@ protected function installProjectFile($sourceRoot, $destinationRoot, $sourcePath
" - Skipping <info>$relativePath</info> (<comment>existing and modified in project</comment>)"
);
}
} elseif (in_array($relativePath, $installedFiles) || in_array($relativeDestination, $installedFiles)) {
} elseif (in_array($relativePath, $installedFiles ?: []) ||
in_array($relativeDestination, $installedFiles ?: [])
) {
// Don't re-install previously installed files that have been deleted
$this->io->write(
" - Skipping <info>$relativePath</info> (<comment>previously installed</comment>)"
);
} else {
$this->io->write(" - Copying <info>$relativePath</info>");
$this->filesystem->ensureDirectoryExists(dirname($destination));
copy($sourcePath, $destination);
copy((string) $sourcePath, (string) $destination);
}
return $relativePath;
}
Expand Down Expand Up @@ -155,10 +157,10 @@ protected function getFileIterator($sourceRoot, $patterns)
*/
protected function globToRegexp($glob)
{
$sourceParts = explode('*', $glob);
$sourceParts = explode('*', (string) $glob);
$regexParts = array_map(function ($part) {
return preg_quote($part, '#');
}, $sourceParts);
return preg_quote((string) $part, '#');
}, $sourceParts ?: []);
return implode('(.+)', $regexParts);
}

Expand All @@ -176,11 +178,11 @@ public function installLibrary(PackageInterface $package)
$recipePath = $this->getInstallPath($package);

// Find project path
$projectPath = dirname(realpath(Factory::getComposerFile()));
$projectPath = dirname((string) realpath((string) Factory::getComposerFile()));

// Find public path
$candidatePublicPath = $projectPath . DIRECTORY_SEPARATOR . RecipePlugin::PUBLIC_PATH;
$publicPath = is_dir($candidatePublicPath) ? $candidatePublicPath : $projectPath;
$publicPath = is_dir((string) $candidatePublicPath) ? $candidatePublicPath : $projectPath;

// Copy project files to root
$name = $package->getName();
Expand Down Expand Up @@ -238,8 +240,8 @@ protected function rewriteFilePath($destinationRoot, $relativePath)
'app' => 'mysite',
];
foreach ($rewrites as $from => $to) {
if (stripos($relativePath, $from) === 0) {
return $to . substr($relativePath, strlen($from));
if (stripos((string) $relativePath, (string) $from) === 0) {
return $to . substr((string) $relativePath, strlen((string) $from));
}
}
return $relativePath;
Expand Down
2 changes: 0 additions & 2 deletions src/RecipePlugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -137,11 +137,9 @@ public function getCapabilities()

public function deactivate(Composer $composer, IOInterface $io)
{

}

public function uninstall(Composer $composer, IOInterface $io)
{

}
}

0 comments on commit 4df11a0

Please sign in to comment.