diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/languages-frameworks/php.section.md | 41 |
1 files changed, 15 insertions, 26 deletions
diff --git a/doc/languages-frameworks/php.section.md b/doc/languages-frameworks/php.section.md index 9924946a45c..18d4ee83709 100644 --- a/doc/languages-frameworks/php.section.md +++ b/doc/languages-frameworks/php.section.md @@ -21,20 +21,12 @@ of a given NixOS release will be included in that release of NixOS. See [PHP Supported Versions](https://www.php.net/supported-versions.php). -As for packages we have `php.packages` that contains a bunch of -attributes where some are suitable as extensions (notable example: -`php.packages.imagick`). And some are more suitable for command -line use (notable example: `php.packages.composer`). +For packages we have `php.packages` that contains packages related +for human interaction, notable example is `php.packages.composer`. -We have a special section within `php.packages` called -`php.packages.exts` that contain certain PHP modules that may not -be part of the default PHP derivation (example: -`php.packages.exts.opcache`). - -The `php.packages.exts.*` attributes are official extensions which -originate from the mainline PHP project, while other extensions within -the `php.packages.*` attribute are of mixed origin (such as `pecl` -and other places). +For extensions we have `php.extensions` that contains most upstream +extensions as separate attributes as well some additional extensions +that tend to be popular, notable example is: `php.extensions.imagick`. The different versions of PHP that nixpkgs fetch is located under attributes named based on major and minor version number; e.g., @@ -43,23 +35,20 @@ attributes named based on major and minor version number; e.g., #### Installing PHP with packages -There's two different kinds of things you could install: - - A command line utility. Simply refer to it via - `php*.packages.*`, and it automatically comes with the necessary - PHP environment, certain extensions and libraries around it. - - A PHP interpreter with certain extensions available. The `php` - attribute provides `php.buildEnv` that allows you to wrap the PHP - derivation with an additional config file that makes PHP import - additional libraries or dependencies. +There's two majorly different parts of the PHP ecosystem in NixOS: + - Command line utilities for human interaction. These comes from the + `php.packages.*` attributes. + - PHP environments with different extensions enabled. These are + composed with `php.buildEnv` using an additional configuration file. ##### Example setup for `phpfpm` -Example to build a PHP with `imagick` and `opcache` enabled, and -configure it for the "foo" `phpfpm` pool: +Example to build a PHP with the extensions `imagick` and `opcache` +enabled. Then to configure it for the "foo" `phpfpm` pool: ```nix let - myPhp = php.buildEnv { exts = pp: with pp; [ imagick exts.opcache ]; }; + myPhp = php.buildEnv { exts = pp: with pp; [ imagick opcache ]; }; in { services.phpfpm.pools."foo".phpPackage = myPhp; }; @@ -68,8 +57,8 @@ in { ##### Example usage with `nix-shell` This brings up a temporary environment that contains a PHP interpreter -with `imagick` and `opcache` enabled. +with the extensions `imagick` and `opcache` enabled. ```sh -nix-shell -p 'php.buildEnv { exts = pp: with pp; [ imagick exts.opcache ]; }' +nix-shell -p 'php.buildEnv { exts = pp: with pp; [ imagick opcache ]; }' ``` |