;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Julien Lepiller ;;; Copyright © 2023 Nicolas Graves ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages php-xyz) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system composer) #:use-module (guix build-system gnu) #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (ice-9 match) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages check) #:use-module (gnu packages databases) #:use-module (gnu packages linux) #:use-module (gnu packages php) #:use-module (gnu packages version-control)) (define-public composer-classloader (package (name "composer-classloader") (version "1.9.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/composer/composer") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0127zmmg3yx84ljngfs86q7kjhyypybkf4d1ihfrfnzgynzxfxdf")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (delete 'configure) (delete 'build) (delete 'check) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out"))) (install-file "src/Composer/Autoload/ClassLoader.php" (string-append out "/share/web/composer/")))))))) (home-page "https://getcomposer.org") (synopsis "PHP class loader extracted from the composer package") (description "This package contains the class loader class used by Composer to build its autoloading feature. This package is used by the composer-build-system to build its own store-aware autoloading feature.") (license license:expat))) (define-public php-cache-tag-interop (package (name "php-cache-tag-interop") (version "1.1.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/php-cache/tag-interop") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "08x7sqxhkwni0arrl68xb2fxd2qjwdkxlxmjq7j3q2ic2qbl8iif")))) (build-system composer-build-system) (inputs (list php-psr-cache)) (synopsis "PHP framework for tags") (description "This package provides a PHP framework interoperable interfaces for tags.") (home-page "https://www.php-cache.com/en/latest/") (license license:expat))) (define-public php-doctrine-collections (package (name "php-doctrine-collections") (version "2.1.4") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/doctrine/collections") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0b384rkxl70bb164373c3y3n72816jkggjm9vg58avb7lqx3dq1i")))) (build-system composer-build-system) (arguments '(#:test-flags '("--bootstrap" "vendor/autoload.php"))) (inputs (list php-doctrine-deprecations)) (native-inputs (list php-phpunit-phpunit)) (synopsis "Additional functionality on top of PHP arrays") (description "This package provides a PHP library that adds additional functionality on top of arrays.") (home-page "https://www.doctrine-project.org/projects/collections") (license license:expat))) (define-public php-doctrine-common (package (name "php-doctrine-common") (version "3.4.3") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/doctrine/common") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1hivhghwmqs5jaiicayni35xkpclmdf5r9fb15y5jx7rl5wrsh7f")))) (build-system composer-build-system) (arguments '(#:test-flags '("--bootstrap" "vendor/autoload.php"))) (inputs (list php-doctrine-persistence)) (native-inputs (list php-phpunit-phpunit)) (synopsis "PHP utility library for Doctrine projects") (description "This package provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and much more.") (home-page "https://www.doctrine-project.org/projects/common") (license license:expat))) (define-public php-doctrine-deprecations (package (name "php-doctrine-deprecations") (version "1.1.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/doctrine/deprecations") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "15xq18cl1ws37ansc8h1chbjgybvljxsjgwlp8w3ia5zffwxhrdd")))) (build-system composer-build-system) (inputs (list php-doctrine-lexer php-psr-cache)) (native-inputs (list php-phpunit-phpunit php-psr-log)) (synopsis "Thin library around PHP deprecation strategies") (description "This package provides a layer on top of PHP deprecations strategies, with no side-effects by default and customization options.") (home-page "https://github.com/doctrine/deprecations") (license license:expat))) (define-public php-doctrine-event-manager (package (name "php-doctrine-event-manager") (version "2.0.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/doctrine/event-manager") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "093ghp48ci4xazswlaxlmiabw7vay1nvv382nc1i6nrdxn781y0g")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (synopsis "Simple PHP event system") (description "This package provides the Doctrine Event Manager, a simple PHP event system that was built to be used with the various Doctrine projects.") (home-page "https://www.doctrine-project.org/projects/event-manager") (license license:expat))) (define-public php-doctrine-instantiator (package (name "php-doctrine-instantiator") (version "2.0.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/doctrine/instantiator") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1y8ajlwdzrw92lx6bnc5p7lwgrgbf602lqlyxfrsff7x538as73n")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (synopsis "Utility for instantiating PHP objects") (description "This package provides a small, lightweight utility to instantiate objects in PHP without invoking their constructors") (home-page "https://www.doctrine-project.org/projects/instantiator") (license license:expat))) (define-public php-doctrine-lexer (package (name "php-doctrine-lexer") (version "3.0.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/doctrine/lexer") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1kxwq8s9i7gndg66i1c5h6f21w8fc4smd8nj6sg2p0vzrg4m2l43")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (synopsis "PHP Doctrine Lexer parser library") (description "This package provides a Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers in PHP.") (home-page "https://www.doctrine-project.org/projects/lexer") (license license:expat))) (define-public php-doctrine-persistence (package (name "php-doctrine-persistence") (version "3.2.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/doctrine/persistence") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1fynsqafdbajbjirqzhj5gjwkfc7yz45nadgqbhrmh29i0q952bq")))) (build-system composer-build-system) ;; Native inputs here create a loop that is hard to break. ;; Maybe use a -bootstrap version if testing becomes important. (arguments '(#:tests? #f)) (inputs (list php-doctrine-event-manager php-psr-cache)) (native-inputs (list php-phpunit-phpunit)) (synopsis "Shared functionality between the Doctrine object mappers") (description "This package provides a set of shared interfaces and functionality that the different Doctrine object mappers share.") (home-page "https://www.doctrine-project.org/projects/persistence") (license license:expat))) (define-public php-dms-phpunit-arraysubset-asserts (package (name "php-dms-phpunit-arraysubset-asserts") (version "0.4.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/rdohms/phpunit-arraysubset-asserts") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1hqr99yzppsvv05dscidp2x9acmgpixv39309cv2rwj13qy41hh3")))) (build-system composer-build-system) (inputs (list php-phpunit-phpunit)) (synopsis "PHP ArraySubset") (description "This package provides PHP ArraySubset and related asserts once deprecated in PHPUnit 8.") (home-page "https://github.com/rdohms/phpunit-arraysubset-asserts") (license license:expat))) (define-public php-egulias-email-validator (package (name "php-egulias-email-validator") (version "4.0.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/egulias/EmailValidator") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0nyqri3421gkiswn70f7f8cfz4vs1vcadxdyvwjykbgc4fz5skz2")))) (build-system composer-build-system) (arguments (list #:test-flags ''("--exclude" "skipTest") ; FIXME #:phases #~(modify-phases %standard-phases (add-before 'check 'deactivate-failing-tests (lambda _ (substitute* "tests/EmailValidator/Validation/DNSCheckValidationTest.php" (("(.*)@dataProvider validEmailsProvider" all blank) (string-append all "\n" blank "@group skipTest")) (("(.*)public function testDomainAcceptsNoMailError\\(\\)" all blank) (string-append blank "/**\n" blank " * @group skipTest\n" blank " */\n" all)) (("(.*)public function testNoDNSError\\(\\)" all blank) (string-append blank "/**\n" blank " * @group skipTest\n" blank " */\n" all)))))))) (inputs (list php-doctrine-lexer php-symfony-polyfill-intl-idn)) (native-inputs (list php-phpunit-phpunit)) (synopsis "PHP email address validator") (description "A library for validating emails against several RFCs") (home-page "https://github.com/egulias/EmailValidator") (license license:expat))) (define-public php-fig-log-test (package (name "php-fig-log-test") (version "1.1.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/php-fig/log-test") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0qli30g6gj458r09sbxx286dpjmh30yhhl7vnfw5m7f91x3lfdlz")))) (build-system composer-build-system) (arguments '(#:test-flags '("--bootstrap" "vendor/autoload.php"))) (inputs (list php-psr-log)) (native-inputs (list php-phpunit-phpunit)) (synopsis "Tests utils for the PHP psr/log package") (description "This package provides test utilities for the psr/log package that backs the PSR-3 specification.") (home-page "https://github.com/php-fig/log-test") (license license:expat))) (define-public php-hamcrest-hamcrest-php (package (name "php-hamcrest-hamcrest-php") (version "2.0.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/hamcrest/hamcrest-php") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1n6idxz1rc17zky84khrqfyndh4ffb7jvd1nb14saxdissgq5y5j")) (patches (search-patches "php-hamcrest-hamcrest-php-phpunit-compatibility.patch")))) (build-system composer-build-system) (arguments `(#:test-flags '("--configuration" "tests/phpunit.xml.dist" "--exclude-group" "skipTest") #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-recent-phpunit-build (lambda _ (substitute* "tests/Hamcrest/UtilTest.php" (("assertInternalType\\('array', ") "assertIsArray(") ;; Ignore this test. (("@expectedException InvalidArgumentException") "@group skipTest"))))))) (native-inputs (list php-phpunit-php-file-iterator php-phpunit-phpunit)) (synopsis "PHP port of Hamcrest Matchers") (description "Hamcrest is a matching library originally written for Java, but subsequently ported to many other languages. This package is the official PHP port of Hamcrest and essentially follows a literal translation of the original Java API for Hamcrest, with a few PHP-related exceptions.") (home-page "https://github.com/hamcrest/hamcrest-php") (license license:bsd-3))) (define-public php-mockery-mockery (package (name "php-mockery-mockery") (version "1.6.6") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mockery/mockery") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1z6nla99wswa339f6l8sging4xfnkkp1lkby5fn7g9zh9hdqxx0l")))) (build-system composer-build-system) (arguments (list #:test-flags ''("--bootstrap" "vendor/autoload.php") #:phases #~(modify-phases %standard-phases (add-before 'check 'remove-duplicate-hamcrest-require (lambda _ ;; Remove duplicate hamcrest require. (substitute* "vendor/autoload_conf.php" ((".*Hamcrest.php';") "")) ;; Fix failing test. (substitute* "tests/Mockery/HamcrestExpectationTest.php" (("anything\\(\\)") "\\Hamcrest\\Matchers::anything()") (("greaterThan\\(") "\\Hamcrest\\Matchers::greaterThan(")) ;; FIXME Delete failing test. (delete-file "\ tests/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegrationTest.php")))))) (inputs (list php-hamcrest-hamcrest-php)) (native-inputs (list php-phpunit-phpunit)) (synopsis "PHP mock object framework") (description "This package provides a simple and flexible PHP mock object framework, often used for tests.") (home-page "https://github.com/mockery/mockery") (license license:bsd-3))) (define-public php-myclabs-deep-copy (package (name "php-myclabs-deep-copy") (version "1.11.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/myclabs/DeepCopy") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1jica9cx65a3l70p1sn6vjz5dxdqfwf5msvn1v4qnp6ah7rh4xcv")))) (build-system composer-build-system) (arguments '(#:test-flags '("--bootstrap" "vendor/autoload.php"))) (native-inputs (list php-phpunit-phpunit php-doctrine-collections php-doctrine-common php-phpspec-prophecy)) (synopsis "Create copies of PHP objects") (description "This package contains a facility to create deep copies (clones) of PHP objects. This package not only creates a new copy of an object, it recursively create new copies of any object referenced by the object. It is designed to work even in the presence of cycles in the association graph.") (home-page "https://github.com/myclabs/DeepCopy") (license license:expat))) (define-public php-nikic-php-parser (package (name "php-nikic-php-parser") (version "4.17.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/nikic/PHP-Parser") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1zwcdsgkhg41y2fmqm6jsp91rwgklz1fg09zwayfp43mx7hicq2h")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (synopsis "PHP parser written in PHP") (description "This package provides a PHP parser written in PHP, to simplify static code analysis and manipulation.") (home-page "https://github.com/nikic/PHP-Parser") (license license:bsd-3))) (define-public php-phar-io-manifest (package (name "php-phar-io-manifest") (version "2.0.3") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/phar-io/manifest") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "10bj0c38a988mwv0h8g7lk2npyghsf0bzbvys1msxlckjy7b1zww")))) (build-system composer-build-system) (inputs (list php-phar-io-version)) (synopsis "PHP Archive information reader") (description "This package contains a component for reading phar.io manifest information from a PHP Archive (PHAR).") (home-page "https://phar.io") (license license:bsd-3))) (define-public php-phar-io-version (package (name "php-phar-io-version") (version "3.2.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/phar-io/version") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0cl43mn5vxm8m364b6sjmklva201vx0kpm3zf8aq021l3xllh5fz")))) (build-system composer-build-system) (synopsis "Library for handling version information and constraints") (description "This package contains a library for handling version information and constraints.") (home-page "https://phar.io") (license license:bsd-3))) (define-public php-phpdocumentor-reflection-common (package (name "php-phpdocumentor-reflection-common") (version "2.2.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/phpDocumentor/ReflectionCommon") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1q685cpwbfxqy42iz61xxv6zbcc1qskn07nkipflj6c5s935l8jy")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (synopsis "Common reflection classes for phpdocumentor") (description "This package contains common classes used by phpdocumentor to analyze the code structure.") (home-page "http://www.phpdoc.org") (license license:expat))) (define-public php-phpdocumentor-reflection-docblock (package (name "php-phpdocumentor-reflection-docblock") (version "5.3.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/phpDocumentor/ReflectionDocBlock") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0d7j45b84191f0z8fn5a9fmfjfc3apa9g02pbm4b27w4yybfaqjj")))) (build-system composer-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'phpunit-point-to-right-listener (lambda* (#:key inputs #:allow-other-keys) (substitute* "phpunit.xml.dist" (("vendor\ (/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener\\.php)" a file) (search-input-file inputs (string-append "share/web" file))))))))) (native-inputs (list php-phpunit-phpunit php-mockery-mockery)) (inputs (list php-webmozart-assert php-phpdocumentor-reflection-common php-phpdocumentor-type-resolver)) (synopsis "Library for retrieving documentation in code from the code") (description "This package provides PHP support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.") (home-page "https://github.com/phpDocumentor/ReflectionDocBlock") (license license:expat))) (define-public php-phpdocumentor-type-resolver (package (name "php-phpdocumentor-type-resolver") (version "1.7.3") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/phpDocumentor/TypeResolver") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0yird46q6pny0lz0w6kcw1ljmvavcmzhjmaim6jphmf63k40yx6n")))) (build-system composer-build-system) (inputs (list php-doctrine-deprecations php-phpdocumentor-reflection-common php-phpstan-phpdoc-parser)) (native-inputs (list php-phpunit-phpunit)) (synopsis "Resolver of class names, types and structural element names") (description "This package provides a PSR-5 based resolver of class names, types and structural element names.") (home-page "http://www.phpdoc.org") (license license:expat))) (define-public php-phpspec-prophecy (package (name "php-phpspec-prophecy") (version "1.17.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/phpspec/prophecy") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1hl6n7y0f68hlsw174izqjph2y7f195dggr4n8sfzffw3iqya0w5")))) (build-system composer-build-system) (inputs (list php-sebastian-recursion-context php-doctrine-instantiator php-sebastian-comparator php-phpdocumentor-reflection-docblock)) (native-inputs (list php-phpunit-phpunit)) (synopsis "Mocking framework for PHP 5.3+") (description "This package contains a mocking framework for testing PHP 5.3+ projects.") (home-page "https://github.com/phpspec/prophecy") (license license:expat))) (define-public php-phpstan-phpdoc-parser (package (name "php-phpstan-phpdoc-parser") (version "1.24.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/phpstan/phpdoc-parser") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0sdnij33y0baqi4wzspzr67id00vk1p0n851s2a056njpyym65lv")) (snippet '(begin (delete-file "tests/abnfgen-0.20.tar.gz") (delete-file "build-abnfgen.sh"))))) (build-system composer-build-system) (arguments (list #:test-flags ''("--bootstrap" "vendor/autoload.php") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'unbundle-abnfgen (lambda _ (substitute* "tests/PHPStan/Parser/FuzzyTest.php" (("__DIR__ \\. '/\\.\\./\\.\\./\\.\\./tools/abnfgen/abnfgen'") (string-append "'" #$(this-package-native-input "abnfgen") "/bin/abnfgen'")))))))) (native-inputs (list abnfgen php-phpunit-phpunit php-symfony-process php-doctrine-annotations)) (synopsis "PHPDoc parser") (description "This package provides a PHPDoc parser with support for nullable, intersection and generic types.") (home-page "https://github.com/phpstan/phpdoc-parser") (license license:expat))) (define-public php-phpunit-php-code-coverage (package (name "php-phpunit-php-code-coverage") (version "9.2.29") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/php-code-coverage") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "16hza9xf1x1rixym4rwhffipwbl3r1jq2hi1r1d1c5fpsdcpg31p")))) (build-system composer-build-system) (inputs (list php-nikic-php-parser php-sebastian-complexity php-sebastian-lines-of-code php-sebastian-version php-sebastian-environment php-sebastian-code-unit-reverse-lookup php-theseer-tokenizer php-phpunit-php-text-template php-phpunit-php-token-stream php-phpunit-php-file-iterator)) (native-inputs (list php-phpunit-phpunit)) (synopsis "Code coverage information library") (description "This package is a library that provides collection, processing, and rendering functionality for PHP code coverage information.") (home-page "https://github.com/sebastianbergmann/php-code-coverage") (license license:bsd-3))) (define-public php-phpunit-php-file-iterator (package (name "php-phpunit-php-file-iterator") (version "3.0.6") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/php-file-iterator") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0s5n9z3a50n2vclb14l89ifvgh9amffig2y34h1yslzas07ar22w")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (synopsis "Filter file by extension") (description "This package contains a @code{FilterIterator} implementation that filters files based on a list of suffixes.") (home-page "https://github.com/sebastianbergmann/php-file-iterator/") (license license:bsd-3))) (define-public php-phpunit-php-invoker (package (name "php-phpunit-php-invoker") (version "4.0.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/php-invoker") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "11mnr7k7nxgi2s0fz0f4b947b7prjj5jhbqvx1hm0p9rdn0biggn")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (synopsis "PHP library for invoking functions") (description "This package contains a library to invoke callables with a timeout.") (home-page "https://github.com/sebastianbergmann/php-invoker/") (license license:bsd-3))) (define-public php-phpunit-php-timer (package (name "php-phpunit-php-timer") (version "5.0.3") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/php-timer") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0y3wc4ywmpzbjkgnyf8aq2k2kybfmbic2qz46wrqr8d78ah2csf0")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit php-sebastian-global-state)) (synopsis "Utility class for timing") (description "This package contains a stand-alone component originally part of PHPUnit. It provides a utility class for timing.") (home-page "https://github.com/sebastianbergmann/php-timer/") (license license:bsd-3))) (define-public php-phpunit-php-text-template (package (name "php-phpunit-php-text-template") (version "3.0.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/php-text-template") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0q7wpi398sxwrzx7gsakk7vg2v9wv62bglbnd4w9m7svksriwn4a")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (synopsis "Simple template engine") (description "This package contains a library for a simple templating engine.") (home-page "https://github.com/sebastianbergmann/php-text-template/") (license license:bsd-3))) (define-public php-phpunit-php-token-stream (package (name "php-phpunit-php-token-stream") (version "4.0.4") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/php-token-stream") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "17pyrfxvjld57i43wanfk84d8x327lwmn1avk6hbwapn4bxic0lv")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (home-page "https://github.com/sebastianbergmann/php-token-stream") (synopsis "Wrapper around PHP's tokenizer extension") (description "This library provides a wrapper around PHP's tokenizer extension.") (license license:bsd-3))) (define-public php-predis-predis (package (name "php-predis-predis") (version "2.2.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/predis/predis") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1y0cn6mmqkdh56jlhqx8fjmkr8nipw20rnwgpc9y9qgk0l0mv4c8")))) (build-system composer-build-system) (arguments (list #:phases #~(modify-phases %standard-phases (add-before 'check 'pre-check (lambda _ ;; Launch the redis server. (invoke "redis-server" "--daemonize" "yes") ;; Fix the sole failing test. (substitute* "tests/Predis/Command/Redis/ACL_Test.php" (("User Test has no permissions to run the 'get' command") "This user has no permissions to run the 'get' command"))))))) (native-inputs (list redis php-phpunit-phpunit)) (synopsis "Redis client for PHP") (description "This package provides a flexible and feature-complete Redis client for PHP.") (home-page "https://github.com/predis/predis") (license license:expat))) (define-public php-psr-log (package (name "php-psr-log") (version "3.0.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/php-fig/log") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0z3qnkxbn7y2grq6k2h659aswvi8hrm6dyw4x0qcdsd9l2nlx0kf")))) (build-system composer-build-system) (synopsis "PHP interface for logging") (description "This package provides a common interface for PHP logging libraries.") (home-page "https://github.com/php-fig/log") (license license:expat))) (define-public php-psr-cache (package (name "php-psr-cache") (version "3.0.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/php-fig/cache") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "17z58lcndi97s2lxivv9pcr9yqvrzvrhinwvr2xh4g310wc6pcal")))) (build-system composer-build-system) (synopsis "Cache libraries in PHP") (description "This package provides a common interface for caching PHP libraries.") (home-page "https://github.com/php-fig/cache") (license license:expat))) (define-public php-psr-cache-1 (package/inherit php-psr-cache (name "php-psr-cache") (version "1.0.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/php-fig/cache") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "165nhqrqh7q2rrxz86iywv5nkyr0ybxfbnmcxk54bsy6yhkhvg3s")))))) (define-public php-psr-container (package (name "php-psr-container") (version "2.0.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/php-fig/container") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "02438i87fa344xm6iv2wsk5pmyjkacdiaa085a4zggw1ivwch8dc")))) (build-system composer-build-system) (synopsis "PHP interfaces relates to PSR-11") (description "This package provides all interfaces related to PSR-11 (Container Interface). This is not a Container implementation of its own. It is merely abstractions that describe the components of a Dependency Injection Container.") (home-page "https://github.com/php-fig/container") (license license:expat))) (define-public php-psr-event-dispatcher (package (name "php-psr-event-dispatcher") (version "1.0.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/php-fig/event-dispatcher") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1rxjscznzihbpgngwci61ji8qy5c623qmpy9zpqbj0f5vv8l99kp")))) (build-system composer-build-system) (synopsis "PHP interfaces for event handling") (description "This package provides PHP standard interfaces for event handling.") (home-page "https://github.com/php-fig/event-dispatcher") (license license:expat))) (define-public php-psr-simple-cache (package (name "php-psr-simple-cache") (version "3.0.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/php-fig/simple-cache") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0gndf4ygvgbw790hxxvv9d2qpnzdi409m1n9f36jw7fy1cg6gbax")))) (build-system composer-build-system) (synopsis "Simple cache in PHP") (description "This package provides common interfaces in PHP for simple caching.") (home-page "https://github.com/php-fig/simple-cache") (license license:expat))) (define-public php-sebastian-cli-parser (package (name "php-sebastian-cli-parser") (version "2.0.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/cli-parser") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "08fhain1fwhnhvv0546pszm907g56gqi37pn39dlq1rs6vxsnqd7")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (synopsis "Parse CLI options in PHP") (description "This package provides a PHP library for parsing command-line options.") (home-page "https://github.com/sebastianbergmann/cli-parser") (license license:bsd-3))) (define-public php-sebastian-code-unit (package (name "php-sebastian-code-unit") (version "2.0.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/code-unit") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1k259by6jyhzl5qbnamh7270r2jgiw4bjxiy9hc2j8g9gv7ddp10")))) (build-system composer-build-system) (arguments '(#:test-flags '("--bootstrap" "vendor/autoload.php"))) (native-inputs (list php-phpunit-phpunit)) (synopsis "PHP collection of value objects for code units") (description "This package contains a collection of value objects that represent the PHP code units.") (home-page "https://github.com/sebastianbergmann/code-unit") (license license:bsd-3))) (define-public php-sebastian-code-unit-reverse-lookup (package (name "php-sebastian-code-unit-reverse-lookup") (version "2.0.3") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/code-unit-reverse-lookup") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1zb5lwi46fgarrlbbbxp93md7wfwaxlrmrzvmrmxfqjmxjncpyp0")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (synopsis "Look up function name from location") (description "This package provides a facility to look up which function or method a line of code belongs to in PHP.") (home-page "https://github.com/sebastianbergmann/code-unit-reverse-lookup") (license license:bsd-3))) (define-public php-sebastian-comparator (package (name "php-sebastian-comparator") (version "4.0.8") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/comparator") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "00manwzfmsk8vkvra63mbpimkhr8sq9qi1dm3rdkspizy4gg0idl")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (inputs (list php-sebastian-exporter php-sebastian-diff)) (synopsis "PHP value comparison") (description "This package provides the functionality to compare PHP values for equality.") (home-page "https://github.com/sebastianbergmann/comparator") (license license:bsd-3))) (define-public php-sebastian-complexity (package (name "php-sebastian-complexity") (version "2.0.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/complexity") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0mrivs3dxv4kyy9js6n33ardqnijg9v6jiiypb7b97xgmf4w694w")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (inputs (list php-nikic-php-parser)) (synopsis "Calculate the complexity of PHP code") (description "This package provides a PHP library for calculating the complexity of PHP code units.") (home-page "https://github.com/sebastianbergmann/complexity") (license license:bsd-3))) (define-public php-sebastian-diff (package (name "php-sebastian-diff") (version "4.0.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/diff") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1pxy6g7q5q0nr3yiyimf2dbm0m80dx440mc8p2j2z2fccpyj85dd")))) (build-system composer-build-system) (native-inputs (list git-minimal php-phpunit-phpunit php-symfony-process)) (synopsis "Diff implementation") (description "This package contains a PHP implementation of a diff function.") (home-page "https://github.com/sebastianbergmann/diff") (license license:bsd-3))) (define-public php-sebastian-environment (package (name "php-sebastian-environment") (version "5.1.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/environment") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0zfgwzvk1nrib9k5iz8x51g70222qw7kjyh34gp6zaqjsj6dpbiw")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (synopsis "Handle HHVM and PHP environments") (description "This package provides functionality to handle HHVM/PHP environments") (home-page "https://github.com/sebastianbergmann/environment") (license license:bsd-3))) (define-public php-sebastian-exporter (package (name "php-sebastian-exporter") (version "4.0.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/exporter") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "03jgh5vw1h6n97cklni667wj5ml1b4h15wdkra0j7m1b8gxym7lj")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (inputs (list php-sebastian-recursion-context)) (synopsis "Visualize PHP variables") (description "This package provides the functionality to export PHP variables for visualization") (home-page "https://github.com/sebastianbergmann/exporter") (license license:bsd-3))) (define-public php-sebastian-global-state (package (name "php-sebastian-global-state") (version "5.0.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/global-state") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0vchgv62hy58dkz2gqa9h6yv6c8kvygc84kvbsd5h6nhlcwfzygr")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (inputs (list php-sebastian-recursion-context php-sebastian-object-reflector)) (synopsis "Snapshotting of global state") (description "This package contains a stand-alone component originally part of PHPUnit. It provides support for creating a snapshot of the global state of a PHP program.") (home-page "https://github.com/sebastianbergmann/global-state") (license license:bsd-3))) (define-public php-sebastian-lines-of-code (package (name "php-sebastian-lines-of-code") (version "2.0.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/lines-of-code") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1j5yk9565mh4s46735jlqiz9kxwgxai7g0a0x802alhv9qjpm5p6")))) (build-system composer-build-system) (arguments (list #:phases #~(modify-phases %standard-phases (add-before 'check 'remove-failing-tests (lambda _ (delete-file "tests/unit/LineCountingVisitorTest.php")))))) (native-inputs (list php-phpunit-phpunit)) (inputs (list php-nikic-php-parser)) (synopsis "Count PHP source code lines") (description "This package provides a library for counting the lines of code in PHP source code.") (home-page "https://github.com/sebastianbergmann/lines-of-code") (license license:bsd-3))) (define-public php-sebastian-object-enumerator (package (name "php-sebastian-object-enumerator") (version "4.0.4") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/object-enumerator") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1f3zghb32g2mrh2abkasi79y6cq1aisp2dam5hnv0y76sddkrsd6")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (inputs (list php-sebastian-recursion-context php-sebastian-object-reflector)) (synopsis "Enumerate PHP objects") (description "This package allows PHP programs to traverse array structures and object graphs to enumerate all referenced objects.") (home-page "https://github.com/sebastianbergmann/object-enumerator/") (license license:bsd-3))) (define-public php-sebastian-object-reflector (package (name "php-sebastian-object-reflector") (version "2.0.4") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/object-reflector") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1jrdfxr94c43za4z7dp0hql6q06zpgzljwv7514lwn7qs51lnn9h")))) (build-system composer-build-system) (arguments (list #:test-flags ''("--exclude" "skipTest") #:phases #~(modify-phases %standard-phases (add-before 'check 'fix-tests (lambda _ ;; Deactivate risky/deprecated tests. (substitute* "tests/ObjectReflectorTest.php" (("(.*)public function testReflectsAttribute" all blank) (string-append blank "/**\n" blank " * @group skipTest\n" blank " */\n" all)))))))) (native-inputs (list php-phpunit-phpunit)) (synopsis "PHP reflexion library") (description "This package allows reflection of object attributes, including inherited and non-public ones.") (home-page "https://github.com/sebastianbergmann/object-reflector/") (license license:bsd-3))) (define-public php-sebastian-recursion-context (package (name "php-sebastian-recursion-context") (version "4.0.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/recursion-context") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "02agysiipm41366ww518imz4jz9c3d2886pd3zn1j9m1c2qx7f53")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (synopsis "Process PHP variables recursively") (description "This package provides functionality to recursively process PHP variables") (home-page "https://github.com/sebastianbergmann/recursion-context") (license license:bsd-3))) (define-public php-sebastian-resource-operations (package (name "php-sebastian-resource-operations") (version "3.0.3") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/resource-operations") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1nx8basy2347x9fvr7x4wbz58wh18h8m8qywksc6k47n6srj2qir")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (synopsis "List built-in PHP functions") (description "This package provides a list of PHP built-in functions that operate on resources.") (home-page "https://github.com/sebastianbergmann/resource-operations") (license license:bsd-3))) (define-public php-sebastian-type (package (name "php-sebastian-type") (version "3.2.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/type") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0pr3r2zdwm7rzfj2g37kbxs69wq5cbmglhrxnrjmbf3d6zsv5b54")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (synopsis "PHP type system representation") (description "This package is a collection of value objects that represent the types of the PHP type system.") (home-page "https://github.com/sebastianbergmann/type") (license license:bsd-3))) (define-public php-sebastian-version (package (name "php-sebastian-version") (version "3.0.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sebastianbergmann/version") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0645hyzf4dbmy3gk7mda3bk1rnxn7qzifawi5ss5mgkqp6x5awvj")))) (build-system composer-build-system) (synopsis "PHP versionning library") (description "This package is a library that helps with managing the version number of Git-hosted PHP projects.") (home-page "https://github.com/sebastianbergmann/version") (license license:bsd-3))) (define-public php-symfony-cache (package (name "php-symfony-cache") (version "6.3.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/cache") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1sg9wrzaarylzf4r1kndgf6m6a4s0i0wnnz84ycj43xbv2dll2q3")))) (build-system composer-build-system) (inputs (list php-psr-cache php-psr-log php-symfony-cache-contracts php-symfony-service-contracts php-symfony-var-exporter)) (native-inputs (list php-phpunit-phpunit php-cache-integration-tests php-doctrine-dbal php-psr-simple-cache php-symfony-dependency-injection php-symfony-filesystem php-symfony-http-kernel php-symfony-phpunit-bridge)) (synopsis "Complete PHP cache library") (description "This package provides an extended implementation of the PHP PSR-6 caching interface, the PHP PSR-16 common interface for caching libraries.") (home-page "https://symfony.com") (license license:expat))) (define-public php-cache-integration-tests (package (name "php-cache-integration-tests") (version "0.17.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/php-cache/integration-tests") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0i079z0jmcji4kn9mcxdv2093ypcd6albwkhhkiv39py31bjdpgg")))) (build-system composer-build-system) (arguments (list #:test-flags ''("--testsuite" "Symfony") #:phases #~(modify-phases %standard-phases (add-before 'check 'fix-tests (lambda _ ;; Adapt phpunit config to Guix context. (substitute* "phpunit.xml.dist" (("\\./vendor/symfony/cache") (string-append #$(this-package-native-input "php-symfony-cache") "/share/web/symfony/cache")))))))) (inputs (list php-psr-cache php-cache-tag-interop)) (native-inputs (list php-phpunit-phpunit (package/inherit php-symfony-cache (arguments '(#:tests? #f)) (native-inputs '())) php-symfony-filesystem php-symfony-phpunit-bridge)) (synopsis "PHP integration tests") (description "This package provides PHP integration tests for PSR-6 and PSR-16 cache implementations.") (home-page "https://github.com/php-cache/integration-tests") (license license:expat))) (define-public php-symfony-cache-contracts (package (name "php-symfony-cache-contracts") (version "3.3.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/cache-contracts") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1pjdcm7zwvhf0dcnb7h1c65zc9xpj551dlljag4nliq7i23ypj5y")))) (build-system composer-build-system) (inputs (list php-psr-cache)) (synopsis "PHP caching abtractions") (description "This package provides PHP generic abstractions related to caching.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-config (package (name "php-symfony-config") (version "6.3.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/config") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0rvpmh9h9gp095l6f4bmsn6flrikig2gsxxpan521dw27aw3r9sx")))) (build-system composer-build-system) (inputs (list php-symfony-deprecation-contracts php-symfony-filesystem php-symfony-polyfill-ctype)) (native-inputs (list php-phpunit-phpunit php-symfony-event-dispatcher)) (synopsis "Configure PHP values") (description "This package provides utilities to find, load, combine, autofill and validate configuration values of any kind.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-console (package (name "php-symfony-console") (version "6.3.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/console") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1k6vncnkrd80ly965b1a648gyc47yy24vy2hx75842l62xj280p2")))) (build-system composer-build-system) (arguments (list #:test-flags ''("--exclude" "skipTest") #:phases #~(modify-phases %standard-phases (add-before 'check 'fix-tests (lambda _ ;; Deactivate failing tests. (substitute* "Tests/Helper/QuestionHelperTest.php" (("(.*)public function testAutocompleteMoveCursorBackwards" all blank) (string-append blank "/**\n" blank " * @group skipTest\n" blank " */\n" all)))))))) (inputs (list php-symfony-polyfill-mbstring php-symfony-deprecation-contracts php-symfony-service-contracts php-symfony-string)) (native-inputs (list php-phpunit-phpunit php-psr-log php-symfony-dependency-injection php-symfony-event-dispatcher (package/inherit php-symfony-lock (arguments '(#:tests? #f)) (native-inputs '())) php-symfony-phpunit-bridge php-symfony-process php-symfony-var-dumper)) (synopsis "Create PHP CLI applications") (description "This package provides utilities to ease the creation of beautiful and testable command line interfaces.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-dependency-injection (package (name "php-symfony-dependency-injection") (version "6.3.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/dependency-injection") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1ns3l4qmghpcfzm58vjajpyagavkqyrdqqd0pxdn7r4dh5h6m0wf")))) (build-system composer-build-system) (arguments (list #:test-flags ''("--exclude" "skipTest" "--dont-report-useless-tests") #:phases #~(modify-phases %standard-phases (add-before 'check 'fix-tests (lambda _ ;; Deactivate failing tests. (substitute* "Tests/Dumper/PhpDumperTest.php" (("(.*)public function testDumpAsFiles.*" all blank) (string-append blank "/**\n" blank " * @group skipTest\n" blank " */\n" all)) (("(.*)public function testDeprecatedParametersAsFiles\\(\\)" all blank) (string-append blank "/**\n" blank " * @group skipTest\n" blank " */\n" all)) (("(.*)public function testNonSharedLazyAsFiles\\(\\)" all blank) (string-append blank "/**\n" blank " * @group skipTest\n" blank " */\n" all)))))))) (inputs (list php-psr-container php-symfony-deprecation-contracts php-symfony-service-contracts php-symfony-var-exporter)) (native-inputs (list php-phpunit-phpunit (package/inherit php-symfony-config (arguments '(#:tests? #f)) (native-inputs '())) php-symfony-expression-language php-symfony-phpunit-bridge php-symfony-yaml)) (synopsis "Construct objects in PHP") (description "This package provides utilities to standardize and centralize the way objects are constructed in your PHP application.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-deprecation-contracts (package (name "php-symfony-deprecation-contracts") (version "3.3.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/deprecation-contracts") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "084i60zif71y07ryh6gb4mvrzp3gpzk342r2p9q8jzw9vggxyhv9")))) (build-system composer-build-system) (synopsis "Trigger deprecation notices in PHP") (description "This package provides a generic function and convention to trigger deprecation notices.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-error-handler (package (name "php-symfony-error-handler") (version "6.0.19") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/error-handler") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1vvpmx5v6b22ip44vs3lgyxk0m5cfwkgdpd8rfpp6lbh61ildcph")))) (build-system composer-build-system) (inputs (list php-psr-log php-symfony-var-dumper)) (native-inputs (list php-phpunit-phpunit)) (synopsis "Ease debugging in PHP") (description "This package provides tools to manage errors and ease debugging PHP code.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-event-dispatcher (package (name "php-symfony-event-dispatcher") (version "6.3.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/event-dispatcher") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "10dnagg5939knb3xqym1dcnkcpf7cjzylk3r7d80l9khgxmw8gr8")))) (build-system composer-build-system) (inputs (list php-symfony-event-dispatcher-contracts)) (native-inputs (list php-phpunit-phpunit (package/inherit php-symfony-config (arguments '(#:tests? #f)) (native-inputs '())) (package/inherit php-symfony-dependency-injection (arguments '(#:tests? #f)) (native-inputs '())) php-symfony-error-handler php-symfony-stopwatch)) (synopsis "Dispatch events between PHP application components") (description "This package provides tools that allow your application components to communicate with each other by dispatching events and listening to them.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-event-dispatcher-contracts (package (name "php-symfony-event-dispatcher-contracts") (version "3.3.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/event-dispatcher-contracts") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1l2vigh39v7a4kcx3jxllsd0flvhanhidr61dvvf653v7ll8igk3")))) (build-system composer-build-system) (inputs (list php-psr-event-dispatcher)) (synopsis "PHP abstractions for event handling") (description "This package provides generic abstractions related to dispatching event in PHP.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-expression-language (package (name "php-symfony-expression-language") (version "6.3.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/expression-language") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0xbsjnqb4mm6c8l0lri4qsdb9y9fjavjnx9g0n3gbwy8gh5v0d03")))) (build-system composer-build-system) (inputs (list (package/inherit php-symfony-cache (arguments '(#:tests? #f)) (native-inputs '())) php-symfony-deprecation-contracts php-symfony-service-contracts)) (native-inputs (list php-phpunit-phpunit php-symfony-phpunit-bridge)) (synopsis "Evaluate PHP expressions") (description "This package provides an engine that can compile and evaluate expressions.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-filesystem (package (name "php-symfony-filesystem") (version "6.3.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/filesystem") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0m0kza9lz6wh707mzpc0pascwvmxnlmwgpl55w8zpmbs9a2jjsik")))) (build-system composer-build-system) (arguments '(#:test-flags '("--exclude-group" "network"))) (inputs (list php-symfony-polyfill-ctype php-symfony-polyfill-mbstring)) (native-inputs (list php-phpunit-phpunit)) (synopsis "Basic PHP utilities for the filesystem") (description "This package provides basic utilities for the filesystem in the Symfony PHP framework.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-finder (package (name "php-symfony-finder") (version "6.3.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/finder") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "02fjcdlzpk40kqirv61n7hzyfc2b803r186l80s50vaavgj9iv9k")))) (build-system composer-build-system) (arguments (list #:test-flags ''("--exclude-group" "network,skipTest") #:phases #~(modify-phases %standard-phases (add-before 'check 'fix-tests (lambda _ ;; Ignore this sole failing test. (substitute* "Tests/Iterator/SortableIteratorTest.php" (("(.*)\\* @dataProvider getAcceptData" all blank) (string-append all "\n" blank "* @group skipTest"))) ;; Without process isolation, setUp will be executed everytime, ;; not just for the first test. (substitute* (list "Tests/Iterator/RealIteratorTestCase.php" "Tests/Iterator/VcsIgnoredFilterIteratorTest.php") (("static function setUpBeforeClass") "function setUp"))))))) (native-inputs (list php-phpunit-phpunit php-symfony-filesystem)) (synopsis "Find files in PHP") (description "This package provides PHP utilities to find files and directories via an intuitive fluent interface.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-http-foundation (package (name "php-symfony-http-foundation") (version "6.3.7") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/http-foundation") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "18g5cvyvww5a5qac9iw606lkyya4dndrzs6ddxayp7a3nr1i733n")))) (build-system composer-build-system) (inputs (list php-symfony-polyfill-mbstring php-symfony-deprecation-contracts)) (native-inputs (list php-doctrine-dbal php-phpunit-phpunit php-predis-predis php-symfony-phpunit-bridge php-symfony-mime php-symfony-expression-language)) (synopsis "PHP HTTP specification") (description "This package defines an object-oriented layer for the HTTP specification in PHP.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-http-kernel (package (name "php-symfony-http-kernel") (version "6.3.7") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/http-kernel") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1dhvy4fn4qzqxsk4wiz6z53y3vz9z1n3d7js0s4858z1z7pdsfwv")))) (build-system composer-build-system) (inputs (list php-symfony-deprecation-contracts php-symfony-error-handler php-symfony-event-dispatcher php-symfony-http-foundation php-symfony-polyfill-ctype php-psr-log)) (native-inputs (list php-phpunit-phpunit php-symfony-dependency-injection php-symfony-phpunit-bridge php-symfony-uid)) (synopsis "Handle HTTP requests in PHP") (description "This package provides a structured process for converting an HTTP Request into a Response.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-intl (package (name "php-symfony-intl") (version "6.3.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/intl") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0ym89qrymyzydzp5r1b07xz89njdk5349ll7dz9sbzj9cnqiqbmx")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit php-symfony-filesystem php-symfony-finder php-symfony-var-exporter)) (synopsis "Localization data in PHP") (description "This package provides access to the localization data of the ICU library.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-lock (package (name "php-symfony-lock") (version "6.3.7") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/lock") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1ldnv0hlakxi3cs1x39swg7kr60rj8m55ivxfn7ggfw38b8725xz")))) (build-system composer-build-system) (arguments (list #:phases #~(modify-phases %standard-phases (add-before 'check 'pre-check (lambda _ (invoke "redis-server" "--daemonize" "yes")))))) (inputs (list php-psr-log php-symfony-deprecation-contracts)) (native-inputs (list php-doctrine-dbal php-phpunit-phpunit php-predis-predis redis util-linux)) (synopsis "Manage PHP locks") (description "This package provides utilities to create and manage locks in PHP, a mechanism to provide exclusive access to a shared resource.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-mime (package (name "php-symfony-mime") (version "6.3.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/mime") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1zx83vii3kdj51kbdg515a7plq4rwfnfa7b4590ry2lrv0ryxvjp")))) (build-system composer-build-system) (arguments '(#:test-flags '("--exclude" "network") #:tests? #f)) ; TODO package php-symfony-serializer (inputs (list php-symfony-polyfill-intl-idn php-symfony-deprecation-contracts php-symfony-polyfill-mbstring)) (native-inputs (list php-phpunit-phpunit php-egulias-email-validator php-symfony-dependency-injection php-symfony-phpunit-bridge php-symfony-property-info)) (synopsis "Manipulate MIME messages with PHP") (description "This package provides utilities to manipulate MIME messages in PHP.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-phpunit-bridge (package (name "php-symfony-phpunit-bridge") (version "6.3.6") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/phpunit-bridge") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1v5zdjb0d7282wq0ghwzn9x005wqlzjmx2msi9vhp1c4l513fxgf")) (patches (search-patches "php-symfony-phpunit-bridge-getVendors-fix.patch")))) (build-system composer-build-system) (arguments (list #:test-flags ; Some tests are useless but get reported as risky. ''("--bootstrap" "vendor/autoload.php" "--dont-report-useless-tests") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'deactivate-bootstrap.php (lambda _ (substitute* "composer.json" ((".*\"files\".*") "")))) (add-before 'check 'pre-check (lambda* (#:key inputs #:allow-other-keys) ;; Adapt some PHP test code to Guix context. (mkdir-p (string-append (getcwd) "/vendor/myfakevendor/myfakepackage1")) (substitute* "Tests/DeprecationErrorHandler/DeprecationTest.php" (("(.*)self::\\$vendorDir = \\$vendorDir;" all blank) (string-append blank "$vendorDir = '" (getcwd) "/vendor/';\n" all))) (substitute* "DeprecationErrorHandler/Deprecation.php" (("(self::\\$vendors\\[\\] = )\\$v;" all eq) (string-append eq "'" (getcwd) "/vendor';")) (("(self::\\$internalPaths)\\[\\] = \\$paths;" all def) (string-append def " = [" "'" (getcwd) "/Tests/DeprecationErrorHandler/Deprecation.php'," "'" (getcwd) "/Tests/DeprecationErrorHandler/DeprecationTest.php'," "'" (getcwd) "/Tests/DeprecationErrorHandler.php'," "];"))) ;; Remove failing tests. All but two are probably failing ;; because of some version mismatch of php-symfony-error-handler. (for-each (lambda (f) (delete-file (string-append "Tests/DeprecationErrorHandler/" f))) '("partially_quiet.phpt" "partially_quiet2.phpt" "trigger_deprecation_types.phpt" "trigger_error_types.phpt" "weak_vendors_on_vendor.phpt")) (delete-file "Tests/CoverageListenerTest.php") ;; For most simple cases, handle php-symfony-error-handler ;; discrepancies. (substitute* (find-files "Tests" "\\.phpt") (("Remaining indirect deprecation notices") "Other deprecation notices") (("Remaining direct deprecation notices") "Other deprecation notices"))))))) (native-inputs (list php-phpunit-phpunit php-symfony-deprecation-contracts php-symfony-error-handler)) (synopsis "Utilities for PHPUnit") (description "This package provides utilities for PHPUnit, especially user deprecation notices management.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-process (package (name "php-symfony-process") (version "6.3.4") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/process") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "05jp156j8gxgm9ksxdmbmx1h844k02pml4iq9v54l04iah2qgi7k")))) (build-system composer-build-system) (native-inputs (list php-phpunit-phpunit)) (synopsis "Subprocesses in PHP") (description "This package provides the functionality to execute commands in sub-processes.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-property-info (package (name "php-symfony-property-info") (version "6.3.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/property-info") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1ign8wdlgfx15kjc15vddp2mmpbhh7bbmbfkwg1qhyaqknjrifxr")))) (build-system composer-build-system) ;; Native inputs here create a loop that is hard to break. ;; Maybe use a -bootstrap version if testing becomes important. (arguments '(#:tests? #f)) (inputs (list php-symfony-string)) (synopsis "Get PHP class properties") (description "This package provides utilities to extract information about PHP class' properties using metadata of popular sources.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-polyfill-ctype (package (name "php-symfony-polyfill-ctype") (version "1.28.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/polyfill-ctype") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1xl4a18gvgc346m8s8pp2lphzlfdvy0jm82bkjrl09ym5qaxk5kv")))) (build-system composer-build-system) (synopsis "Ctype functions for older PHP versions") (description "This component provides @code{ctype_*} functions to users who run php versions without the ctype extension.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-polyfill-intl-grapheme (package (name "php-symfony-polyfill-intl-grapheme") (version "1.28.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/polyfill-intl-grapheme") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "17zmi5by8qskfyl7f10imblara9xck8l996n0pnadcjbjs95h58s")))) (build-system composer-build-system) (synopsis "Intl's grapheme_* functions for older PHP") (description "This package provides Symfony polyfill for intl's grapheme_* functions.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-polyfill-intl-idn (package (name "php-symfony-polyfill-intl-idn") (version "1.28.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/polyfill-intl-idn") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "00mp7cn68r8sdbwcjjjp3bgch9zjpkv9b80srawsmq77spwpd0sh")))) (build-system composer-build-system) (arguments '(#:phases (modify-phases %standard-phases (add-after 'unpack 'remove-polyfill-php72-dependency (lambda _ (substitute* "composer.json" ((".*symfony/polyfill-intl-normalizer.*," all) (string-drop-right all 1)) ((".*symfony/polyfill-php72.*") ""))))))) (inputs (list php-symfony-polyfill-intl-normalizer)) (synopsis "Intl's iden_ functions for older PHP") (description "This package provides Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-polyfill-intl-normalizer (package (name "php-symfony-polyfill-intl-normalizer") (version "1.28.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/polyfill-intl-normalizer") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1rnf6hhs5sp6fsjjbrp4c32nbbs4zg4gngwycl7pz2hiifanwsyf")))) (build-system composer-build-system) (synopsis "Intl's normalizer_* functions for older PHP") (description "This package provides Symfony polyfill for intl's normalizer_* functions.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-polyfill-mbstring (package (name "php-symfony-polyfill-mbstring") (version "1.28.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/polyfill-mbstring") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0845szanlrflafgjf7zy7624h9j5gxfdyrriv28443g932xd8dzr")))) (build-system composer-build-system) (synopsis "Polyfill for PHPs Mbstring extension") (description "This package provides a partial, native PHP implementation for the Mbstring extension.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-polyfill-uuid (package (name "php-symfony-polyfill-uuid") (version "1.28.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/polyfill-uuid") (commit "9c44518a5aff8da565c8a55dbe85d2769e6f630e"))) (file-name (git-file-name name version)) (sha256 (base32 "0l7q6hj0xbibq0417q25kvvpwy5mq6fkwvi675yrw3q9w3advrrx")))) (build-system composer-build-system) (synopsis "UUIDs for older PHP versions") (description "This package provides Symfony polyfill for uuid functions.") (home-page "https://symfony.com") (license license:expat))) (define-public php-symfony-service-contracts (package (name "php-symfony-service-contracts") (version "3.3.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/symfony/service-contracts") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "01ilvij609w7mlrif68fc5vs3dw69pmwyci0gp8nh0wljbp9fw5c")))) (build-system composer-build-system) (arguments `(#:test-flags '("--bootstrap" "vendor/autoload.php" "Test"))) (native-inputs (list php-phpunit-phpunit)) (inputs (list php-psr-container)) (synopsis "PHP abstractions related to writing services") (description "This package provides generic abstractions related to writing PHP services.") (home-page "https://symfony.com") (license license:expat)))