From 6778f1f79a56926e4c6131f7c30358ff2c301669 Mon Sep 17 00:00:00 2001 From: James Titcumb Date: Sun, 28 Apr 2024 16:28:11 +0100 Subject: [PATCH] Updated array shape of php-ext options (#11950) --- res/composer-schema.json | 11 +++++++++++ src/Composer/Package/Package.php | 2 +- src/Composer/Package/PackageInterface.php | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/res/composer-schema.json b/res/composer-schema.json index dfbd8beb6..90714875c 100644 --- a/res/composer-schema.json +++ b/res/composer-schema.json @@ -292,6 +292,11 @@ "type": "object", "description": "Settings for PHP extension packages.", "properties": { + "extension-name": { + "type": "string", + "description": "If specified, this will be used as the name of the extension, where needed by tooling. If this is not specified, the extension name will be derived from the Composer package name (e.g. `vendor/name` would become `ext-name`). The extension name may be specified with or without the `ext-` prefix, and tools that use this must normalise this appropriately.", + "example": "ext-xdebug" + }, "priority": { "type": "integer", "description": "This is used to add a prefix to the INI file, e.g. `90-xdebug.ini` which affects the loading order. The priority is a number in the range 10-99 inclusive, with 10 being the highest priority (i.e. will be processed first), and 99 being the lowest priority (i.e. will be processed last). There are two digits so that the files sort correctly on any platform, whether the sorting is natural or not.", @@ -300,6 +305,12 @@ "example": 80, "default": 80 }, + "support-zts": { + "type": "boolean", + "description": "Does this package support Zend Thread Safety", + "example": false, + "default": true + }, "configure-options": { "type": "array", "description": "These configure options make up the flags that can be passed to ./configure when installing the extension.", diff --git a/src/Composer/Package/Package.php b/src/Composer/Package/Package.php index 8bcd6e60b..9d1b0ffc1 100644 --- a/src/Composer/Package/Package.php +++ b/src/Composer/Package/Package.php @@ -595,7 +595,7 @@ class Package extends BasePackage /** * Sets the list of paths added to PHP's include path. * - * @param array{priority?: int, configure-options?: list}|null $phpExt List of directories. + * @param array{extension-name?: string, priority?: int, support-zts?: bool, configure-options?: list}|null $phpExt List of directories. */ public function setPhpExt(?array $phpExt): void { diff --git a/src/Composer/Package/PackageInterface.php b/src/Composer/Package/PackageInterface.php index 3583a323e..b7c9ecd45 100644 --- a/src/Composer/Package/PackageInterface.php +++ b/src/Composer/Package/PackageInterface.php @@ -326,7 +326,7 @@ interface PackageInterface /** * Returns the settings for php extension packages * - * @return array{priority?: int, configure-options?: list}|null + * @return array{extension-name?: string, priority?: int, support-zts?: bool, configure-options?: list}|null */ public function getPhpExt(): ?array;