mirror of
https://github.com/php/pie.git
synced 2026-03-23 23:12:17 +01:00
435: documentation improvements for 1.4.0 features
This commit is contained in:
@@ -345,11 +345,16 @@ The list of accepted OS families: "windows", "bsd", "darwin", "solaris", "linux"
|
||||
|
||||
#### Extension dependencies
|
||||
|
||||
Extension authors may define some dependencies in `require`, but practically,
|
||||
Extension authors may define some dependencies in `require`, but typically,
|
||||
most extensions would not need to define dependencies, except for the PHP
|
||||
versions supported by the extension. Dependencies on other extensions may be
|
||||
defined, for example `ext-json`. However, dependencies on a regular PHP package
|
||||
(such as `monolog/monolog`) SHOULD NOT be specified in your `require` section.
|
||||
versions supported by the extension, and system libraries.
|
||||
|
||||
Dependencies on a regular PHP package (such as `monolog/monolog`) SHOULD NOT be
|
||||
specified in your extension's `require` section.
|
||||
|
||||
##### Dependencies on other extensions
|
||||
|
||||
Dependencies on other extensions may be defined, for example `ext-json`.
|
||||
|
||||
It is worth noting that if your extension does define a dependency on another
|
||||
dependency, and this is not available, someone installing your extension would
|
||||
@@ -360,6 +365,47 @@ Cannot use myvendor/myextension's latest version 1.2.3 as it requires
|
||||
ext-something * which is missing from your platform.
|
||||
```
|
||||
|
||||
##### System Library Dependencies
|
||||
|
||||
In PIE 1.4.0, the ability for extension authors to define system library
|
||||
dependencies was added, and in some cases, automatically install them.
|
||||
|
||||
The following libraries are supported at the moment. **If you would like to add
|
||||
a library, please [open a discussion](https://github.com/php/pie/discussions)
|
||||
in the first instance.** Don't just open a PR without discussing first please!
|
||||
|
||||
We are adding libraries and improving this feature over time. If the automatic
|
||||
install of a system dependency that is supported below in your package manager
|
||||
is NOT working, then please [report a bug](https://github.com/php/pie/issues).
|
||||
|
||||
| Library | Checked by PIE | Auto-installs in |
|
||||
|---------------|----------------|--------------------|
|
||||
| lib-curl | ✅ | apt, apk, dnf, yum |
|
||||
| lib-enchant | ✅ | ❌ |
|
||||
| lib-enchant-2 | ✅ | ❌ |
|
||||
| lib-sodium | ✅ | apt, apk, dnf, yum |
|
||||
| lib-ffi | ✅ | apt, apk, dnf, yum |
|
||||
| lib-xslt | ✅ | apt, apk, dnf, yum |
|
||||
| lib-zip | ✅ | apt, apk, dnf, yum |
|
||||
| lib-png | ✅ | ❌ |
|
||||
| lib-avif | ✅ | ❌ |
|
||||
| lib-webp | ✅ | ❌ |
|
||||
| lib-jpeg | ✅ | apt, apk, dnf, yum |
|
||||
| lib-xpm | ✅ | ❌ |
|
||||
| lib-freetype2 | ✅ | ❌ |
|
||||
| lib-gdlib | ✅ | ❌ |
|
||||
| lib-gmp | ✅ | ❌ |
|
||||
| lib-sasl | ✅ | ❌ |
|
||||
| lib-onig | ✅ | ❌ |
|
||||
| lib-odbc | ✅ | ❌ |
|
||||
| lib-capstone | ✅ | ❌ |
|
||||
| lib-pcre | ✅ | ❌ |
|
||||
| lib-edit | ✅ | ❌ |
|
||||
| lib-snmp | ✅ | ❌ |
|
||||
| lib-argon2 | ✅ | ❌ |
|
||||
| lib-uriparser | ✅ | ❌ |
|
||||
| lib-exslt | ✅ | ❌ |
|
||||
|
||||
#### Checking the extension will work
|
||||
|
||||
First up, you can use `composer validate` to check your `composer.json` is
|
||||
|
||||
@@ -281,6 +281,31 @@ pie install example/some-extension --with-some-library-name=/path/to/the/lib
|
||||
pie install example/some-extension --with-some-library-name=/path/to/the/lib --enable-some-functionality
|
||||
```
|
||||
|
||||
### Build tools check
|
||||
|
||||
PIE will attempt to check the presence of build tools (such as gcc, make, etc.)
|
||||
before running. If any are missing, an interactive prompt will ask if you would
|
||||
like to install the missing tools. If you are running in non-interactive mode
|
||||
(for example, in a CI pipeline, container build, etc), PIE will **not**
|
||||
install these tools automatically. If you would like to install the build tools
|
||||
in a non-interactive terminal, pass the `--auto-install-build-tools` and the
|
||||
prompt will be skipped.
|
||||
|
||||
To skip the build tools check entirely, pass the `--no-build-tools-check` flag.
|
||||
|
||||
### System library dependencies check
|
||||
|
||||
PIE will attempt to check the presence of system library dependencies before
|
||||
installing an extension. If any are missing, an interactive prompt will ask if
|
||||
you would like to install the missing tools. If you are running in
|
||||
non-interactive mode (for example, in a CI pipeline, container build, etc), PIE
|
||||
will **not** install these dependencies automatically. If you would like to
|
||||
install the system dependencies in a non-interactive terminal, pass the
|
||||
`--auto-install-system-dependencies` and the prompt will be skipped.
|
||||
|
||||
To skip the dependencies check entirely, pass the
|
||||
`--no-system-dependencies-check` flag.
|
||||
|
||||
### Configuring the INI file
|
||||
|
||||
PIE will automatically try to enable the extension by adding `extension=...` or
|
||||
|
||||
Reference in New Issue
Block a user