aboutsummaryrefslogtreecommitdiffstats
path: root/lib/composer
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2023-01-25 10:42:34 +0100
committerChristoph Wurst <christoph@winzerhof-wurst.at>2023-01-25 10:42:34 +0100
commitaee9941fedffc5b50192264ce3a4bd7edf25d6c6 (patch)
tree67f0f0a9ea11d4e57dde67f1e28b788c9062a86e /lib/composer
parentd51429a47232bbf46a2be832ecfa711f102da802 (diff)
downloadnextcloud-server-aee9941fedffc5b50192264ce3a4bd7edf25d6c6.tar.gz
nextcloud-server-aee9941fedffc5b50192264ce3a4bd7edf25d6c6.zip
chore(autoloaders): Update autoloader files for Composer 2.5.1
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'lib/composer')
-rw-r--r--lib/composer/composer/ClassLoader.php37
-rw-r--r--lib/composer/composer/autoload_real.php2
-rw-r--r--lib/composer/composer/platform_check.php26
3 files changed, 51 insertions, 14 deletions
diff --git a/lib/composer/composer/ClassLoader.php b/lib/composer/composer/ClassLoader.php
index afef3fa2ad8..fd56bd7d840 100644
--- a/lib/composer/composer/ClassLoader.php
+++ b/lib/composer/composer/ClassLoader.php
@@ -42,6 +42,9 @@ namespace Composer\Autoload;
*/
class ClassLoader
{
+ /** @var \Closure(string):void */
+ private static $includeFile;
+
/** @var ?string */
private $vendorDir;
@@ -106,6 +109,7 @@ class ClassLoader
public function __construct($vendorDir = null)
{
$this->vendorDir = $vendorDir;
+ self::initializeIncludeClosure();
}
/**
@@ -425,7 +429,7 @@ class ClassLoader
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
- includeFile($file);
+ (self::$includeFile)($file);
return true;
}
@@ -555,18 +559,23 @@ class ClassLoader
return false;
}
-}
-/**
- * Scope isolated include.
- *
- * Prevents access to $this/self from included files.
- *
- * @param string $file
- * @return void
- * @private
- */
-function includeFile($file)
-{
- include $file;
+ private static function initializeIncludeClosure(): void
+ {
+ if (self::$includeFile !== null) {
+ return;
+ }
+
+ /**
+ * Scope isolated include.
+ *
+ * Prevents access to $this/self from included files.
+ *
+ * @param string $file
+ * @return void
+ */
+ self::$includeFile = static function($file) {
+ include $file;
+ };
+ }
}
diff --git a/lib/composer/composer/autoload_real.php b/lib/composer/composer/autoload_real.php
index 6dbf91afee6..9e054bba0be 100644
--- a/lib/composer/composer/autoload_real.php
+++ b/lib/composer/composer/autoload_real.php
@@ -22,6 +22,8 @@ class ComposerAutoloaderInit749170dad3f5e7f9ca158f5a9f04f6a2
return self::$loader;
}
+ require __DIR__ . '/platform_check.php';
+
spl_autoload_register(array('ComposerAutoloaderInit749170dad3f5e7f9ca158f5a9f04f6a2', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInit749170dad3f5e7f9ca158f5a9f04f6a2', 'loadClassLoader'));
diff --git a/lib/composer/composer/platform_check.php b/lib/composer/composer/platform_check.php
new file mode 100644
index 00000000000..adfb472fbdd
--- /dev/null
+++ b/lib/composer/composer/platform_check.php
@@ -0,0 +1,26 @@
+<?php
+
+// platform_check.php @generated by Composer
+
+$issues = array();
+
+if (!(PHP_VERSION_ID >= 80000)) {
+ $issues[] = 'Your Composer dependencies require a PHP version ">= 8.0.0". You are running ' . PHP_VERSION . '.';
+}
+
+if ($issues) {
+ if (!headers_sent()) {
+ header('HTTP/1.1 500 Internal Server Error');
+ }
+ if (!ini_get('display_errors')) {
+ if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
+ fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
+ } elseif (!headers_sent()) {
+ echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
+ }
+ }
+ trigger_error(
+ 'Composer detected issues in your platform: ' . implode(' ', $issues),
+ E_USER_ERROR
+ );
+}