Skip to content

Commit fe30ba3

Browse files
committed
use safe class_exists call to prevent issue with magentos classloader
1 parent 5cc4283 commit fe30ba3

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

.github/workflows/checks.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ jobs:
1212
runs-on: ubuntu-latest
1313

1414
steps:
15+
- name: Permissions
16+
run: git config --global --add safe.directory /github/workspace
17+
1518
- name: Checkout code
1619
uses: actions/checkout@v2
1720

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Change Log
22

3+
## 1.15.3 - 2023-03-31
4+
5+
- [#224](https://github.com/php-http/discovery/pull/224) - Fix regression with Magento classloader
6+
37
## 1.15.2 - 2023-02-11
48

59
- [#219](https://github.com/php-http/discovery/pull/219) - Fix handling of replaced packages

src/Composer/Plugin.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use Composer\Repository\RepositorySet;
1919
use Composer\Script\Event;
2020
use Composer\Script\ScriptEvents;
21+
use Http\Discovery\ClassDiscovery;
2122

2223
/**
2324
* Auto-installs missing implementations.
@@ -187,7 +188,7 @@ public function postUpdate(Event $event)
187188
return;
188189
}
189190

190-
$versionSelector = new VersionSelector(class_exists(RepositorySet::class) ? new RepositorySet() : new Pool());
191+
$versionSelector = new VersionSelector(ClassDiscovery::safeClassExists(RepositorySet::class) ? new RepositorySet() : new Pool());
191192
$updateComposerJson = false;
192193

193194
foreach ($composer->getRepositoryManager()->getLocalRepository()->getPackages() as $package) {
@@ -236,7 +237,7 @@ public function getMissingRequires(InstalledRepositoryInterface $repo, array $re
236237
$missingRequires = [[], [], []];
237238
$versionParser = new VersionParser();
238239

239-
if (class_exists(\Phalcon\Http\Message\RequestFactory::class, false)) {
240+
if (ClassDiscovery::safeClassExists(\Phalcon\Http\Message\RequestFactory::class, false)) {
240241
$missingRequires[0]['psr/http-factory-implementation'] = [];
241242
$missingRequires[1]['psr/http-factory-implementation'] = [];
242243
}
@@ -360,7 +361,7 @@ private function updateComposerLock(Composer $composer, IOInterface $io)
360361
$lock = substr(Factory::getComposerFile(), 0, -4).'lock';
361362
$composerJson = file_get_contents(Factory::getComposerFile());
362363
$lockFile = new JsonFile($lock, null, $io);
363-
$locker = class_exists(RepositorySet::class)
364+
$locker = ClassDiscovery::safeClassExists(RepositorySet::class)
364365
? new Locker($io, $lockFile, $composer->getInstallationManager(), $composerJson)
365366
: new Locker($io, $lockFile, $composer->getRepositoryManager(), $composer->getInstallationManager(), $composerJson);
366367
$lockData = $locker->getLockData();

0 commit comments

Comments
 (0)