;;; 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)))