From 45cef02faedd1abaf8e20d8c4619cc63c78fcc1f Mon Sep 17 00:00:00 2001 From: Sleon4 Date: Mon, 13 Jan 2025 15:02:42 -0500 Subject: [PATCH 1/6] feat: support for PHP 8.4 --- .gitignore | 1 + Dockerfile | 17 +- composer.json | 37 +- composer.lock | 5851 ------------------------------------------------- 4 files changed, 32 insertions(+), 5874 deletions(-) delete mode 100644 composer.lock diff --git a/.gitignore b/.gitignore index 0c27e2fd..57799008 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ /database/ test.txt supervisord.pid +composer.lock diff --git a/Dockerfile b/Dockerfile index 289d19c9..61db3136 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM php:8.3-apache +FROM php:8.4-apache ARG DEBIAN_FRONTEND=noninteractive # ---------------------------------------------------------------------------------------------------------------------- @@ -60,10 +60,17 @@ USER root SHELL ["/bin/bash", "--login", "-c"] # Install logo-ls -RUN wget https://github.com/Yash-Handa/logo-ls/releases/download/v1.3.7/logo-ls_amd64.deb \ - && dpkg -i logo-ls_amd64.deb \ - && rm logo-ls_amd64.deb \ - && curl https://raw.githubusercontent.com/UTFeight/logo-ls-modernized/master/INSTALL | bash +RUN ARCH=$(uname -m) && \ + if [ "$ARCH" = "x86_64" ]; then \ + wget https://github.com/Yash-Handa/logo-ls/releases/download/v1.3.7/logo-ls_amd64.deb; \ + elif [ "$ARCH" = "aarch64" ]; then \ + wget https://github.com/Yash-Handa/logo-ls/releases/download/v1.3.7/logo-ls_arm64.deb; \ + else \ + echo "Unsupported architecture: $ARCH" && exit 1; \ + fi && \ + dpkg -i logo-ls_*.deb && \ + rm logo-ls_*.deb && \ + curl https://raw.githubusercontent.com/UTFeight/logo-ls-modernized/master/INSTALL | bash # Add configuration in .zshrc RUN echo 'export NVM_DIR="$HOME/.nvm"' >> /home/lion/.zshrc \ diff --git a/composer.json b/composer.json index a11e9297..5aa883c2 100644 --- a/composer.json +++ b/composer.json @@ -40,7 +40,7 @@ ] }, "require": { - "php": ">=8.3", + "php": ">=8.4", "ext-ctype": "*", "ext-filter": "*", "ext-hash": "*", @@ -50,34 +50,35 @@ "ext-tokenizer": "*", "cboden/ratchet": "^0.4.4", "fakerphp/faker": "^1.23", - "guzzlehttp/guzzle": "^7.8", - "lion/command": "^3.1", - "lion/database": "^10.4", - "lion/dependency-injection": "^3.0", + "guzzlehttp/guzzle": "^7.9", + "lion/command": "^5.0", + "lion/database": "^11.0", + "lion/dependency-injection": "^4.0", "lion/exceptions": "^1.3", - "lion/files": "^7.1", - "lion/helpers": "^4.0", - "lion/request": "^6.9", - "lion/route": "^11.5", - "lion/security": "^10.0", + "lion/files": "^8.0", + "lion/helpers": "^5.1", + "lion/request": "^7.1", + "lion/route": "^12.0", + "lion/security": "^11.0", "monolog/monolog": "^3.3", - "nesbot/carbon": "^2.66", - "predis/predis": "^2.2", - "symfony/console": "^6.3", - "symfony/process": "^7.1", + "nesbot/carbon": "^3.8", + "predis/predis": "^2.3", + "symfony/console": "^7.2", + "symfony/process": "^7.2", "vlucas/phpdotenv": "^5.6" }, "require-dev": { - "lion/test": "^2.1", - "phpunit/phpunit": "^11.4", - "robiningelbrecht/phpunit-pretty-print": "^1.3" + "lion/test": "^3.1", + "phpstan/phpstan": "^2.1", + "phpunit/phpunit": "^11.5", + "squizlabs/php_codesniffer": "^3.11" }, "suggest": { "ext-gd": "Required to use LionSpreadsheet.", "ext-pdo": "Required to use all database features.", "ext-redis": "Required to use the Redis cache.", "fakerphp/faker": "Required to use the factory builder.", - "guzzlehttp/guzzle": "Requerido para usar el cliente HTTP.", + "guzzlehttp/guzzle": "Required to use the HTTP client.", "phpunit/phpunit": "Required to use assertions and run tests.", "predis/predis": "Required to use the predis connector." }, diff --git a/composer.lock b/composer.lock deleted file mode 100644 index 72fb3f42..00000000 --- a/composer.lock +++ /dev/null @@ -1,5851 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "6f7cc5e7aafefdbe43a2f144131972db", - "packages": [ - { - "name": "carbonphp/carbon-doctrine-types", - "version": "3.2.0", - "source": { - "type": "git", - "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git", - "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d", - "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "conflict": { - "doctrine/dbal": "<4.0.0 || >=5.0.0" - }, - "require-dev": { - "doctrine/dbal": "^4.0.0", - "nesbot/carbon": "^2.71.0 || ^3.0.0", - "phpunit/phpunit": "^10.3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Carbon\\Doctrine\\": "src/Carbon/Doctrine/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "KyleKatarn", - "email": "kylekatarnls@gmail.com" - } - ], - "description": "Types to use Carbon in Doctrine", - "keywords": [ - "carbon", - "date", - "datetime", - "doctrine", - "time" - ], - "support": { - "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", - "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0" - }, - "funding": [ - { - "url": "https://github.com/kylekatarnls", - "type": "github" - }, - { - "url": "https://opencollective.com/Carbon", - "type": "open_collective" - }, - { - "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", - "type": "tidelift" - } - ], - "time": "2024-02-09T16:56:22+00:00" - }, - { - "name": "cboden/ratchet", - "version": "v0.4.4", - "source": { - "type": "git", - "url": "https://github.com/ratchetphp/Ratchet.git", - "reference": "5012dc954541b40c5599d286fd40653f5716a38f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ratchetphp/Ratchet/zipball/5012dc954541b40c5599d286fd40653f5716a38f", - "reference": "5012dc954541b40c5599d286fd40653f5716a38f", - "shasum": "" - }, - "require": { - "guzzlehttp/psr7": "^1.7|^2.0", - "php": ">=5.4.2", - "ratchet/rfc6455": "^0.3.1", - "react/event-loop": ">=0.4", - "react/socket": "^1.0 || ^0.8 || ^0.7 || ^0.6 || ^0.5", - "symfony/http-foundation": "^2.6|^3.0|^4.0|^5.0|^6.0", - "symfony/routing": "^2.6|^3.0|^4.0|^5.0|^6.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.8" - }, - "type": "library", - "autoload": { - "psr-4": { - "Ratchet\\": "src/Ratchet" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Boden", - "email": "cboden@gmail.com", - "role": "Developer" - }, - { - "name": "Matt Bonneau", - "role": "Developer" - } - ], - "description": "PHP WebSocket library", - "homepage": "http://socketo.me", - "keywords": [ - "Ratchet", - "WebSockets", - "server", - "sockets", - "websocket" - ], - "support": { - "chat": "https://gitter.im/reactphp/reactphp", - "issues": "https://github.com/ratchetphp/Ratchet/issues", - "source": "https://github.com/ratchetphp/Ratchet/tree/v0.4.4" - }, - "time": "2021-12-14T00:20:41+00:00" - }, - { - "name": "evenement/evenement", - "version": "v3.0.2", - "source": { - "type": "git", - "url": "https://github.com/igorw/evenement.git", - "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc", - "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc", - "shasum": "" - }, - "require": { - "php": ">=7.0" - }, - "require-dev": { - "phpunit/phpunit": "^9 || ^6" - }, - "type": "library", - "autoload": { - "psr-4": { - "Evenement\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - } - ], - "description": "Événement is a very simple event dispatching library for PHP", - "keywords": [ - "event-dispatcher", - "event-emitter" - ], - "support": { - "issues": "https://github.com/igorw/evenement/issues", - "source": "https://github.com/igorw/evenement/tree/v3.0.2" - }, - "time": "2023-08-08T05:53:35+00:00" - }, - { - "name": "fakerphp/faker", - "version": "v1.23.1", - "source": { - "type": "git", - "url": "https://github.com/FakerPHP/Faker.git", - "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b", - "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0", - "psr/container": "^1.0 || ^2.0", - "symfony/deprecation-contracts": "^2.2 || ^3.0" - }, - "conflict": { - "fzaninotto/faker": "*" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "doctrine/persistence": "^1.3 || ^2.0", - "ext-intl": "*", - "phpunit/phpunit": "^9.5.26", - "symfony/phpunit-bridge": "^5.4.16" - }, - "suggest": { - "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", - "ext-curl": "Required by Faker\\Provider\\Image to download images.", - "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", - "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", - "ext-mbstring": "Required for multibyte Unicode string functionality." - }, - "type": "library", - "autoload": { - "psr-4": { - "Faker\\": "src/Faker/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "François Zaninotto" - } - ], - "description": "Faker is a PHP library that generates fake data for you.", - "keywords": [ - "data", - "faker", - "fixtures" - ], - "support": { - "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1" - }, - "time": "2024-01-02T13:46:09+00:00" - }, - { - "name": "firebase/php-jwt", - "version": "v6.10.1", - "source": { - "type": "git", - "url": "https://github.com/firebase/php-jwt.git", - "reference": "500501c2ce893c824c801da135d02661199f60c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/firebase/php-jwt/zipball/500501c2ce893c824c801da135d02661199f60c5", - "reference": "500501c2ce893c824c801da135d02661199f60c5", - "shasum": "" - }, - "require": { - "php": "^8.0" - }, - "require-dev": { - "guzzlehttp/guzzle": "^7.4", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.5", - "psr/cache": "^2.0||^3.0", - "psr/http-client": "^1.0", - "psr/http-factory": "^1.0" - }, - "suggest": { - "ext-sodium": "Support EdDSA (Ed25519) signatures", - "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present" - }, - "type": "library", - "autoload": { - "psr-4": { - "Firebase\\JWT\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Neuman Vong", - "email": "neuman+pear@twilio.com", - "role": "Developer" - }, - { - "name": "Anant Narayanan", - "email": "anant@php.net", - "role": "Developer" - } - ], - "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", - "homepage": "https://github.com/firebase/php-jwt", - "keywords": [ - "jwt", - "php" - ], - "support": { - "issues": "https://github.com/firebase/php-jwt/issues", - "source": "https://github.com/firebase/php-jwt/tree/v6.10.1" - }, - "time": "2024-05-18T18:05:11+00:00" - }, - { - "name": "graham-campbell/result-type", - "version": "v1.1.3", - "source": { - "type": "git", - "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "3ba905c11371512af9d9bdd27d99b782216b6945" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945", - "reference": "3ba905c11371512af9d9bdd27d99b782216b6945", - "shasum": "" - }, - "require": { - "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.3" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" - }, - "type": "library", - "autoload": { - "psr-4": { - "GrahamCampbell\\ResultType\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - } - ], - "description": "An Implementation Of The Result Type", - "keywords": [ - "Graham Campbell", - "GrahamCampbell", - "Result Type", - "Result-Type", - "result" - ], - "support": { - "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", - "type": "tidelift" - } - ], - "time": "2024-07-20T21:45:45+00:00" - }, - { - "name": "guzzlehttp/guzzle", - "version": "7.8.1", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", - "shasum": "" - }, - "require": { - "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.1", - "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", - "php": "^7.2.5 || ^8.0", - "psr/http-client": "^1.0", - "symfony/deprecation-contracts": "^2.2 || ^3.0" - }, - "provide": { - "psr/http-client-implementation": "1.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "ext-curl": "*", - "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", - "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.36 || ^9.6.15", - "psr/log": "^1.1 || ^2.0 || ^3.0" - }, - "suggest": { - "ext-curl": "Required for CURL handler support", - "ext-intl": "Required for Internationalized Domain Name (IDN) support", - "psr/log": "Required for using the Log middleware" - }, - "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - } - }, - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Jeremy Lindblom", - "email": "jeremeamia@gmail.com", - "homepage": "https://github.com/jeremeamia" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "Guzzle is a PHP HTTP client library", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "psr-18", - "psr-7", - "rest", - "web service" - ], - "support": { - "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.8.1" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", - "type": "tidelift" - } - ], - "time": "2023-12-03T20:35:24+00:00" - }, - { - "name": "guzzlehttp/promises", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", - "shasum": "" - }, - "require": { - "php": "^7.2.5 || ^8.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" - }, - "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "Guzzle promises library", - "keywords": [ - "promise" - ], - "support": { - "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.2" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", - "type": "tidelift" - } - ], - "time": "2023-12-03T20:19:20+00:00" - }, - { - "name": "guzzlehttp/psr7", - "version": "2.6.2", - "source": { - "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", - "shasum": "" - }, - "require": { - "php": "^7.2.5 || ^8.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.1 || ^2.0", - "ralouphie/getallheaders": "^3.0" - }, - "provide": { - "psr/http-factory-implementation": "1.0", - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" - }, - "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" - }, - "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" - } - ], - "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": [ - "http", - "message", - "psr-7", - "request", - "response", - "stream", - "uri", - "url" - ], - "support": { - "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.6.2" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", - "type": "tidelift" - } - ], - "time": "2023-12-03T20:05:35+00:00" - }, - { - "name": "laravel/serializable-closure", - "version": "v1.3.6", - "source": { - "type": "git", - "url": "https://github.com/laravel/serializable-closure.git", - "reference": "f865a58ea3a0107c336b7045104c75243fa59d96" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/f865a58ea3a0107c336b7045104c75243fa59d96", - "reference": "f865a58ea3a0107c336b7045104c75243fa59d96", - "shasum": "" - }, - "require": { - "php": "^7.3|^8.0" - }, - "require-dev": { - "illuminate/support": "^8.0|^9.0|^10.0|^11.0", - "nesbot/carbon": "^2.61|^3.0", - "pestphp/pest": "^1.21.3", - "phpstan/phpstan": "^1.8.2", - "symfony/var-dumper": "^5.4.11|^6.2.0|^7.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Laravel\\SerializableClosure\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - }, - { - "name": "Nuno Maduro", - "email": "nuno@laravel.com" - } - ], - "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", - "keywords": [ - "closure", - "laravel", - "serializable" - ], - "support": { - "issues": "https://github.com/laravel/serializable-closure/issues", - "source": "https://github.com/laravel/serializable-closure" - }, - "time": "2024-11-11T17:06:04+00:00" - }, - { - "name": "lion/command", - "version": "v3.3.0", - "source": { - "type": "git", - "url": "https://github.com/lion-packages/command.git", - "reference": "ded924301e62dc33e8b5b69d9e4eb8d2cb5fd939" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/lion-packages/command/zipball/ded924301e62dc33e8b5b69d9e4eb8d2cb5fd939", - "reference": "ded924301e62dc33e8b5b69d9e4eb8d2cb5fd939", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/console": "^6.3" - }, - "require-dev": { - "lion/test": "^1.4", - "phpunit/phpunit": "^10.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Lion\\Command\\": "src/LionCommand/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "library created with the function of executing commands from PHP.", - "support": { - "issues": "https://github.com/lion-packages/command/issues", - "source": "https://github.com/lion-packages/command/tree/v3.3.0" - }, - "time": "2024-03-13T23:28:18+00:00" - }, - { - "name": "lion/database", - "version": "v10.4.0", - "source": { - "type": "git", - "url": "https://github.com/lion-packages/database.git", - "reference": "6aa3c43cbb18f1082349be339aeb4fe2d5f90d60" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/lion-packages/database/zipball/6aa3c43cbb18f1082349be339aeb4fe2d5f90d60", - "reference": "6aa3c43cbb18f1082349be339aeb4fe2d5f90d60", - "shasum": "" - }, - "require": { - "ext-pdo": "*", - "php": ">=8.3" - }, - "require-dev": { - "fakerphp/faker": "^1.23", - "lion/test": "^2.0", - "phpunit/phpunit": "^11.1", - "robiningelbrecht/phpunit-pretty-print": "^1.3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Lion\\Database\\": "src/LionDatabase/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Package in charge of the generation and execution of processes with databases", - "support": { - "issues": "https://github.com/lion-packages/database/issues", - "source": "https://github.com/lion-packages/database" - }, - "time": "2024-11-22T15:50:11+00:00" - }, - { - "name": "lion/dependency-injection", - "version": "v3.0.0", - "source": { - "type": "git", - "url": "https://github.com/lion-packages/dependency-injection.git", - "reference": "a041fab1956ff4fc499b25168b82b25f37dbbaba" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/lion-packages/dependency-injection/zipball/a041fab1956ff4fc499b25168b82b25f37dbbaba", - "reference": "a041fab1956ff4fc499b25168b82b25f37dbbaba", - "shasum": "" - }, - "require": { - "php": ">=8.3", - "php-di/php-di": "^7.0" - }, - "require-dev": { - "lion/test": "^2.1", - "phpunit/phpunit": "^11.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Lion\\Dependency\\Injection\\": "src/DependencyInjection/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Container for dependency injection with DI-PHP", - "support": { - "issues": "https://github.com/lion-packages/dependency-injection/issues", - "source": "https://github.com/lion-packages/dependency-injection/tree/v3.0.0" - }, - "time": "2024-11-16T16:29:01+00:00" - }, - { - "name": "lion/exceptions", - "version": "v1.3.0", - "source": { - "type": "git", - "url": "https://github.com/lion-packages/exceptions.git", - "reference": "1ed281a8d7b0075b8fd60f6b8f9592f24ef50760" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/lion-packages/exceptions/zipball/1ed281a8d7b0075b8fd60f6b8f9592f24ef50760", - "reference": "1ed281a8d7b0075b8fd60f6b8f9592f24ef50760", - "shasum": "" - }, - "require": { - "php": ">=8.3" - }, - "require-dev": { - "guzzlehttp/guzzle": "^7.8", - "lion/test": "^2.0", - "phpunit/phpunit": "^11.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Lion\\Exceptions\\": "src/LionExceptions/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Handling exceptions and serializations", - "support": { - "issues": "https://github.com/lion-packages/exceptions/issues", - "source": "https://github.com/lion-packages/exceptions/tree/v1.3.0" - }, - "time": "2024-10-22T19:52:19+00:00" - }, - { - "name": "lion/files", - "version": "v7.1.0", - "source": { - "type": "git", - "url": "https://github.com/lion-packages/files.git", - "reference": "9f8ba435ac85dc1872ca51f8704285a3d00f7b4f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/lion-packages/files/zipball/9f8ba435ac85dc1872ca51f8704285a3d00f7b4f", - "reference": "9f8ba435ac85dc1872ca51f8704285a3d00f7b4f", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=8.3" - }, - "require-dev": { - "lion/test": "^2.1", - "phpunit/phpunit": "^11.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Lion\\Files\\": "src/LionFiles/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Library created with the function of working internal system files", - "support": { - "issues": "https://github.com/lion-packages/files/issues", - "source": "https://github.com/lion-packages/files/tree/v7.1.0" - }, - "time": "2024-11-18T21:29:03+00:00" - }, - { - "name": "lion/helpers", - "version": "v4.0.0", - "source": { - "type": "git", - "url": "https://github.com/lion-packages/helpers.git", - "reference": "54c5c5ec8ccd021193ca60c746e97cc0ef994f2d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/lion-packages/helpers/zipball/54c5c5ec8ccd021193ca60c746e97cc0ef994f2d", - "reference": "54c5c5ec8ccd021193ca60c746e97cc0ef994f2d", - "shasum": "" - }, - "require": { - "php": ">=8.3" - }, - "require-dev": { - "lion/test": "^2.0", - "phpunit/phpunit": "^11.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Lion\\Helpers\\": "src/LionHelpers/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Easy to use helpers for any type of use", - "support": { - "issues": "https://github.com/lion-packages/helpers/issues", - "source": "https://github.com/lion-packages/helpers/tree/v4.0.0" - }, - "time": "2024-06-29T18:27:23+00:00" - }, - { - "name": "lion/request", - "version": "v6.9.0", - "source": { - "type": "git", - "url": "https://github.com/lion-packages/request.git", - "reference": "0f493ffd803c2b840c906a1ca5138b0e0c048741" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/lion-packages/request/zipball/0f493ffd803c2b840c906a1ca5138b0e0c048741", - "reference": "0f493ffd803c2b840c906a1ca5138b0e0c048741", - "shasum": "" - }, - "require": { - "php": ">=8.3" - }, - "require-dev": { - "lion/test": "^2.0", - "phpunit/phpunit": "^11.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "Lion\\Request\\": "src/LionRequest/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Library created to request input data and response requests", - "support": { - "issues": "https://github.com/lion-packages/request/issues", - "source": "https://github.com/lion-packages/request/tree/v6.9.0" - }, - "time": "2024-06-29T17:49:37+00:00" - }, - { - "name": "lion/route", - "version": "v11.5.0", - "source": { - "type": "git", - "url": "https://github.com/lion-packages/route.git", - "reference": "bd58a08d2fc25720b6ec9e04f0a5719749c4f3d5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/lion-packages/route/zipball/bd58a08d2fc25720b6ec9e04f0a5719749c4f3d5", - "reference": "bd58a08d2fc25720b6ec9e04f0a5719749c4f3d5", - "shasum": "" - }, - "require": { - "php": ">=8.3", - "phroute/phroute": "^2.2" - }, - "require-dev": { - "guzzlehttp/guzzle": "^7.8", - "lion/dependency-injection": "^3.0", - "lion/exceptions": "^1.2", - "lion/request": "^6.9", - "lion/security": "^9.1", - "lion/test": "^2.0", - "phpunit/phpunit": "^11.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "Lion\\Route\\": "src/LionRoute/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "This library has quick router usage with regular expressions.", - "support": { - "issues": "https://github.com/lion-packages/route/issues", - "source": "https://github.com/lion-packages/route/tree/v11.5.0" - }, - "time": "2024-11-19T12:47:11+00:00" - }, - { - "name": "lion/security", - "version": "v10.0.0", - "source": { - "type": "git", - "url": "https://github.com/lion-packages/security.git", - "reference": "2833501a51f1b7eb72a8ce64deaaf3cfab7f9a54" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/lion-packages/security/zipball/2833501a51f1b7eb72a8ce64deaaf3cfab7f9a54", - "reference": "2833501a51f1b7eb72a8ce64deaaf3cfab7f9a54", - "shasum": "" - }, - "require": { - "firebase/php-jwt": "^6.1", - "php": ">=8.3", - "vlucas/valitron": "^1.4" - }, - "require-dev": { - "guzzlehttp/guzzle": "^7.8", - "lion/test": "^2.0", - "phpunit/phpunit": "^11.1", - "robiningelbrecht/phpunit-pretty-print": "^1.3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Lion\\Security\\": "src/LionSecurity/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Library created with the function of implementing AES, RSA and JWT Security functions for PHP.", - "support": { - "issues": "https://github.com/lion-packages/security/issues", - "source": "https://github.com/lion-packages/security/tree/v10.0.0" - }, - "time": "2024-10-31T13:19:58+00:00" - }, - { - "name": "monolog/monolog", - "version": "3.7.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f4393b648b78a5408747de94fca38beb5f7e9ef8", - "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^2.0 || ^3.0" - }, - "provide": { - "psr/log-implementation": "3.0.0" - }, - "require-dev": { - "aws/aws-sdk-php": "^3.0", - "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^7 || ^8", - "ext-json": "*", - "graylog2/gelf-php": "^1.4.2 || ^2.0", - "guzzlehttp/guzzle": "^7.4.5", - "guzzlehttp/psr7": "^2.2", - "mongodb/mongodb": "^1.8", - "php-amqplib/php-amqplib": "~2.4 || ^3", - "phpstan/phpstan": "^1.9", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-strict-rules": "^1.4", - "phpunit/phpunit": "^10.5.17", - "predis/predis": "^1.1 || ^2", - "ruflin/elastica": "^7", - "symfony/mailer": "^5.4 || ^6", - "symfony/mime": "^5.4 || ^6" - }, - "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", - "ext-mbstring": "Allow to work properly with unicode symbols", - "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", - "ext-openssl": "Required to send log messages using SSL", - "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Monolog\\": "src/Monolog" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" - } - ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "https://github.com/Seldaek/monolog", - "keywords": [ - "log", - "logging", - "psr-3" - ], - "support": { - "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.7.0" - }, - "funding": [ - { - "url": "https://github.com/Seldaek", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", - "type": "tidelift" - } - ], - "time": "2024-06-28T09:40:51+00:00" - }, - { - "name": "nesbot/carbon", - "version": "2.72.5", - "source": { - "type": "git", - "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed", - "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed", - "shasum": "" - }, - "require": { - "carbonphp/carbon-doctrine-types": "*", - "ext-json": "*", - "php": "^7.1.8 || ^8.0", - "psr/clock": "^1.0", - "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" - }, - "provide": { - "psr/clock-implementation": "1.0" - }, - "require-dev": { - "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0", - "doctrine/orm": "^2.7 || ^3.0", - "friendsofphp/php-cs-fixer": "^3.0", - "kylekatarnls/multi-tester": "^2.0", - "ondrejmirtes/better-reflection": "*", - "phpmd/phpmd": "^2.9", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.99 || ^1.7.14", - "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", - "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", - "squizlabs/php_codesniffer": "^3.4" - }, - "bin": [ - "bin/carbon" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev", - "dev-2.x": "2.x-dev" - }, - "laravel": { - "providers": [ - "Carbon\\Laravel\\ServiceProvider" - ] - }, - "phpstan": { - "includes": [ - "extension.neon" - ] - } - }, - "autoload": { - "psr-4": { - "Carbon\\": "src/Carbon/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Brian Nesbitt", - "email": "brian@nesbot.com", - "homepage": "https://markido.com" - }, - { - "name": "kylekatarnls", - "homepage": "https://github.com/kylekatarnls" - } - ], - "description": "An API extension for DateTime that supports 281 different languages.", - "homepage": "https://carbon.nesbot.com", - "keywords": [ - "date", - "datetime", - "time" - ], - "support": { - "docs": "https://carbon.nesbot.com/docs", - "issues": "https://github.com/briannesbitt/Carbon/issues", - "source": "https://github.com/briannesbitt/Carbon" - }, - "funding": [ - { - "url": "https://github.com/sponsors/kylekatarnls", - "type": "github" - }, - { - "url": "https://opencollective.com/Carbon#sponsor", - "type": "opencollective" - }, - { - "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", - "type": "tidelift" - } - ], - "time": "2024-06-03T19:18:41+00:00" - }, - { - "name": "php-di/invoker", - "version": "2.3.4", - "source": { - "type": "git", - "url": "https://github.com/PHP-DI/Invoker.git", - "reference": "33234b32dafa8eb69202f950a1fc92055ed76a86" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHP-DI/Invoker/zipball/33234b32dafa8eb69202f950a1fc92055ed76a86", - "reference": "33234b32dafa8eb69202f950a1fc92055ed76a86", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "psr/container": "^1.0|^2.0" - }, - "require-dev": { - "athletic/athletic": "~0.1.8", - "mnapoli/hard-mode": "~0.3.0", - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Invoker\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Generic and extensible callable invoker", - "homepage": "https://github.com/PHP-DI/Invoker", - "keywords": [ - "callable", - "dependency", - "dependency-injection", - "injection", - "invoke", - "invoker" - ], - "support": { - "issues": "https://github.com/PHP-DI/Invoker/issues", - "source": "https://github.com/PHP-DI/Invoker/tree/2.3.4" - }, - "funding": [ - { - "url": "https://github.com/mnapoli", - "type": "github" - } - ], - "time": "2023-09-08T09:24:21+00:00" - }, - { - "name": "php-di/php-di", - "version": "7.0.7", - "source": { - "type": "git", - "url": "https://github.com/PHP-DI/PHP-DI.git", - "reference": "e87435e3c0e8f22977adc5af0d5cdcc467e15cf1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/e87435e3c0e8f22977adc5af0d5cdcc467e15cf1", - "reference": "e87435e3c0e8f22977adc5af0d5cdcc467e15cf1", - "shasum": "" - }, - "require": { - "laravel/serializable-closure": "^1.0", - "php": ">=8.0", - "php-di/invoker": "^2.0", - "psr/container": "^1.1 || ^2.0" - }, - "provide": { - "psr/container-implementation": "^1.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3", - "friendsofphp/proxy-manager-lts": "^1", - "mnapoli/phpunit-easymock": "^1.3", - "phpunit/phpunit": "^9.5", - "vimeo/psalm": "^4.6" - }, - "suggest": { - "friendsofphp/proxy-manager-lts": "Install it if you want to use lazy injection (version ^1)" - }, - "type": "library", - "autoload": { - "files": [ - "src/functions.php" - ], - "psr-4": { - "DI\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "The dependency injection container for humans", - "homepage": "https://php-di.org/", - "keywords": [ - "PSR-11", - "container", - "container-interop", - "dependency injection", - "di", - "ioc", - "psr11" - ], - "support": { - "issues": "https://github.com/PHP-DI/PHP-DI/issues", - "source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.7" - }, - "funding": [ - { - "url": "https://github.com/mnapoli", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/php-di/php-di", - "type": "tidelift" - } - ], - "time": "2024-07-21T15:55:45+00:00" - }, - { - "name": "phpoption/phpoption", - "version": "1.9.3", - "source": { - "type": "git", - "url": "https://github.com/schmittjoh/php-option.git", - "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54", - "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54", - "shasum": "" - }, - "require": { - "php": "^7.2.5 || ^8.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" - }, - "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - }, - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "autoload": { - "psr-4": { - "PhpOption\\": "src/PhpOption/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh" - }, - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - } - ], - "description": "Option Type for PHP", - "keywords": [ - "language", - "option", - "php", - "type" - ], - "support": { - "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.3" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", - "type": "tidelift" - } - ], - "time": "2024-07-20T21:41:07+00:00" - }, - { - "name": "phroute/phroute", - "version": "v2.2.0", - "source": { - "type": "git", - "url": "https://github.com/mrjgreen/phroute.git", - "reference": "c1893b885966a0c7b50b9239dd867fda7a312dfa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mrjgreen/phroute/zipball/c1893b885966a0c7b50b9239dd867fda7a312dfa", - "reference": "c1893b885966a0c7b50b9239dd867fda7a312dfa", - "shasum": "" - }, - "require": { - "php": ">=5.4.0" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.5", - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Phroute\\Phroute\\": "src/Phroute" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Joe Green", - "email": "joe.green.0991@gmail.com" - } - ], - "description": "Fast, fully featured restful request router for PHP", - "keywords": [ - "router", - "routing" - ], - "support": { - "issues": "https://github.com/mrjgreen/phroute/issues", - "source": "https://github.com/mrjgreen/phroute/tree/v2.2.0" - }, - "time": "2022-05-04T16:22:33+00:00" - }, - { - "name": "predis/predis", - "version": "v2.2.2", - "source": { - "type": "git", - "url": "https://github.com/predis/predis.git", - "reference": "b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1", - "reference": "b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3.3", - "phpstan/phpstan": "^1.9", - "phpunit/phpunit": "^8.0 || ~9.4.4" - }, - "suggest": { - "ext-relay": "Faster connection with in-memory caching (>=0.6.2)" - }, - "type": "library", - "autoload": { - "psr-4": { - "Predis\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Till Krüss", - "homepage": "https://till.im", - "role": "Maintainer" - } - ], - "description": "A flexible and feature-complete Redis client for PHP.", - "homepage": "http://github.com/predis/predis", - "keywords": [ - "nosql", - "predis", - "redis" - ], - "support": { - "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v2.2.2" - }, - "funding": [ - { - "url": "https://github.com/sponsors/tillkruss", - "type": "github" - } - ], - "time": "2023-09-13T16:42:03+00:00" - }, - { - "name": "psr/clock", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/clock.git", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Psr\\Clock\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for reading the clock.", - "homepage": "https://github.com/php-fig/clock", - "keywords": [ - "clock", - "now", - "psr", - "psr-20", - "time" - ], - "support": { - "issues": "https://github.com/php-fig/clock/issues", - "source": "https://github.com/php-fig/clock/tree/1.0.0" - }, - "time": "2022-11-25T14:36:26+00:00" - }, - { - "name": "psr/container", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" - }, - "time": "2021-11-05T16:47:00+00:00" - }, - { - "name": "psr/http-client", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-client.git", - "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", - "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0 || ^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Client\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP clients", - "homepage": "https://github.com/php-fig/http-client", - "keywords": [ - "http", - "http-client", - "psr", - "psr-18" - ], - "support": { - "source": "https://github.com/php-fig/http-client" - }, - "time": "2023-09-23T14:17:50+00:00" - }, - { - "name": "psr/http-factory", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-factory.git", - "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", - "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "psr/http-message": "^1.0 || ^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", - "keywords": [ - "factory", - "http", - "message", - "psr", - "psr-17", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-factory" - }, - "time": "2024-04-15T12:06:14+00:00" - }, - { - "name": "psr/http-message", - "version": "2.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-message/tree/2.0" - }, - "time": "2023-04-04T09:54:51+00:00" - }, - { - "name": "psr/log", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" - }, - "time": "2021-07-14T16:46:02+00:00" - }, - { - "name": "ralouphie/getallheaders", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" - }, - "type": "library", - "autoload": { - "files": [ - "src/getallheaders.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" - } - ], - "description": "A polyfill for getallheaders.", - "support": { - "issues": "https://github.com/ralouphie/getallheaders/issues", - "source": "https://github.com/ralouphie/getallheaders/tree/develop" - }, - "time": "2019-03-08T08:55:37+00:00" - }, - { - "name": "ratchet/rfc6455", - "version": "v0.3.1", - "source": { - "type": "git", - "url": "https://github.com/ratchetphp/RFC6455.git", - "reference": "7c964514e93456a52a99a20fcfa0de242a43ccdb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ratchetphp/RFC6455/zipball/7c964514e93456a52a99a20fcfa0de242a43ccdb", - "reference": "7c964514e93456a52a99a20fcfa0de242a43ccdb", - "shasum": "" - }, - "require": { - "guzzlehttp/psr7": "^2 || ^1.7", - "php": ">=5.4.2" - }, - "require-dev": { - "phpunit/phpunit": "^5.7", - "react/socket": "^1.3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Ratchet\\RFC6455\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Boden", - "email": "cboden@gmail.com", - "role": "Developer" - }, - { - "name": "Matt Bonneau", - "role": "Developer" - } - ], - "description": "RFC6455 WebSocket protocol handler", - "homepage": "http://socketo.me", - "keywords": [ - "WebSockets", - "rfc6455", - "websocket" - ], - "support": { - "chat": "https://gitter.im/reactphp/reactphp", - "issues": "https://github.com/ratchetphp/RFC6455/issues", - "source": "https://github.com/ratchetphp/RFC6455/tree/v0.3.1" - }, - "time": "2021-12-09T23:20:49+00:00" - }, - { - "name": "react/cache", - "version": "v1.2.0", - "source": { - "type": "git", - "url": "https://github.com/reactphp/cache.git", - "reference": "d47c472b64aa5608225f47965a484b75c7817d5b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/reactphp/cache/zipball/d47c472b64aa5608225f47965a484b75c7817d5b", - "reference": "d47c472b64aa5608225f47965a484b75c7817d5b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "react/promise": "^3.0 || ^2.0 || ^1.1" - }, - "require-dev": { - "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35" - }, - "type": "library", - "autoload": { - "psr-4": { - "React\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Christian Lück", - "email": "christian@clue.engineering", - "homepage": "https://clue.engineering/" - }, - { - "name": "Cees-Jan Kiewiet", - "email": "reactphp@ceesjankiewiet.nl", - "homepage": "https://wyrihaximus.net/" - }, - { - "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com", - "homepage": "https://sorgalla.com/" - }, - { - "name": "Chris Boden", - "email": "cboden@gmail.com", - "homepage": "https://cboden.dev/" - } - ], - "description": "Async, Promise-based cache interface for ReactPHP", - "keywords": [ - "cache", - "caching", - "promise", - "reactphp" - ], - "support": { - "issues": "https://github.com/reactphp/cache/issues", - "source": "https://github.com/reactphp/cache/tree/v1.2.0" - }, - "funding": [ - { - "url": "https://opencollective.com/reactphp", - "type": "open_collective" - } - ], - "time": "2022-11-30T15:59:55+00:00" - }, - { - "name": "react/dns", - "version": "v1.13.0", - "source": { - "type": "git", - "url": "https://github.com/reactphp/dns.git", - "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/reactphp/dns/zipball/eb8ae001b5a455665c89c1df97f6fb682f8fb0f5", - "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "react/cache": "^1.0 || ^0.6 || ^0.5", - "react/event-loop": "^1.2", - "react/promise": "^3.2 || ^2.7 || ^1.2.1" - }, - "require-dev": { - "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", - "react/async": "^4.3 || ^3 || ^2", - "react/promise-timer": "^1.11" - }, - "type": "library", - "autoload": { - "psr-4": { - "React\\Dns\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Christian Lück", - "email": "christian@clue.engineering", - "homepage": "https://clue.engineering/" - }, - { - "name": "Cees-Jan Kiewiet", - "email": "reactphp@ceesjankiewiet.nl", - "homepage": "https://wyrihaximus.net/" - }, - { - "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com", - "homepage": "https://sorgalla.com/" - }, - { - "name": "Chris Boden", - "email": "cboden@gmail.com", - "homepage": "https://cboden.dev/" - } - ], - "description": "Async DNS resolver for ReactPHP", - "keywords": [ - "async", - "dns", - "dns-resolver", - "reactphp" - ], - "support": { - "issues": "https://github.com/reactphp/dns/issues", - "source": "https://github.com/reactphp/dns/tree/v1.13.0" - }, - "funding": [ - { - "url": "https://opencollective.com/reactphp", - "type": "open_collective" - } - ], - "time": "2024-06-13T14:18:03+00:00" - }, - { - "name": "react/event-loop", - "version": "v1.5.0", - "source": { - "type": "git", - "url": "https://github.com/reactphp/event-loop.git", - "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354", - "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" - }, - "suggest": { - "ext-pcntl": "For signal handling support when using the StreamSelectLoop" - }, - "type": "library", - "autoload": { - "psr-4": { - "React\\EventLoop\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Christian Lück", - "email": "christian@clue.engineering", - "homepage": "https://clue.engineering/" - }, - { - "name": "Cees-Jan Kiewiet", - "email": "reactphp@ceesjankiewiet.nl", - "homepage": "https://wyrihaximus.net/" - }, - { - "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com", - "homepage": "https://sorgalla.com/" - }, - { - "name": "Chris Boden", - "email": "cboden@gmail.com", - "homepage": "https://cboden.dev/" - } - ], - "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.", - "keywords": [ - "asynchronous", - "event-loop" - ], - "support": { - "issues": "https://github.com/reactphp/event-loop/issues", - "source": "https://github.com/reactphp/event-loop/tree/v1.5.0" - }, - "funding": [ - { - "url": "https://opencollective.com/reactphp", - "type": "open_collective" - } - ], - "time": "2023-11-13T13:48:05+00:00" - }, - { - "name": "react/promise", - "version": "v3.2.0", - "source": { - "type": "git", - "url": "https://github.com/reactphp/promise.git", - "reference": "8a164643313c71354582dc850b42b33fa12a4b63" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63", - "reference": "8a164643313c71354582dc850b42b33fa12a4b63", - "shasum": "" - }, - "require": { - "php": ">=7.1.0" - }, - "require-dev": { - "phpstan/phpstan": "1.10.39 || 1.4.10", - "phpunit/phpunit": "^9.6 || ^7.5" - }, - "type": "library", - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "React\\Promise\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com", - "homepage": "https://sorgalla.com/" - }, - { - "name": "Christian Lück", - "email": "christian@clue.engineering", - "homepage": "https://clue.engineering/" - }, - { - "name": "Cees-Jan Kiewiet", - "email": "reactphp@ceesjankiewiet.nl", - "homepage": "https://wyrihaximus.net/" - }, - { - "name": "Chris Boden", - "email": "cboden@gmail.com", - "homepage": "https://cboden.dev/" - } - ], - "description": "A lightweight implementation of CommonJS Promises/A for PHP", - "keywords": [ - "promise", - "promises" - ], - "support": { - "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v3.2.0" - }, - "funding": [ - { - "url": "https://opencollective.com/reactphp", - "type": "open_collective" - } - ], - "time": "2024-05-24T10:39:05+00:00" - }, - { - "name": "react/socket", - "version": "v1.15.0", - "source": { - "type": "git", - "url": "https://github.com/reactphp/socket.git", - "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/reactphp/socket/zipball/216d3aec0b87f04a40ca04f481e6af01bdd1d038", - "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038", - "shasum": "" - }, - "require": { - "evenement/evenement": "^3.0 || ^2.0 || ^1.0", - "php": ">=5.3.0", - "react/dns": "^1.11", - "react/event-loop": "^1.2", - "react/promise": "^3 || ^2.6 || ^1.2.1", - "react/stream": "^1.2" - }, - "require-dev": { - "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", - "react/async": "^4 || ^3 || ^2", - "react/promise-stream": "^1.4", - "react/promise-timer": "^1.10" - }, - "type": "library", - "autoload": { - "psr-4": { - "React\\Socket\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Christian Lück", - "email": "christian@clue.engineering", - "homepage": "https://clue.engineering/" - }, - { - "name": "Cees-Jan Kiewiet", - "email": "reactphp@ceesjankiewiet.nl", - "homepage": "https://wyrihaximus.net/" - }, - { - "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com", - "homepage": "https://sorgalla.com/" - }, - { - "name": "Chris Boden", - "email": "cboden@gmail.com", - "homepage": "https://cboden.dev/" - } - ], - "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP", - "keywords": [ - "Connection", - "Socket", - "async", - "reactphp", - "stream" - ], - "support": { - "issues": "https://github.com/reactphp/socket/issues", - "source": "https://github.com/reactphp/socket/tree/v1.15.0" - }, - "funding": [ - { - "url": "https://opencollective.com/reactphp", - "type": "open_collective" - } - ], - "time": "2023-12-15T11:02:10+00:00" - }, - { - "name": "react/stream", - "version": "v1.4.0", - "source": { - "type": "git", - "url": "https://github.com/reactphp/stream.git", - "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d", - "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d", - "shasum": "" - }, - "require": { - "evenement/evenement": "^3.0 || ^2.0 || ^1.0", - "php": ">=5.3.8", - "react/event-loop": "^1.2" - }, - "require-dev": { - "clue/stream-filter": "~1.2", - "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" - }, - "type": "library", - "autoload": { - "psr-4": { - "React\\Stream\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Christian Lück", - "email": "christian@clue.engineering", - "homepage": "https://clue.engineering/" - }, - { - "name": "Cees-Jan Kiewiet", - "email": "reactphp@ceesjankiewiet.nl", - "homepage": "https://wyrihaximus.net/" - }, - { - "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com", - "homepage": "https://sorgalla.com/" - }, - { - "name": "Chris Boden", - "email": "cboden@gmail.com", - "homepage": "https://cboden.dev/" - } - ], - "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP", - "keywords": [ - "event-driven", - "io", - "non-blocking", - "pipe", - "reactphp", - "readable", - "stream", - "writable" - ], - "support": { - "issues": "https://github.com/reactphp/stream/issues", - "source": "https://github.com/reactphp/stream/tree/v1.4.0" - }, - "funding": [ - { - "url": "https://opencollective.com/reactphp", - "type": "open_collective" - } - ], - "time": "2024-06-11T12:45:25+00:00" - }, - { - "name": "symfony/console", - "version": "v6.4.9", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "6edb5363ec0c78ad4d48c5128ebf4d083d89d3a9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/6edb5363ec0c78ad4d48c5128ebf4d083d89d3a9", - "reference": "6edb5363ec0c78ad4d48c5128ebf4d083d89d3a9", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0|^7.0" - }, - "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command-line", - "console", - "terminal" - ], - "support": { - "source": "https://github.com/symfony/console/tree/v6.4.9" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-06-28T09:49:33+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v3.5.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-04-18T09:32:20+00:00" - }, - { - "name": "symfony/http-foundation", - "version": "v6.4.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "27de8cc95e11db7a50b027e71caaab9024545947" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/27de8cc95e11db7a50b027e71caaab9024545947", - "reference": "27de8cc95e11db7a50b027e71caaab9024545947", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php83": "^1.27" - }, - "conflict": { - "symfony/cache": "<6.3" - }, - "require-dev": { - "doctrine/dbal": "^2.13.1|^3|^4", - "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.3|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", - "symfony/mime": "^5.4|^6.0|^7.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpFoundation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Defines an object-oriented layer for the HTTP specification", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-05-31T14:49:08+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.30.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "0424dff1c58f028c451efff2045f5d92410bd540" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", - "reference": "0424dff1c58f028c451efff2045f5d92410bd540", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-05-31T15:07:36+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.30.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a", - "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-05-31T15:07:36+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.30.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb", - "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-05-31T15:07:36+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.30.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", - "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-06-19T12:30:46+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.30.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-05-31T15:07:36+00:00" - }, - { - "name": "symfony/polyfill-php83", - "version": "v1.30.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", - "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php83\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.30.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-06-19T12:35:24+00:00" - }, - { - "name": "symfony/process", - "version": "v7.1.7", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "9b8a40b7289767aa7117e957573c2a535efe6585" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/9b8a40b7289767aa7117e957573c2a535efe6585", - "reference": "9b8a40b7289767aa7117e957573c2a535efe6585", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v7.1.7" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-11-06T09:25:12+00:00" - }, - { - "name": "symfony/routing", - "version": "v6.4.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", - "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "doctrine/annotations": "<1.12", - "symfony/config": "<6.2", - "symfony/dependency-injection": "<5.4", - "symfony/yaml": "<5.4" - }, - "require-dev": { - "doctrine/annotations": "^1.12|^2", - "psr/log": "^1|^2|^3", - "symfony/config": "^6.2|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Routing\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Maps an HTTP request to a set of configuration variables", - "homepage": "https://symfony.com", - "keywords": [ - "router", - "routing", - "uri", - "url" - ], - "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-05-31T14:49:08+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v3.5.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-04-18T09:32:20+00:00" - }, - { - "name": "symfony/string", - "version": "v7.1.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/14221089ac66cf82e3cf3d1c1da65de305587ff8", - "reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.5" - }, - "require-dev": { - "symfony/emoji": "^7.1", - "symfony/error-handler": "^6.4|^7.0", - "symfony/http-client": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", - "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v7.1.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-06-28T09:27:18+00:00" - }, - { - "name": "symfony/translation", - "version": "v6.4.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/a002933b13989fc4bd0b58e04bf7eec5210e438a", - "reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^2.5|^3.0" - }, - "conflict": { - "symfony/config": "<5.4", - "symfony/console": "<5.4", - "symfony/dependency-injection": "<5.4", - "symfony/http-client-contracts": "<2.5", - "symfony/http-kernel": "<5.4", - "symfony/service-contracts": "<2.5", - "symfony/twig-bundle": "<5.4", - "symfony/yaml": "<5.4" - }, - "provide": { - "symfony/translation-implementation": "2.3|3.0" - }, - "require-dev": { - "nikic/php-parser": "^4.18|^5.0", - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/http-client-contracts": "^2.5|^3.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/intl": "^5.4|^6.0|^7.0", - "symfony/polyfill-intl-icu": "^1.21", - "symfony/routing": "^5.4|^6.0|^7.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools to internationalize your application", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-05-31T14:49:08+00:00" - }, - { - "name": "symfony/translation-contracts", - "version": "v3.5.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation-contracts.git", - "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", - "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to translation", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-04-18T09:32:20+00:00" - }, - { - "name": "vlucas/phpdotenv", - "version": "v5.6.1", - "source": { - "type": "git", - "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2", - "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2", - "shasum": "" - }, - "require": { - "ext-pcre": "*", - "graham-campbell/result-type": "^1.1.3", - "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.3", - "symfony/polyfill-ctype": "^1.24", - "symfony/polyfill-mbstring": "^1.24", - "symfony/polyfill-php80": "^1.24" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "ext-filter": "*", - "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" - }, - "suggest": { - "ext-filter": "Required to use the boolean validator." - }, - "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - }, - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "autoload": { - "psr-4": { - "Dotenv\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Vance Lucas", - "email": "vance@vancelucas.com", - "homepage": "https://github.com/vlucas" - } - ], - "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", - "keywords": [ - "dotenv", - "env", - "environment" - ], - "support": { - "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", - "type": "tidelift" - } - ], - "time": "2024-07-20T21:52:34+00:00" - }, - { - "name": "vlucas/valitron", - "version": "v1.4.11", - "source": { - "type": "git", - "url": "https://github.com/vlucas/valitron.git", - "reference": "fadce39f5f235755bb9794b2573af2d5bfcba85f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/vlucas/valitron/zipball/fadce39f5f235755bb9794b2573af2d5bfcba85f", - "reference": "fadce39f5f235755bb9794b2573af2d5bfcba85f", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": ">=4.8.35" - }, - "suggest": { - "ext-mbstring": "It can support the multiple bytes string length." - }, - "type": "library", - "autoload": { - "psr-4": { - "Valitron\\": "src/Valitron" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Vance Lucas", - "email": "vance@vancelucas.com", - "homepage": "https://www.vancelucas.com" - } - ], - "description": "Simple, elegant, stand-alone validation library with NO dependencies", - "homepage": "https://github.com/vlucas/valitron", - "keywords": [ - "valid", - "validation", - "validator" - ], - "support": { - "issues": "https://github.com/vlucas/valitron/issues", - "source": "https://github.com/vlucas/valitron/tree/v1.4.11" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/vlucas/valitron", - "type": "tidelift" - } - ], - "time": "2022-10-14T11:54:24+00:00" - } - ], - "packages-dev": [ - { - "name": "filp/whoops", - "version": "2.15.4", - "source": { - "type": "git", - "url": "https://github.com/filp/whoops.git", - "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546", - "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546", - "shasum": "" - }, - "require": { - "php": "^5.5.9 || ^7.0 || ^8.0", - "psr/log": "^1.0.1 || ^2.0 || ^3.0" - }, - "require-dev": { - "mockery/mockery": "^0.9 || ^1.0", - "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", - "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" - }, - "suggest": { - "symfony/var-dumper": "Pretty print complex values better with var-dumper available", - "whoops/soap": "Formats errors as SOAP responses" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7-dev" - } - }, - "autoload": { - "psr-4": { - "Whoops\\": "src/Whoops/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Filipe Dobreira", - "homepage": "https://github.com/filp", - "role": "Developer" - } - ], - "description": "php error handling for cool kids", - "homepage": "https://filp.github.io/whoops/", - "keywords": [ - "error", - "exception", - "handling", - "library", - "throwable", - "whoops" - ], - "support": { - "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.15.4" - }, - "funding": [ - { - "url": "https://github.com/denis-sokolov", - "type": "github" - } - ], - "time": "2023-11-03T12:00:00+00:00" - }, - { - "name": "lion/test", - "version": "v2.1.0", - "source": { - "type": "git", - "url": "https://github.com/lion-packages/test.git", - "reference": "df16f7f0fbfd2561564d2bff91d62e2549c4c595" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/lion-packages/test/zipball/df16f7f0fbfd2561564d2bff91d62e2549c4c595", - "reference": "df16f7f0fbfd2561564d2bff91d62e2549c4c595", - "shasum": "" - }, - "require": { - "php": ">=8.3" - }, - "require-dev": { - "lion/exceptions": "^1.0", - "phpunit/phpunit": "^11.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "Lion\\Test\\": "src/LionTest/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "library to implement testing with helpers that allow easy testing with PHPUnit", - "support": { - "issues": "https://github.com/lion-packages/test/issues", - "source": "https://github.com/lion-packages/test/tree/v2.1.0" - }, - "time": "2024-11-03T14:07:03+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.12.0", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3 <3.2.2" - }, - "require-dev": { - "doctrine/collections": "^1.6.8", - "doctrine/common": "^2.13.3 || ^3.2.2", - "phpspec/prophecy": "^1.10", - "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" - }, - "type": "library", - "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "time": "2024-06-12T14:39:25+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v5.3.1", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8eea230464783aa9671db8eea6f8c6ac5285794b", - "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-json": "*", - "ext-tokenizer": "*", - "php": ">=7.4" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.3.1" - }, - "time": "2024-10-08T18:51:32+00:00" - }, - { - "name": "nunomaduro/collision", - "version": "v7.10.0", - "source": { - "type": "git", - "url": "https://github.com/nunomaduro/collision.git", - "reference": "49ec67fa7b002712da8526678abd651c09f375b2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/49ec67fa7b002712da8526678abd651c09f375b2", - "reference": "49ec67fa7b002712da8526678abd651c09f375b2", - "shasum": "" - }, - "require": { - "filp/whoops": "^2.15.3", - "nunomaduro/termwind": "^1.15.1", - "php": "^8.1.0", - "symfony/console": "^6.3.4" - }, - "conflict": { - "laravel/framework": ">=11.0.0" - }, - "require-dev": { - "brianium/paratest": "^7.3.0", - "laravel/framework": "^10.28.0", - "laravel/pint": "^1.13.3", - "laravel/sail": "^1.25.0", - "laravel/sanctum": "^3.3.1", - "laravel/tinker": "^2.8.2", - "nunomaduro/larastan": "^2.6.4", - "orchestra/testbench-core": "^8.13.0", - "pestphp/pest": "^2.23.2", - "phpunit/phpunit": "^10.4.1", - "sebastian/environment": "^6.0.1", - "spatie/laravel-ignition": "^2.3.1" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" - ] - } - }, - "autoload": { - "files": [ - "./src/Adapters/Phpunit/Autoload.php" - ], - "psr-4": { - "NunoMaduro\\Collision\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nuno Maduro", - "email": "enunomaduro@gmail.com" - } - ], - "description": "Cli error handling for console/command-line PHP applications.", - "keywords": [ - "artisan", - "cli", - "command-line", - "console", - "error", - "handling", - "laravel", - "laravel-zero", - "php", - "symfony" - ], - "support": { - "issues": "https://github.com/nunomaduro/collision/issues", - "source": "https://github.com/nunomaduro/collision" - }, - "funding": [ - { - "url": "https://www.paypal.com/paypalme/enunomaduro", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, - { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" - } - ], - "time": "2023-10-11T15:45:01+00:00" - }, - { - "name": "nunomaduro/termwind", - "version": "v1.15.1", - "source": { - "type": "git", - "url": "https://github.com/nunomaduro/termwind.git", - "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc", - "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": "^8.0", - "symfony/console": "^5.3.0|^6.0.0" - }, - "require-dev": { - "ergebnis/phpstan-rules": "^1.0.", - "illuminate/console": "^8.0|^9.0", - "illuminate/support": "^8.0|^9.0", - "laravel/pint": "^1.0.0", - "pestphp/pest": "^1.21.0", - "pestphp/pest-plugin-mock": "^1.0", - "phpstan/phpstan": "^1.4.6", - "phpstan/phpstan-strict-rules": "^1.1.0", - "symfony/var-dumper": "^5.2.7|^6.0.0", - "thecodingmachine/phpstan-strict-rules": "^1.0.0" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Termwind\\Laravel\\TermwindServiceProvider" - ] - } - }, - "autoload": { - "files": [ - "src/Functions.php" - ], - "psr-4": { - "Termwind\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nuno Maduro", - "email": "enunomaduro@gmail.com" - } - ], - "description": "Its like Tailwind CSS, but for the console.", - "keywords": [ - "cli", - "console", - "css", - "package", - "php", - "style" - ], - "support": { - "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1" - }, - "funding": [ - { - "url": "https://www.paypal.com/paypalme/enunomaduro", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, - { - "url": "https://github.com/xiCO2k", - "type": "github" - } - ], - "time": "2023-02-08T01:06:31+00:00" - }, - { - "name": "phar-io/manifest", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "54750ef60c58e43759730615a392c31c80e23176" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", - "reference": "54750ef60c58e43759730615a392c31c80e23176", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2024-03-03T12:33:53+00:00" - }, - { - "name": "phar-io/version", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" - }, - "time": "2022-02-21T01:04:05+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "11.0.7", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f7f08030e8811582cc459871d28d6f5a1a4d35ca" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f7f08030e8811582cc459871d28d6f5a1a4d35ca", - "reference": "f7f08030e8811582cc459871d28d6f5a1a4d35ca", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^5.3.1", - "php": ">=8.2", - "phpunit/php-file-iterator": "^5.1.0", - "phpunit/php-text-template": "^4.0.1", - "sebastian/code-unit-reverse-lookup": "^4.0.1", - "sebastian/complexity": "^4.0.1", - "sebastian/environment": "^7.2.0", - "sebastian/lines-of-code": "^3.0.1", - "sebastian/version": "^5.0.2", - "theseer/tokenizer": "^1.2.3" - }, - "require-dev": { - "phpunit/phpunit": "^11.4.1" - }, - "suggest": { - "ext-pcov": "PHP extension that provides line coverage", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "11.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.7" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-10-09T06:21:38+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "5.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6", - "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-08-27T05:02:59+00:00" - }, - { - "name": "phpunit/php-invoker", - "version": "5.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^11.0" - }, - "suggest": { - "ext-pcntl": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T05:07:44+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T05:08:43+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "7.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "7.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "security": "https://github.com/sebastianbergmann/php-timer/security/policy", - "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T05:09:35+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "11.4.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "e8e8ed1854de5d36c088ec1833beae40d2dedd76" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e8e8ed1854de5d36c088ec1833beae40d2dedd76", - "reference": "e8e8ed1854de5d36c088ec1833beae40d2dedd76", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.0", - "phar-io/manifest": "^2.0.4", - "phar-io/version": "^3.2.1", - "php": ">=8.2", - "phpunit/php-code-coverage": "^11.0.7", - "phpunit/php-file-iterator": "^5.1.0", - "phpunit/php-invoker": "^5.0.1", - "phpunit/php-text-template": "^4.0.1", - "phpunit/php-timer": "^7.0.1", - "sebastian/cli-parser": "^3.0.2", - "sebastian/code-unit": "^3.0.1", - "sebastian/comparator": "^6.1.1", - "sebastian/diff": "^6.0.2", - "sebastian/environment": "^7.2.0", - "sebastian/exporter": "^6.1.3", - "sebastian/global-state": "^7.0.2", - "sebastian/object-enumerator": "^6.0.1", - "sebastian/type": "^5.1.0", - "sebastian/version": "^5.0.2" - }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "11.4-dev" - } - }, - "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.4.3" - }, - "funding": [ - { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" - } - ], - "time": "2024-10-28T13:07:50+00:00" - }, - { - "name": "robiningelbrecht/phpunit-pretty-print", - "version": "v1.3.1", - "source": { - "type": "git", - "url": "https://github.com/robiningelbrecht/phpunit-pretty-print.git", - "reference": "e1a3bce1dbea57cff505f1596a07b89e4bc8bfb6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/robiningelbrecht/phpunit-pretty-print/zipball/e1a3bce1dbea57cff505f1596a07b89e4bc8bfb6", - "reference": "e1a3bce1dbea57cff505f1596a07b89e4bc8bfb6", - "shasum": "" - }, - "require": { - "nunomaduro/collision": "^7.8|^8.0", - "php": "^8.1", - "phpunit/phpunit": "^10.3|^11.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3.9", - "phpstan/phpstan": "^1.10", - "spatie/phpunit-snapshot-assertions": "^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "RobinIngelbrecht\\PHPUnitPrettyPrint\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Robin Ingelbrecht", - "email": "ingelbrecht_robin@hotmail.com" - } - ], - "description": "Prettify PHPUnit output", - "keywords": [ - "php", - "phpunit", - "testing" - ], - "support": { - "issues": "https://github.com/robiningelbrecht/phpunit-pretty-print/issues", - "source": "https://github.com/robiningelbrecht/phpunit-pretty-print/tree/v1.3.1" - }, - "funding": [ - { - "url": "https://www.buymeacoffee.com/ingelbrecht", - "type": "custom" - }, - { - "url": "https://github.com/robiningelbrecht", - "type": "github" - } - ], - "time": "2024-02-19T19:11:05+00:00" - }, - { - "name": "sebastian/cli-parser", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", - "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:41:36+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "3.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "6bb7d09d6623567178cf54126afa9c2310114268" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/6bb7d09d6623567178cf54126afa9c2310114268", - "reference": "6bb7d09d6623567178cf54126afa9c2310114268", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "security": "https://github.com/sebastianbergmann/code-unit/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:44:28+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:45:54+00:00" - }, - { - "name": "sebastian/comparator", - "version": "6.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "43d129d6a0f81c78bee378b46688293eb7ea3739" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/43d129d6a0f81c78bee378b46688293eb7ea3739", - "reference": "43d129d6a0f81c78bee378b46688293eb7ea3739", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/diff": "^6.0", - "sebastian/exporter": "^6.0" - }, - "require-dev": { - "phpunit/phpunit": "^11.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/6.2.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-10-31T05:30:08+00:00" - }, - { - "name": "sebastian/complexity", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^5.0", - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", - "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:49:50+00:00" - }, - { - "name": "sebastian/diff", - "version": "6.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0", - "symfony/process": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:53:05+00:00" - }, - { - "name": "sebastian/environment", - "version": "7.2.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5", - "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "7.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "https://github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/7.2.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:54:44+00:00" - }, - { - "name": "sebastian/exporter", - "version": "6.1.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "c414673eee9a8f9d51bbf8d61fc9e3ef1e85b20e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c414673eee9a8f9d51bbf8d61fc9e3ef1e85b20e", - "reference": "c414673eee9a8f9d51bbf8d61fc9e3ef1e85b20e", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/recursion-context": "^6.0" - }, - "require-dev": { - "phpunit/phpunit": "^11.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "https://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/6.1.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:56:19+00:00" - }, - { - "name": "sebastian/global-state", - "version": "7.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "7.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "https://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:57:36+00:00" - }, - { - "name": "sebastian/lines-of-code", - "version": "3.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^5.0", - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", - "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:58:38+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "6.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T05:00:13+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T05:01:32+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "6.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "694d156164372abbd149a4b85ccda2e4670c0e16" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/694d156164372abbd149a4b85ccda2e4670c0e16", - "reference": "694d156164372abbd149a4b85ccda2e4670c0e16", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "https://github.com/sebastianbergmann/recursion-context", - "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T05:10:34+00:00" - }, - { - "name": "sebastian/type", - "version": "5.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "461b9c5da241511a2a0e8f240814fb23ce5c0aac" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/461b9c5da241511a2a0e8f240814fb23ce5c0aac", - "reference": "461b9c5da241511a2a0e8f240814fb23ce5c0aac", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "security": "https://github.com/sebastianbergmann/type/security/policy", - "source": "https://github.com/sebastianbergmann/type/tree/5.1.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-09-17T13:12:04+00:00" - }, - { - "name": "sebastian/version", - "version": "5.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "security": "https://github.com/sebastianbergmann/version/security/policy", - "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-10-09T05:16:32+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.2.3", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.3" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2024-03-03T12:36:25+00:00" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": {}, - "prefer-stable": true, - "prefer-lowest": false, - "platform": { - "php": ">=8.3", - "ext-ctype": "*", - "ext-filter": "*", - "ext-hash": "*", - "ext-mbstring": "*", - "ext-openssl": "*", - "ext-session": "*", - "ext-tokenizer": "*" - }, - "platform-dev": {}, - "plugin-api-version": "2.6.0" -} From f538f3412107653c2158766a4f107bed780dabd5 Mon Sep 17 00:00:00 2001 From: Sleon4 Date: Mon, 13 Jan 2025 15:06:46 -0500 Subject: [PATCH 2/6] chore: NULL_VALUE constant is removed --- .../Commands/Lion/Schedule/RunQueuedTasksCommand.php | 2 +- src/LionBundle/Helpers/Bundle/constants.php | 7 ------- src/LionBundle/Helpers/Commands/Schedule/Task.php | 6 +++--- src/LionBundle/Helpers/Redis.php | 2 +- src/LionBundle/Test/Test.php | 8 ++++---- tests/Helpers/Bundle/ConstantsTest.php | 2 +- tests/Helpers/RedisTest.php | 2 +- 7 files changed, 11 insertions(+), 18 deletions(-) diff --git a/src/LionBundle/Commands/Lion/Schedule/RunQueuedTasksCommand.php b/src/LionBundle/Commands/Lion/Schedule/RunQueuedTasksCommand.php index bb2e527d..89f723b1 100644 --- a/src/LionBundle/Commands/Lion/Schedule/RunQueuedTasksCommand.php +++ b/src/LionBundle/Commands/Lion/Schedule/RunQueuedTasksCommand.php @@ -88,7 +88,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int while (true) { $json = $this->taskQueue->get(); - if (NULL_VALUE === $json) { + if (null === $json) { $output->writeln($this->infoOutput("\t>> SCHEDULE: no queued tasks available")); $this->taskQueue->pause(60); diff --git a/src/LionBundle/Helpers/Bundle/constants.php b/src/LionBundle/Helpers/Bundle/constants.php index 6c3efa45..f82f3235 100644 --- a/src/LionBundle/Helpers/Bundle/constants.php +++ b/src/LionBundle/Helpers/Bundle/constants.php @@ -37,10 +37,3 @@ * @var Arr */ const arr = new Arr(); - -/** - * [Defines a null value] - * - * @var null - */ -const NULL_VALUE = null; diff --git a/src/LionBundle/Helpers/Commands/Schedule/Task.php b/src/LionBundle/Helpers/Commands/Schedule/Task.php index 3bc6e4d7..470db362 100644 --- a/src/LionBundle/Helpers/Commands/Schedule/Task.php +++ b/src/LionBundle/Helpers/Commands/Schedule/Task.php @@ -48,15 +48,15 @@ class Task */ public function __construct(?string $namespace = null, ?string $method = null, ?array $data = []) { - if (NULL_VALUE === $namespace) { + if (null === $namespace) { throw new InvalidArgumentException('namespace is null', Http::INTERNAL_SERVER_ERROR); } - if (NULL_VALUE === $method) { + if (null === $method) { throw new InvalidArgumentException('method is null', Http::INTERNAL_SERVER_ERROR); } - if (NULL_VALUE === $data) { + if (null === $data) { throw new InvalidArgumentException('data is null', Http::INTERNAL_SERVER_ERROR); } diff --git a/src/LionBundle/Helpers/Redis.php b/src/LionBundle/Helpers/Redis.php index 07f0141c..c23081c0 100644 --- a/src/LionBundle/Helpers/Redis.php +++ b/src/LionBundle/Helpers/Redis.php @@ -83,7 +83,7 @@ private function connect(): void */ private function toArray(?string $data): array { - return NULL_VALUE === $data ? [] : json_decode($data, true); + return null === $data ? [] : json_decode($data, true); } /** diff --git a/src/LionBundle/Test/Test.php b/src/LionBundle/Test/Test.php index 150fea67..3c45278d 100644 --- a/src/LionBundle/Test/Test.php +++ b/src/LionBundle/Test/Test.php @@ -53,11 +53,11 @@ class Test extends Testing */ protected function executeMigrationsGroup(array $migrations): void { - if (NULL_VALUE === $this->container) { + if (null === $this->container) { $this->container = new Container(); } - if (NULL_VALUE === $this->migrations) { + if (null === $this->migrations) { $this->migrations = $this->container->resolve(Migrations::class); } @@ -73,11 +73,11 @@ protected function executeMigrationsGroup(array $migrations): void */ protected function executeSeedsGroup(array $seeds): void { - if (NULL_VALUE === $this->container) { + if (null === $this->container) { $this->container = new Container(); } - if (NULL_VALUE === $this->seeds) { + if (null === $this->seeds) { $this->seeds = $this->container->resolve(Seeds::class); } diff --git a/tests/Helpers/Bundle/ConstantsTest.php b/tests/Helpers/Bundle/ConstantsTest.php index 7e8ff8ad..953b24f7 100644 --- a/tests/Helpers/Bundle/ConstantsTest.php +++ b/tests/Helpers/Bundle/ConstantsTest.php @@ -43,6 +43,6 @@ public function arrConstant(): void #[Testing] public function nullValueConstant(): void { - $this->assertNull(NULL_VALUE); + $this->assertNull(null); } } diff --git a/tests/Helpers/RedisTest.php b/tests/Helpers/RedisTest.php index 5406deec..d67e5c0a 100644 --- a/tests/Helpers/RedisTest.php +++ b/tests/Helpers/RedisTest.php @@ -84,7 +84,7 @@ public function toArray(array $data): void #[Testing] public function toArrayWithParamNull(): void { - $return = $this->getPrivateMethod('toArray', [NULL_VALUE]); + $return = $this->getPrivateMethod('toArray', [null]); $this->assertIsArray($return); $this->assertempty($return); From e37d16f54533bc981ded5ce9c776c1e972e88f59 Mon Sep 17 00:00:00 2001 From: Sleon4 Date: Mon, 13 Jan 2025 15:08:59 -0500 Subject: [PATCH 3/6] docs: trait annotations added --- src/LionBundle/Traits/CapsuleTrait.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/LionBundle/Traits/CapsuleTrait.php b/src/LionBundle/Traits/CapsuleTrait.php index de7e847a..c9ff3c59 100644 --- a/src/LionBundle/Traits/CapsuleTrait.php +++ b/src/LionBundle/Traits/CapsuleTrait.php @@ -4,6 +4,11 @@ namespace Lion\Bundle\Traits; +/** + * Adds the abstract methods of the Capsule interface + * + * @package Lion\Bundle\Traits + */ trait CapsuleTrait { /** From 3d0e8a0c717c415f6ced4e469837737871a4abb3 Mon Sep 17 00:00:00 2001 From: Sleon4 Date: Mon, 13 Jan 2025 15:16:04 -0500 Subject: [PATCH 4/6] test: Added test for TaskQueueTest::pause --- tests/Helpers/Commands/Schedule/TaskQueueTest.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/Helpers/Commands/Schedule/TaskQueueTest.php b/tests/Helpers/Commands/Schedule/TaskQueueTest.php index d8f81301..697b863c 100644 --- a/tests/Helpers/Commands/Schedule/TaskQueueTest.php +++ b/tests/Helpers/Commands/Schedule/TaskQueueTest.php @@ -112,10 +112,12 @@ public function get(): void #[Testing] public function pause(): void { - $initialDate = now(); + $initialTime = microtime(true); $this->taskQueue->pause(self::TASK_QUEUE_TIME); - $this->assertSame(self::TASK_QUEUE_TIME, now()->diffInSeconds($initialDate)); + $elapsedTime = microtime(true) - $initialTime; + + $this->assertEqualsWithDelta(self::TASK_QUEUE_TIME, $elapsedTime, 0.1); } } From b4626809b2c135ea0ef65b752c26447882ece820 Mon Sep 17 00:00:00 2001 From: Sleon4 Date: Mon, 13 Jan 2025 15:46:45 -0500 Subject: [PATCH 5/6] added Github Actions configuration --- .github/workflows/php.yml | 127 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 .github/workflows/php.yml diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml new file mode 100644 index 00000000..7550d42c --- /dev/null +++ b/.github/workflows/php.yml @@ -0,0 +1,127 @@ +name: Lion-Test (CI Workflow) + +on: + push: + branches: + - actions-sleon + - actions-saco + pull_request: + branches: + - main + schedule: + - cron: "15 0 * * *" + +jobs: + composer-validation: + runs-on: ubuntu-latest + name: Composer Validation + + steps: + - name: Check out the repository + uses: actions/checkout@v4 + + - name: Cache Composer dependencies + uses: actions/cache@v3 + with: + path: vendor + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-composer + + - name: Set up PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.4' + extensions: mbstring, gd, zip + + - name: Composer Validate + run: composer validate --strict + + - name: Composer Check for vulnerabilities + run: composer audit --locked + + - name: Composer Install + run: composer install + + - name: Composer Dump-Autoload + run: composer dump-autoload --optimize --strict-psr + + docker-validation: + runs-on: ubuntu-latest + name: Docker Validation + + steps: + - name: Check out the repository + uses: actions/checkout@v4 + + - name: Cache Docker layers + uses: actions/cache@v3 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Validate Docker Compose configuration + run: docker compose config + + code-analyze: + runs-on: ubuntu-latest + name: PHP Code Analyze + needs: + - composer-validation + - docker-validation + + steps: + - name: Check out the repository + uses: actions/checkout@v4 + + - name: Set up PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.4' + extensions: mbstring, gd, zip + + - name: Composer Install + run: composer install + + - name: PHP CodeSnifer (Src) + run: php -d memory_limit=-1 vendor/bin/phpcs --standard=PSR12 src/ + + # - name: PHPStan (Src) + # run: php -d memory_limit=-1 vendor/bin/phpstan analyse --level max src + + tests: + runs-on: ubuntu-latest + name: PHP Tests + needs: code-analyze + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Tear down containers + run: docker compose down --volumes --remove-orphans + + - name: Stop running Docker containers (if any) + run: | + docker ps -q | xargs -r docker stop + docker ps -aq | xargs -r docker rm + + - name: Build the Docker image + run: docker build -t bundle-app . + + - name: Start services using Docker Compose + run: | + docker compose -f docker-compose.yml up -d + env: + COMPOSE_PROJECT_NAME: test + + - name: Install Composer dependencies + run: docker exec bundle-app composer install + + - name: Run PHP Tests + run: docker exec bundle-app php vendor/bin/phpunit From f8a8d9baf261cbea93d9ba3b35dfe08445ccba6c Mon Sep 17 00:00:00 2001 From: Sleon4 Date: Mon, 13 Jan 2025 15:46:55 -0500 Subject: [PATCH 6/6] feat: PSR12 standardization changes added with PHPCodeSnifer --- .env.actions | 63 +++++++++ .env.example | 25 +--- .github/workflows/php.yml | 125 +++++++++++------- Dockerfile | 4 + composer.json | 7 +- lion | 2 - npm | 2 - routes/web.php | 11 +- .../Commands/Lion/DB/CrudCommand.php | 43 +++--- .../Migrations/FreshMigrationsCommand.php | 10 +- .../Commands/Lion/New/CommandsCommand.php | 4 +- .../Commands/Lion/New/ControllerCommand.php | 3 +- .../Commands/Lion/New/InterfaceCommand.php | 14 +- .../Commands/Lion/New/MigrationCommand.php | 5 +- .../Commands/Lion/New/ModelCommand.php | 6 +- .../Commands/Lion/New/RSACommand.php | 18 +-- .../Commands/Lion/New/SHFileCommand.php | 23 ++-- .../Commands/Lion/New/TestCommand.php | 14 +- .../Commands/Lion/Npm/NpmInitCommand.php | 12 +- .../Lion/Schedule/ListScheduleCommand.php | 2 +- .../Lion/Schedule/UpScheduleCommand.php | 6 +- .../Commands/Lion/ServerCommand.php | 12 +- src/LionBundle/Helpers/Bundle/constants.php | 20 +-- src/LionBundle/Helpers/Bundle/helpers.php | 14 +- .../Helpers/Commands/ClassFactory.php | 3 +- .../Commands/Selection/MenuCommand.php | 3 +- src/LionBundle/Helpers/Http/Fetch.php | 3 +- .../Helpers/Http/FetchConfiguration.php | 3 +- src/LionBundle/Helpers/Http/Routes.php | 2 +- tests/Commands/Lion/DB/CrudCommandTest.php | 5 - .../Commands/Lion/DB/DBCapsuleCommandTest.php | 5 - tests/Commands/Lion/DB/DBSeedCommandTest.php | 5 - tests/Commands/Lion/DB/RulesDBCommandTest.php | 5 - .../Lion/DB/ShowDatabasesCommandTest.php | 5 - .../Migrations/EmptyMigrationsCommandTest.php | 7 +- .../Lion/New/MigrationCommandTest.php | 5 - .../Schedule/RunQueuedTasksCommandTest.php | 9 -- tests/Helpers/Bundle/ConstantsTest.php | 48 ------- .../Commands/Migrations/MigrationsTest.php | 5 - .../Commands/Selection/MenuCommandTest.php | 4 - tests/Helpers/DatabaseEngineTest.php | 5 - tests/Providers/ConnectionProviderTrait.php | 43 ------ ...eRuleProvider.php => NameProviderRule.php} | 0 tests/TestingTest.php | 15 --- tests/bootstrap.php | 49 ++++++- 45 files changed, 327 insertions(+), 347 deletions(-) create mode 100644 .env.actions delete mode 100644 tests/Helpers/Bundle/ConstantsTest.php delete mode 100644 tests/Providers/ConnectionProviderTrait.php rename tests/Providers/{NameRuleProvider.php => NameProviderRule.php} (100%) delete mode 100644 tests/TestingTest.php diff --git a/.env.actions b/.env.actions new file mode 100644 index 00000000..16dcc5a3 --- /dev/null +++ b/.env.actions @@ -0,0 +1,63 @@ +################################################################################ +################# SERVER INFORMATION ------------------------- ################# +################################################################################ +APP_NAME="lion-bundle" +SERVER_DATE_TIMEZONE="America/Bogota" +SERVER_URL="http://127.0.0.1:8000" +SERVER_URL_AUD="http://127.0.0.1:5173" +SERVER_HASH="a50a54cf0454196d493809d282984333a0bcbf0b3703785bd329250485dd8307" +################################################################################ +################# DATABASE CONNECTIONS ----------------------- ################# +################################################################################ +DB_TYPE="mysql" +DB_HOST="127.0.0.1" +DB_PORT=3306 +DB_NAME="lion_database" +DB_USER="root" +DB_PASSWORD="lion" +################################################################################ +DB_TYPE_TEST="mysql" +DB_HOST_TEST="127.0.0.1" +DB_PORT_TEST=3306 +DB_NAME_TEST="lion_database_test" +DB_USER_TEST="root" +DB_PASSWORD_TEST="lion" +################################################################################ +DB_TYPE_TEST_POSTGRESQL="postgresql" +DB_HOST_TEST_POSTGRESQL="127.0.0.1" +DB_PORT_TEST_POSTGRESQL=5432 +DB_NAME_TEST_POSTGRESQL="lion_database_postgres" +DB_USER_TEST_POSTGRESQL="root" +DB_PASSWORD_TEST_POSTGRESQL="lion" +################################################################################ +################# REDIS -------------------------------------- ################# +################################################################################ +REDIS_SCHEME="tcp" +REDIS_HOST="127.0.0.1" +REDIS_DATABASES=1 +REDIS_PASSWORD="lion" +REDIS_PORT=6379 +################################################################################ +################# JWT DATA SECURITY -------------------------- ################# +################################################################################ +JWT_DEFAULT_MD="RS256" +JWT_EXP=3600 # number of hours in seconds +################################################################################ +################# RSA DATA SECURITY -------------------------- ################# +################################################################################ +RSA_PATH="/etc/ssl/openssl.cnf" # the "/etc/ssl/openssl.cnf" value for docker +RSA_URL_PATH="keys/" +RSA_PRIVATE_KEY_BITS=2048 +RSA_DEFAULT_MD="sha256" +################################################################################ +################# AES DATA SECURITY -------------------------- ################# +################################################################################ +AES_METHOD="aes-256-cbc" +AES_KEY="" # 16 character value +AES_IV="" # 16 character value +################################################################################ +################ CRONTAB -------------------------------------- ################ +################################################################################ +CRONTAB_PATH="/etc/" # the "/etc/" value for docker +CRONTAB_PHP_PATH="/usr/local/bin/php" # the '/usr/local/bin/php' value for docker +CRONTAB_PROJECT_PATH="/var/www/html/" # the "/var/www/html/" value for docker diff --git a/.env.example b/.env.example index 07a4c407..e17636e4 100644 --- a/.env.example +++ b/.env.example @@ -1,11 +1,10 @@ -DEVELOPMENT_ENVIRONMENT="dev" ################################################################################ ################# SERVER INFORMATION ------------------------- ################# ################################################################################ APP_NAME="lion-bundle" SERVER_DATE_TIMEZONE="America/Bogota" -SERVER_URL="http://127.0.0.1:8000" -SERVER_URL_AUD="http://127.0.0.1:5173" +SERVER_URL="http://localhost:8000" +SERVER_URL_AUD="http://localhos:5173" SERVER_HASH="a50a54cf0454196d493809d282984333a0bcbf0b3703785bd329250485dd8307" ################################################################################ ################# DATABASE CONNECTIONS ----------------------- ################# @@ -31,26 +30,6 @@ DB_NAME_TEST_POSTGRESQL="lion_database_postgres" DB_USER_TEST_POSTGRESQL="root" DB_PASSWORD_TEST_POSTGRESQL="lion" ################################################################################ -################# EMAIL DETAILS ------------------------------ ################# -################################################################################ -MAIL_NAME="${APP_NAME}" -MAIL_TYPE="phpmailer" -MAIL_HOST=mailhog # the mailhog value for docker -MAIL_USER_NAME="${APP_NAME}" -MAIL_PASSWORD="" -MAIL_PORT=1025 # the 1025 value for docker -MAIL_ENCRYPTION="tls" -MAIL_DEBUG=0 -################################################################################ -MAIL_NAME_SUPP="${APP_NAME}" -MAIL_TYPE_SUPP="symfony" -MAIL_HOST_SUPP=mailhog # the mailhog value for docker -MAIL_USER_NAME_SUPP="${APP_NAME}" -MAIL_PASSWORD_SUPP="" -MAIL_PORT_SUPP=1025 # the 1025 value for docker -MAIL_ENCRYPTION_SUPP="tls" -MAIL_DEBUG_SUPP=0 -################################################################################ ################# REDIS -------------------------------------- ################# ################################################################################ REDIS_SCHEME="tcp" diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index 7550d42c..9569cc6e 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -1,10 +1,9 @@ -name: Lion-Test (CI Workflow) +name: Lion-Bundle (CI Workflow) on: push: branches: - - actions-sleon - - actions-saco + - main pull_request: branches: - main @@ -34,43 +33,23 @@ jobs: php-version: '8.4' extensions: mbstring, gd, zip + - name: Composer Install + run: composer install + - name: Composer Validate run: composer validate --strict - name: Composer Check for vulnerabilities run: composer audit --locked - - name: Composer Install - run: composer install - - name: Composer Dump-Autoload run: composer dump-autoload --optimize --strict-psr - docker-validation: - runs-on: ubuntu-latest - name: Docker Validation - - steps: - - name: Check out the repository - uses: actions/checkout@v4 - - - name: Cache Docker layers - uses: actions/cache@v3 - with: - path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-buildx- - - - name: Validate Docker Compose configuration - run: docker compose config - code-analyze: runs-on: ubuntu-latest name: PHP Code Analyze needs: - composer-validation - - docker-validation steps: - name: Check out the repository @@ -94,34 +73,88 @@ jobs: tests: runs-on: ubuntu-latest name: PHP Tests - needs: code-analyze + needs: + - code-analyze + + services: + redis: + image: redis + ports: + - 6379:6379 + + mysql: + image: mysql + options: >- + --health-cmd="mysqladmin ping" + --health-interval=10s + --health-timeout=5s + --health-retries=3 + ports: + - 3306:3306 + env: + MYSQL_DATABASE: lion_database + MYSQL_ROOT_PASSWORD: lion + MYSQL_PASSWORD: lion + + postgres: + image: postgres + ports: + - 5432:5432 + env: + POSTGRES_DB: lion_database + POSTGRES_USER: root + POSTGRES_PASSWORD: lion steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Tear down containers - run: docker compose down --volumes --remove-orphans - - - name: Stop running Docker containers (if any) + - name: Install system dependencies run: | - docker ps -q | xargs -r docker stop - docker ps -aq | xargs -r docker rm + sudo apt-get update -y + sudo apt-get install -y git curl wget unzip libpq-dev libpng-dev libzip-dev zlib1g-dev libonig-dev libevent-dev libssl-dev + sudo apt-get clean - - name: Build the Docker image - run: docker build -t bundle-app . + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 8.4 + extensions: mbstring, gd, zip, pdo, pdo_mysql, pdo_pgsql, redis, xdebug + coverage: xdebug + ini-values: | + xdebug.mode=develop,coverage,debug + xdebug.start_with_request=yes + xdebug.log_level=0 + tools: composer + + - name: Setup NodeJS and NPM + run: | + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash + export NVM_DIR="$HOME/.nvm" + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # Esto carga nvm + [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # Esto carga nvm bash_completion + nvm install 20 + nvm use 20 + npm install -g npm@11 + + - name: Copy .env.actions to .env + run: | + if [ -f .env.actions ]; then + cp .env.actions .env + else + echo ".env.actions not found! Please make sure the file exists." + exit 1 + fi + + - name: Install php dependencies + run: composer install - - name: Start services using Docker Compose + - name: Start PHP built-in server run: | - docker compose -f docker-compose.yml up -d - env: - COMPOSE_PROJECT_NAME: test + nohup php -S 0.0.0.0:8000 -t public & - - name: Install Composer dependencies - run: docker exec bundle-app composer install + - name: Generate RSA Key's + run: php lion new:rsa - - name: Run PHP Tests - run: docker exec bundle-app php vendor/bin/phpunit + - name: Run tests + run: php lion test diff --git a/Dockerfile b/Dockerfile index 61db3136..03ce0d0b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -47,6 +47,10 @@ USER lion SHELL ["/bin/bash", "--login", "-i", "-c"] # Install nvm, Node.js and npm +ENV NVM_DIR="/home/lion/.nvm" + +ENV PATH="$NVM_DIR/versions/node/v20/bin:$PATH" + RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash \ && source /home/lion/.bashrc \ && nvm install 20 \ diff --git a/composer.json b/composer.json index 5aa883c2..85f77763 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,7 @@ "routes/middleware.php", "src/LionBundle/Helpers/Bundle/constants.php", "src/LionBundle/Helpers/Bundle/helpers.php", - "tests/Providers/NameRuleProvider.php" + "tests/Providers/NameProviderRule.php" ] }, "autoload-dev": { @@ -58,7 +58,7 @@ "lion/files": "^8.0", "lion/helpers": "^5.1", "lion/request": "^7.1", - "lion/route": "^12.0", + "lion/route": "^12.1", "lion/security": "^11.0", "monolog/monolog": "^3.3", "nesbot/carbon": "^3.8", @@ -71,7 +71,8 @@ "lion/test": "^3.1", "phpstan/phpstan": "^2.1", "phpunit/phpunit": "^11.5", - "squizlabs/php_codesniffer": "^3.11" + "squizlabs/php_codesniffer": "^3.11", + "symfony/mailer": "^7.2" }, "suggest": { "ext-gd": "Required to use LionSpreadsheet.", diff --git a/lion b/lion index e43034c4..7b26b69a 100644 --- a/lion +++ b/lion @@ -22,8 +22,6 @@ use Lion\Files\Store; define('IS_INDEX', false); -define('DEVELOPMENT_ENVIRONMENT', 'dev' === env('DEVELOPMENT_ENVIRONMENT')); - /** * ----------------------------------------------------------------------------- * Register environment variable loader automatically diff --git a/npm b/npm index 8676c4d3..4a1418a4 100644 --- a/npm +++ b/npm @@ -22,8 +22,6 @@ use Lion\Files\Store; define('IS_INDEX', false); -define('DEVELOPMENT_ENVIRONMENT', 'dev' === env('DEVELOPMENT_ENVIRONMENT')); - /** * ----------------------------------------------------------------------------- * Register environment variable loader automatically diff --git a/routes/web.php b/routes/web.php index 8e323d98..afa078eb 100644 --- a/routes/web.php +++ b/routes/web.php @@ -6,8 +6,6 @@ define('IS_INDEX', true); -define('DEVELOPMENT_ENVIRONMENT', 'dev' === env('DEVELOPMENT_ENVIRONMENT')); - /** * ----------------------------------------------------------------------------- * Register The Auto Loader @@ -27,7 +25,6 @@ use Lion\Bundle\Helpers\Http\Routes; use Lion\Database\Driver; use Lion\Files\Store; -use Lion\Mailer\Mailer; use Tests\Providers\ExampleProvider; /** @@ -57,7 +54,7 @@ 'port' => env('DB_PORT'), 'dbname' => env('DB_NAME'), 'user' => env('DB_USER'), - 'password' => env('DB_PASSWORD') + 'password' => env('DB_PASSWORD'), ], env('DB_NAME_TEST') => [ 'type' => env('DB_TYPE_TEST'), @@ -65,9 +62,9 @@ 'port' => env('DB_PORT_TEST'), 'dbname' => env('DB_NAME'), 'user' => env('DB_USER_TEST'), - 'password' => env('DB_PASSWORD_TEST') - ] - ] + 'password' => env('DB_PASSWORD_TEST'), + ], + ], ]); /** diff --git a/src/LionBundle/Commands/Lion/DB/CrudCommand.php b/src/LionBundle/Commands/Lion/DB/CrudCommand.php index aedbb5d7..1c42eac3 100644 --- a/src/LionBundle/Commands/Lion/DB/CrudCommand.php +++ b/src/LionBundle/Commands/Lion/DB/CrudCommand.php @@ -258,7 +258,9 @@ private function addControllerAndModel( ], 20 => [ 'replace' => true, - 'content' => "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . ' [Parameter Description]', + 'content' => ( + "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . ' [Parameter Description]' + ), 'search' => '*' ], 25 => [ @@ -273,7 +275,9 @@ private function addControllerAndModel( ], 44 => [ 'replace' => true, - 'content' => "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . ' [Parameter Description]', + 'content' => ( + "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . ' [Parameter Description]' + ), 'search' => '*' ], 50 => [ @@ -288,7 +292,9 @@ private function addControllerAndModel( ], 57 => [ 'replace' => true, - 'content' => "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . ' [Parameter Description]', + 'content' => ( + "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . ' [Parameter Description]' + ), 'search' => '*' ], 63 => [ @@ -317,7 +323,8 @@ private function addControllerAndModel( foreach ($gettersCallModel as $keyGetterCallModel => $method) { foreach ($method as $name) { $listGettersCallModel[$keyGetterCallModel] .= $this->str - ->lt()->lt()->lt()->concat('$')->concat(lcfirst($entityPascal))->concat("->{$name}()")->concat(',') + ->lt()->lt()->lt() + ->concat('$')->concat(lcfirst($entityPascal))->concat("->{$name}()")->concat(',') ->ln() ->get(); } @@ -331,8 +338,8 @@ private function addControllerAndModel( 20 => [ 'replace' => true, 'content' => ( - "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . " [Parameter Description]\n" . - "\t *" + "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . + " [Parameter Description]\n\t *" ), 'search' => '*', ], @@ -362,8 +369,8 @@ private function addControllerAndModel( 43 => [ 'replace' => true, 'content' => ( - "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . " [Parameter Description]\n" . - "\t *" + "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . + " [Parameter Description]\n\t *" ), 'search' => '*', ], @@ -388,8 +395,8 @@ private function addControllerAndModel( 54 => [ 'replace' => true, 'content' => ( - "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . " [Parameter Description]\n" . - "\t *" + "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . + " [Parameter Description]\n\t *" ), 'search' => '*', ], @@ -429,8 +436,8 @@ private function addControllerAndModel( 'replace' => true, 'search' => '*', 'content' => ( - "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . " [Parameter Description]\n" . - "\t *" + "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . + " [Parameter Description]\n\t *" ), ], 23 => [ @@ -462,8 +469,8 @@ private function addControllerAndModel( 43 => [ 'replace' => true, 'content' => ( - "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . " [Parameter Description]\n" . - "\t *" + "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . + " [Parameter Description]\n\t *" ), 'search' => '*', ], @@ -488,8 +495,8 @@ private function addControllerAndModel( 54 => [ 'replace' => true, 'content' => ( - "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . " [Parameter Description]\n" . - "\t *" + "*\n\t * @param {$entityPascal} " . '$' . lcfirst($entityPascal) . + " [Parameter Description]\n\t *" ), 'search' => '*', ], @@ -526,6 +533,8 @@ private function addControllerAndModel( * implemented by all Output classes] * * @return void + * + * @throws ExceptionInterface */ private function addCapsule( string $driver, @@ -590,7 +599,7 @@ private function generateCallGettersModel(string $entityPascal, array $columns): } } - foreach ($columns as $key => $column) { + foreach ($columns as $column) { if ('PRI' === $column->Key) { $methods['update'] = [ ...$this->arr->of($methods['update'])->where(fn ($value, $key) => $key != 0)->get(), diff --git a/src/LionBundle/Commands/Lion/Migrations/FreshMigrationsCommand.php b/src/LionBundle/Commands/Lion/Migrations/FreshMigrationsCommand.php index a5ad1cce..deab9d2e 100644 --- a/src/LionBundle/Commands/Lion/Migrations/FreshMigrationsCommand.php +++ b/src/LionBundle/Commands/Lion/Migrations/FreshMigrationsCommand.php @@ -83,10 +83,10 @@ protected function configure(): void * @param OutputInterface $output [OutputInterface is the interface * implemented by all Output classes] * - * @return int [0 if everything went fine, or an exit code] + * @return int * - * @throws LogicException [When this abstract method is not implemented] * @throws ExceptionInterface + * @throws LogicException [When this abstract method is not implemented] */ protected function execute(InputInterface $input, OutputInterface $output): int { @@ -109,7 +109,11 @@ protected function execute(InputInterface $input, OutputInterface $output): int return Command::INVALID; } - $this->migrations->executeMigrations($this, $output, $this->migrations->orderList($migrations[TableInterface::class])); + $this->migrations->executeMigrations( + $this, + $output, + $this->migrations->orderList($migrations[TableInterface::class]) + ); $this->migrations->executeMigrations($this, $output, $migrations[ViewInterface::class]); diff --git a/src/LionBundle/Commands/Lion/New/CommandsCommand.php b/src/LionBundle/Commands/Lion/New/CommandsCommand.php index fc25b596..8a56beda 100644 --- a/src/LionBundle/Commands/Lion/New/CommandsCommand.php +++ b/src/LionBundle/Commands/Lion/New/CommandsCommand.php @@ -200,7 +200,9 @@ protected function execute(InputInterface \$input, OutputInterface \$output): in $output->writeln($this->warningOutput("\t>> COMMAND: {$class}")); - $output->writeln($this->successOutput("\t>> COMMAND: the '{$namespace}\\{$class}' command has been generated")); + $output->writeln( + $this->successOutput("\t>> COMMAND: the '{$namespace}\\{$class}' command has been generated") + ); return Command::SUCCESS; } diff --git a/src/LionBundle/Commands/Lion/New/ControllerCommand.php b/src/LionBundle/Commands/Lion/New/ControllerCommand.php index be85eb36..3ad3f22e 100644 --- a/src/LionBundle/Commands/Lion/New/ControllerCommand.php +++ b/src/LionBundle/Commands/Lion/New/ControllerCommand.php @@ -248,7 +248,8 @@ class {$dataController->class} $output->writeln( $this->successOutput( - "\t>> CONTROLLER: the '{$dataController->namespace}\\{$dataController->class}' controller has been generated" + "\t>> CONTROLLER: the '{$dataController->namespace}\\{$dataController->class}' " . + 'controller has been generated' ) ); diff --git a/src/LionBundle/Commands/Lion/New/InterfaceCommand.php b/src/LionBundle/Commands/Lion/New/InterfaceCommand.php index ed9d2b8c..2518c986 100644 --- a/src/LionBundle/Commands/Lion/New/InterfaceCommand.php +++ b/src/LionBundle/Commands/Lion/New/InterfaceCommand.php @@ -58,13 +58,13 @@ public function setStore(Store $store): InterfaceCommand * * @return void */ - protected function configure(): void - { - $this + protected function configure(): void + { + $this ->setName('new:interface') ->setDescription('Command required for interface creation') ->addArgument('interface', InputArgument::OPTIONAL, 'Interface name', 'ExampleInterface'); - } + } /** * Executes the current command @@ -83,8 +83,8 @@ protected function configure(): void * * @throws LogicException [When this abstract method is not implemented] */ - protected function execute(InputInterface $input, OutputInterface $output): int - { + protected function execute(InputInterface $input, OutputInterface $output): int + { $interface = $input->getArgument('interface'); $this->classFactory->classFactory('app/Interfaces/', $interface); @@ -129,5 +129,5 @@ interface {$class} ); return Command::SUCCESS; - } + } } diff --git a/src/LionBundle/Commands/Lion/New/MigrationCommand.php b/src/LionBundle/Commands/Lion/New/MigrationCommand.php index da8d8d84..86300411 100644 --- a/src/LionBundle/Commands/Lion/New/MigrationCommand.php +++ b/src/LionBundle/Commands/Lion/New/MigrationCommand.php @@ -143,7 +143,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int { $migration = $input->getArgument('migration'); - if (str->of($migration)->test("/.*\//")) { + if (STR->of($migration)->test("/.*\//")) { $output->writeln($this->errorOutput("\t>> migration cannot be inside subfolders")); return Command::INVALID; @@ -177,7 +177,8 @@ protected function execute(InputInterface $input, OutputInterface $output): int $output->writeln( $this->successOutput( - "\t>> MIGRATION: the '{$this->classFactory->getNamespace()}\\{$this->classFactory->getClass()}' migration has been generated" + "\t>> MIGRATION: the '{$this->classFactory->getNamespace()}\\{$this->classFactory->getClass()}' " . + 'migration has been generated' ) ); diff --git a/src/LionBundle/Commands/Lion/New/ModelCommand.php b/src/LionBundle/Commands/Lion/New/ModelCommand.php index fbabd53f..eada0ff2 100644 --- a/src/LionBundle/Commands/Lion/New/ModelCommand.php +++ b/src/LionBundle/Commands/Lion/New/ModelCommand.php @@ -156,7 +156,11 @@ class {$class} $this->str->of($method . $class)->replace('Model', '')->replace('model', '')->concat('DB')->get(), $method === 'read' ? 'stdClass|array|DatabaseCapsuleInterface' : 'stdClass', '', - $method === 'read' ? "return DB::table('')\n\t\t\t->select()\n\t\t\t->getAll();" : "return DB::call('', [])\n\t\t\t->execute();", + ( + $method === 'read' + ? "return DB::table('')\n\t\t\t->select()\n\t\t\t->getAll();" + : "return DB::call('', [])\n\t\t\t->execute();" + ), 'public', $method === 'delete' ? 1 : 2 ); diff --git a/src/LionBundle/Commands/Lion/New/RSACommand.php b/src/LionBundle/Commands/Lion/New/RSACommand.php index d9eaaec9..477df117 100644 --- a/src/LionBundle/Commands/Lion/New/RSACommand.php +++ b/src/LionBundle/Commands/Lion/New/RSACommand.php @@ -59,13 +59,13 @@ public function setStore(Store $store): RSACommand * * @return void */ - protected function configure(): void - { - $this + protected function configure(): void + { + $this ->setName('new:rsa') ->setDescription('Command required to create public and private keys for RSA encryptions') ->addOption('path', 'p', InputOption::VALUE_REQUIRED, 'Save to a specific path?'); - } + } /** * Executes the current command @@ -80,13 +80,13 @@ protected function configure(): void * @param OutputInterface $output [OutputInterface is the interface * implemented by all Output classes] * - * @return int [0 if everything went fine, or an exit code] + * @return int * * @throws Exception * @throws LogicException [When this abstract method is not implemented] */ - protected function execute(InputInterface $input, OutputInterface $output): int - { + protected function execute(InputInterface $input, OutputInterface $output): int + { $path = $input->getOption('path'); $this->rsa->config([ @@ -106,6 +106,6 @@ protected function execute(InputInterface $input, OutputInterface $output): int $output->writeln($this->successOutput("\t>> RSA KEYS: Exported in {$this->rsa->getUrlPath()}private.key")); - return Command::SUCCESS; - } + return Command::SUCCESS; + } } diff --git a/src/LionBundle/Commands/Lion/New/SHFileCommand.php b/src/LionBundle/Commands/Lion/New/SHFileCommand.php index daf60b4d..885ffd8d 100644 --- a/src/LionBundle/Commands/Lion/New/SHFileCommand.php +++ b/src/LionBundle/Commands/Lion/New/SHFileCommand.php @@ -8,6 +8,7 @@ use Lion\Bundle\Helpers\Commands\ClassFactory; use Lion\Command\Command; use Lion\Files\Store; +use LogicException; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; @@ -57,13 +58,13 @@ public function setStore(Store $store): SHFileCommand * * @return void */ - protected function configure(): void - { - $this + protected function configure(): void + { + $this ->setName('new:sh') ->setDescription('Command required to create files with sh extension') ->addArgument('sh', InputArgument::OPTIONAL, 'SH name', 'Example'); - } + } /** * Executes the current command @@ -78,14 +79,12 @@ protected function configure(): void * @param OutputInterface $output [OutputInterface is the interface * implemented by all Output classes] * - * @return int 0 if everything went fine, or an exit code - * - * @throws LogicException When this abstract method is not implemented + * @return int * - * @see setCode() + * @throws LogicException [When this abstract method is not implemented] */ - protected function execute(InputInterface $input, OutputInterface $output): int - { + protected function execute(InputInterface $input, OutputInterface $output): int + { $sh = $input->getArgument('sh'); $this->store->folder('storage/sh/'); @@ -98,6 +97,6 @@ protected function execute(InputInterface $input, OutputInterface $output): int $output->writeln($this->successOutput("\t>> SH: File generated successfully")); - return Command::SUCCESS; - } + return Command::SUCCESS; + } } diff --git a/src/LionBundle/Commands/Lion/New/TestCommand.php b/src/LionBundle/Commands/Lion/New/TestCommand.php index c8377b10..4e53701d 100644 --- a/src/LionBundle/Commands/Lion/New/TestCommand.php +++ b/src/LionBundle/Commands/Lion/New/TestCommand.php @@ -37,7 +37,7 @@ class TestCommand extends Command */ private Store $store; - #[Inject] + #[Inject] public function setClassFactory(ClassFactory $classFactory): TestCommand { $this->classFactory = $classFactory; @@ -58,13 +58,13 @@ public function setStore(Store $store): TestCommand * * @return void */ - protected function configure(): void + protected function configure(): void { - $this + $this ->setName('new:test') ->setDescription('Command required for the creation of new test') ->addArgument('test', InputArgument::OPTIONAL, 'Test name', 'ExampleTest'); - } + } /** * Executes the current command @@ -83,7 +83,7 @@ protected function configure(): void * * @throws LogicException [When this abstract method is not implemented] */ - protected function execute(InputInterface $input, OutputInterface $output): int + protected function execute(InputInterface $input, OutputInterface $output): int { $test = $input->getArgument('test'); @@ -95,9 +95,9 @@ protected function execute(InputInterface $input, OutputInterface $output): int $namespace = $this->classFactory->getNamespace(); - $this->store->folder($folder); + $this->store->folder($folder); - $this->classFactory + $this->classFactory ->create($class, ClassFactory::PHP_EXTENSION, $folder) ->add( <<setName('npm:init') - ->setDescription('Command to create Javascript projects with Vite.JS (Vanilla/Vue/React/Preact/Lit/Svelte/Solid/Qwik/Electron)') + ->setDescription('Command to create Javascript projects with Vite.JS') ->addArgument('project', InputArgument::OPTIONAL, "Project's name", 'vite-project'); } @@ -149,7 +149,10 @@ protected function execute(InputInterface $input, OutputInterface $output): int $this->setViteConfig($project, 18, [ 'replace' => true, - 'content' => "],\n server: {\n host: true,\n port: 5173,\n watch: {\n usePolling: true\n }\n }", + 'content' => ( + "],\n server: {\n host: true,\n port: 5173,\n watch: {\n " . + "usePolling: true\n }\n }" + ), 'search' => ']' ]); } else { @@ -157,7 +160,10 @@ protected function execute(InputInterface $input, OutputInterface $output): int $this->setViteConfig($project, 6, [ 'replace' => true, - 'content' => ",\n server: {\n host: true,\n port: 5173,\n watch: {\n usePolling: true\n }\n }", + 'content' => ( + ",\n server: {\n host: true,\n port: 5173,\n watch: {\n " . + "usePolling: true\n }\n }" + ), 'search' => ',' ]); } diff --git a/src/LionBundle/Commands/Lion/Schedule/ListScheduleCommand.php b/src/LionBundle/Commands/Lion/Schedule/ListScheduleCommand.php index 9318ca40..30dc55a8 100644 --- a/src/LionBundle/Commands/Lion/Schedule/ListScheduleCommand.php +++ b/src/LionBundle/Commands/Lion/Schedule/ListScheduleCommand.php @@ -132,7 +132,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int } /** @var Command $command */ - $command = new $config['command']; + $command = new $config['command'](); $rows[] = [ $this->errorOutput($config['cron']), diff --git a/src/LionBundle/Commands/Lion/Schedule/UpScheduleCommand.php b/src/LionBundle/Commands/Lion/Schedule/UpScheduleCommand.php index 98732626..6600b98d 100644 --- a/src/LionBundle/Commands/Lion/Schedule/UpScheduleCommand.php +++ b/src/LionBundle/Commands/Lion/Schedule/UpScheduleCommand.php @@ -164,7 +164,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int } /** @var Command $commandObject */ - $commandObject = new $config['command']; + $commandObject = new $config['command'](); $command = "{$config['cron']} lion cd {$_ENV['CRONTAB_PROJECT_PATH']} && "; @@ -183,7 +183,9 @@ protected function execute(InputInterface $input, OutputInterface $output): int $this->store->folder($this->store->normalizePath('./storage/logs/cron/')); - if (isError($this->store->exist($this->store->normalizePath('./storage/logs/cron/') . $config['logName']))) { + $exist = $this->store->exist($this->store->normalizePath('./storage/logs/cron/') . $config['logName']); + + if (isError($exist)) { $this->classFactory ->create( $config['logName'], diff --git a/src/LionBundle/Commands/Lion/ServerCommand.php b/src/LionBundle/Commands/Lion/ServerCommand.php index 70a9c2b1..6a28f92b 100644 --- a/src/LionBundle/Commands/Lion/ServerCommand.php +++ b/src/LionBundle/Commands/Lion/ServerCommand.php @@ -23,14 +23,14 @@ class ServerCommand extends Command * * @return void */ - protected function configure(): void + protected function configure(): void { - $this + $this ->setName('serve') ->setDescription('Created command to start server locally') ->addOption('port', 'p', InputOption::VALUE_OPTIONAL, 'Do you want to set your own port?', 8000) ->addOption('host', 's', InputOption::VALUE_OPTIONAL, 'Do you want to set your own host?', 'localhost'); - } + } /** * Executes the current command @@ -49,9 +49,9 @@ protected function configure(): void * * @throws LogicException [When this abstract method is not implemented] */ - protected function execute(InputInterface $input, OutputInterface $output): int + protected function execute(InputInterface $input, OutputInterface $output): int { - $port = $input->getOption('port'); + $port = $input->getOption('port'); $host = $input->getOption('host'); @@ -76,5 +76,5 @@ protected function execute(InputInterface $input, OutputInterface $output): int ProcessCommand::run("php -S {$host}:{$port} -t public"); return Command::SUCCESS; - } + } } diff --git a/src/LionBundle/Helpers/Bundle/constants.php b/src/LionBundle/Helpers/Bundle/constants.php index f82f3235..82278b07 100644 --- a/src/LionBundle/Helpers/Bundle/constants.php +++ b/src/LionBundle/Helpers/Bundle/constants.php @@ -1,5 +1,12 @@ capture()); - -/** - * [Object with properties captured in an HTTP request] - */ -define('ssl', (new Request())->capture()); +define('REQUEST', (new Request())->capture()); /** * [Object of Response class to generate response objects] * * @var Response */ -const response = new Response(); +const RESPONSE = new Response(); /** * Object of class Str * * @var Str */ -const str = new Str(); +const STR = new Str(); /** * Object of class Arr * * @var Arr */ -const arr = new Arr(); +const ARR = new Arr(); diff --git a/src/LionBundle/Helpers/Bundle/helpers.php b/src/LionBundle/Helpers/Bundle/helpers.php index bc92c68a..56530983 100644 --- a/src/LionBundle/Helpers/Bundle/helpers.php +++ b/src/LionBundle/Helpers/Bundle/helpers.php @@ -117,7 +117,7 @@ function public_path(string $path): string */ function finish(mixed $response = null): void { - response->finish(null === $response ? success() : $response); + RESPONSE->finish(null === $response ? success() : $response); } } @@ -138,7 +138,7 @@ function response( int $code = Http::OK, mixed $data = null ): stdClass { - return response->custom($status, $message, $code, $data); + return RESPONSE->custom($status, $message, $code, $data); } } @@ -154,7 +154,7 @@ function response( */ function success(?string $message = null, int $code = Http::OK, mixed $data = null): stdClass { - return response->success($message, $code, $data); + return RESPONSE->success($message, $code, $data); } } @@ -170,7 +170,7 @@ function success(?string $message = null, int $code = Http::OK, mixed $data = nu */ function error(?string $message = null, int $code = Http::INTERNAL_SERVER_ERROR, mixed $data = null): stdClass { - return response->error($message, $code, $data); + return RESPONSE->error($message, $code, $data); } } @@ -186,7 +186,7 @@ function error(?string $message = null, int $code = Http::INTERNAL_SERVER_ERROR, */ function warning(?string $message = null, int $code = Http::OK, mixed $data = null): stdClass { - return response->warning($message, $code, $data); + return RESPONSE->warning($message, $code, $data); } } @@ -202,7 +202,7 @@ function warning(?string $message = null, int $code = Http::OK, mixed $data = nu */ function info(?string $message = null, int $code = Http::OK, mixed $data = null): stdClass { - return response->info($message, $code, $data); + return RESPONSE->info($message, $code, $data); } } @@ -293,7 +293,7 @@ function isError(stdClass|array $response): bool return false; } - return in_array($response->status, response->getErrors()); + return in_array($response->status, RESPONSE->getErrors()); } } diff --git a/src/LionBundle/Helpers/Commands/ClassFactory.php b/src/LionBundle/Helpers/Commands/ClassFactory.php index ce96969d..8827a0cd 100644 --- a/src/LionBundle/Helpers/Commands/ClassFactory.php +++ b/src/LionBundle/Helpers/Commands/ClassFactory.php @@ -262,7 +262,8 @@ public function getProperty( 'type' => (object) [ 'camel' => ($finalVisibility . "?{$type} $" . "{$camel} = null;"), 'snake' => ( - "/**\n\t * [Property for {$propertyName}]\n\t *\n\t * @var {$type}|null $" . "{$snake}\n\t */\n" . + "/**\n\t * [Property for {$propertyName}]\n\t *\n\t * @var {$type}|null $" . + "{$snake}\n\t */\n" . "\t{$finalVisibility}?{$type} $" . "{$snake} = null;\n" ) ], diff --git a/src/LionBundle/Helpers/Commands/Selection/MenuCommand.php b/src/LionBundle/Helpers/Commands/Selection/MenuCommand.php index 1e14b98e..954fae2a 100644 --- a/src/LionBundle/Helpers/Commands/Selection/MenuCommand.php +++ b/src/LionBundle/Helpers/Commands/Selection/MenuCommand.php @@ -408,7 +408,8 @@ protected function getTableForeigns( kcu.column_name AS "COLUMN_NAME" FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name - JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name + JOIN information_schema.constraint_column_usage AS ccu + ON ccu.constraint_name = tc.constraint_name WHERE tc.constraint_type = ? AND tc.table_schema = ? AND tc.table_name = ? diff --git a/src/LionBundle/Helpers/Http/Fetch.php b/src/LionBundle/Helpers/Http/Fetch.php index 2317fe47..f050bd02 100644 --- a/src/LionBundle/Helpers/Http/Fetch.php +++ b/src/LionBundle/Helpers/Http/Fetch.php @@ -36,7 +36,8 @@ public function __construct( private readonly string $httpMethod, private readonly string $uri, private readonly array $options = [] - ) {} + ) { + } /** * Returns an HTTP configuration object diff --git a/src/LionBundle/Helpers/Http/FetchConfiguration.php b/src/LionBundle/Helpers/Http/FetchConfiguration.php index 65d5ea43..6d7fb848 100644 --- a/src/LionBundle/Helpers/Http/FetchConfiguration.php +++ b/src/LionBundle/Helpers/Http/FetchConfiguration.php @@ -20,7 +20,8 @@ class FetchConfiguration */ public function __construct( private readonly array $configuration = [] - ) {} + ) { + } /** * Returns configuration data diff --git a/src/LionBundle/Helpers/Http/Routes.php b/src/LionBundle/Helpers/Http/Routes.php index b34f9721..4965d6e1 100644 --- a/src/LionBundle/Helpers/Http/Routes.php +++ b/src/LionBundle/Helpers/Http/Routes.php @@ -41,6 +41,6 @@ public static function setMiddleware(array $middleware): Routes { self::$middleware = $middleware; - return new static; + return new static(); } } diff --git a/tests/Commands/Lion/DB/CrudCommandTest.php b/tests/Commands/Lion/DB/CrudCommandTest.php index 7fc6565d..303ec9b1 100644 --- a/tests/Commands/Lion/DB/CrudCommandTest.php +++ b/tests/Commands/Lion/DB/CrudCommandTest.php @@ -20,20 +20,15 @@ use Lion\Test\Test; use PHPUnit\Framework\Attributes\Test as Testing; use Symfony\Component\Console\Tester\CommandTester; -use Tests\Providers\ConnectionProviderTrait; class CrudCommandTest extends Test { - use ConnectionProviderTrait; - private const string ENTITY = 'users'; private CommandTester $commandTester; protected function setUp(): void { - $this->runDatabaseConnections(); - $this->createTables(); $kernel = new Kernel(); diff --git a/tests/Commands/Lion/DB/DBCapsuleCommandTest.php b/tests/Commands/Lion/DB/DBCapsuleCommandTest.php index 46b60a5c..4c37223b 100644 --- a/tests/Commands/Lion/DB/DBCapsuleCommandTest.php +++ b/tests/Commands/Lion/DB/DBCapsuleCommandTest.php @@ -13,12 +13,9 @@ use PHPUnit\Framework\Attributes\Test as Testing; use Symfony\Component\Console\Application; use Symfony\Component\Console\Tester\CommandTester; -use Tests\Providers\ConnectionProviderTrait; class DBCapsuleCommandTest extends Test { - use ConnectionProviderTrait; - private const string URL_PATH = './database/Class/LionDatabase/MySQL/'; private const string NAMESPACE_CLASS = 'Database\\Class\\LionDatabase\\MySQL\\'; private const string ENTITY = 'test'; @@ -30,8 +27,6 @@ class DBCapsuleCommandTest extends Test protected function setUp(): void { - $this->runDatabaseConnections(); - $this->createDirectory(self::URL_PATH); $this->createTables(); diff --git a/tests/Commands/Lion/DB/DBSeedCommandTest.php b/tests/Commands/Lion/DB/DBSeedCommandTest.php index 7a4e9bf4..024cf411 100644 --- a/tests/Commands/Lion/DB/DBSeedCommandTest.php +++ b/tests/Commands/Lion/DB/DBSeedCommandTest.php @@ -12,12 +12,9 @@ use Lion\Test\Test; use PHPUnit\Framework\Attributes\Test as Testing; use Symfony\Component\Console\Tester\CommandTester; -use Tests\Providers\ConnectionProviderTrait; class DBSeedCommandTest extends Test { - use ConnectionProviderTrait; - private const string URL_PATH = './database/Seed/'; private const string NAMESPACE_CLASS = 'Database\\Seed\\'; private const string CLASS_NAME = 'TestSeed'; @@ -32,8 +29,6 @@ class DBSeedCommandTest extends Test protected function setUp(): void { - $this->runDatabaseConnections(); - $this->createDirectory(self::URL_PATH); $application = (new Kernel())->getApplication(); diff --git a/tests/Commands/Lion/DB/RulesDBCommandTest.php b/tests/Commands/Lion/DB/RulesDBCommandTest.php index 40c1a692..25bc6b81 100644 --- a/tests/Commands/Lion/DB/RulesDBCommandTest.php +++ b/tests/Commands/Lion/DB/RulesDBCommandTest.php @@ -15,12 +15,9 @@ use PHPUnit\Framework\Attributes\Test as Testing; use Symfony\Component\Console\Application; use Symfony\Component\Console\Tester\CommandTester; -use Tests\Providers\ConnectionProviderTrait; class RulesDBCommandTest extends Test { - use ConnectionProviderTrait; - private const string ENTITY = 'users'; private const string IDRULE_NAMESPACE = 'App\\Rules\\LionDatabase\\MySQL\\Users\\IdRule'; private const string NAMERULE_NAMESPACE = 'App\\Rules\\LionDatabase\\MySQL\\Users\\NameRule'; @@ -32,8 +29,6 @@ class RulesDBCommandTest extends Test protected function setUp(): void { - $this->runDatabaseConnections(); - $this->createTables(); $application = new Application(); diff --git a/tests/Commands/Lion/DB/ShowDatabasesCommandTest.php b/tests/Commands/Lion/DB/ShowDatabasesCommandTest.php index 7c74d4c6..a088e2bf 100644 --- a/tests/Commands/Lion/DB/ShowDatabasesCommandTest.php +++ b/tests/Commands/Lion/DB/ShowDatabasesCommandTest.php @@ -11,12 +11,9 @@ use PHPUnit\Framework\Attributes\Test as Testing; use Symfony\Component\Console\Application; use Symfony\Component\Console\Tester\CommandTester; -use Tests\Providers\ConnectionProviderTrait; class ShowDatabasesCommandTest extends Test { - use ConnectionProviderTrait; - private const string MYSQL = 'mysql'; private const string PORT = '3306'; private const string DATABASE_NAME = 'lion_database'; @@ -26,8 +23,6 @@ class ShowDatabasesCommandTest extends Test protected function setUp(): void { - $this->runDatabaseConnections(); - $application = new Application(); $application->add((new Container())->resolve(ShowDatabasesCommand::class)); diff --git a/tests/Commands/Lion/Migrations/EmptyMigrationsCommandTest.php b/tests/Commands/Lion/Migrations/EmptyMigrationsCommandTest.php index 10e0baec..1aefdf89 100644 --- a/tests/Commands/Lion/Migrations/EmptyMigrationsCommandTest.php +++ b/tests/Commands/Lion/Migrations/EmptyMigrationsCommandTest.php @@ -10,20 +10,15 @@ use PHPUnit\Framework\Attributes\Test as Testing; use Symfony\Component\Console\Application; use Symfony\Component\Console\Tester\CommandTester; -use Tests\Providers\ConnectionProviderTrait; class EmptyMigrationsCommandTest extends Test { - use ConnectionProviderTrait; - - const OUTPUT_MESSAGE = 'all tables have been truncated'; + private const string OUTPUT_MESSAGE = 'all tables have been truncated'; private CommandTester $commandTester; protected function setUp(): void { - $this->runDatabaseConnections(); - $application = new Application(); $application->add(new EmptyMigrationsCommand()); diff --git a/tests/Commands/Lion/New/MigrationCommandTest.php b/tests/Commands/Lion/New/MigrationCommandTest.php index da41e319..b372bd51 100644 --- a/tests/Commands/Lion/New/MigrationCommandTest.php +++ b/tests/Commands/Lion/New/MigrationCommandTest.php @@ -21,12 +21,9 @@ use ReflectionException; use Symfony\Component\Console\Application; use Symfony\Component\Console\Tester\CommandTester; -use Tests\Providers\ConnectionProviderTrait; class MigrationCommandTest extends Test { - use ConnectionProviderTrait; - private const string MIGRATION_NAME = 'test-migration'; private const string CLASS_NAME = 'TestMigration'; private const string NAMESPACE_MYSQL_TABLE = 'Database\\Migrations\\LionDatabase\\MySQL\\Tables\\'; @@ -52,8 +49,6 @@ class MigrationCommandTest extends Test */ protected function setUp(): void { - $this->runDatabaseConnections(); - $this->migrationCommand = (new MigrationCommand()) ->setArr(new Arr()) ->setStore(new Store()) diff --git a/tests/Commands/Lion/Schedule/RunQueuedTasksCommandTest.php b/tests/Commands/Lion/Schedule/RunQueuedTasksCommandTest.php index 87fd230c..c407c20a 100644 --- a/tests/Commands/Lion/Schedule/RunQueuedTasksCommandTest.php +++ b/tests/Commands/Lion/Schedule/RunQueuedTasksCommandTest.php @@ -10,15 +10,10 @@ use Lion\Test\Test; use ReflectionException; use Symfony\Component\Console\Application; -use Symfony\Component\Console\Tester\CommandTester; use PHPUnit\Framework\Attributes\Test as Testing; -use Tests\Providers\ConnectionProviderTrait; class RunQueuedTasksCommandTest extends Test { - use ConnectionProviderTrait; - - private CommandTester $commandTester; private RunQueuedTasksCommand $runQueuedTasksCommand; /** @@ -26,8 +21,6 @@ class RunQueuedTasksCommandTest extends Test */ protected function setUp(): void { - $this->runDatabaseConnections(); - $this->runQueuedTasksCommand = (new RunQueuedTasksCommand()) ->setContainer(new Container()); @@ -35,8 +28,6 @@ protected function setUp(): void $application->add($this->runQueuedTasksCommand); - $this->commandTester = new CommandTester($application->find('schedule:run')); - $this->initReflection($this->runQueuedTasksCommand); } diff --git a/tests/Helpers/Bundle/ConstantsTest.php b/tests/Helpers/Bundle/ConstantsTest.php deleted file mode 100644 index 953b24f7..00000000 --- a/tests/Helpers/Bundle/ConstantsTest.php +++ /dev/null @@ -1,48 +0,0 @@ -assertTrue(defined('request')); - $this->assertIsObject(request); - } - - #[Testing] - public function responseConstant(): void - { - $this->assertTrue(defined('response')); - $this->assertInstanceOf(Response::class, response); - } - - #[Testing] - public function strConstant(): void - { - $this->assertTrue(defined('str')); - $this->assertInstanceOf(Str::class, str); - } - - #[Testing] - public function arrConstant(): void - { - $this->assertTrue(defined('arr')); - $this->assertInstanceOf(Arr::class, arr); - } - - #[Testing] - public function nullValueConstant(): void - { - $this->assertNull(null); - } -} diff --git a/tests/Helpers/Commands/Migrations/MigrationsTest.php b/tests/Helpers/Commands/Migrations/MigrationsTest.php index 65c582f7..5b04c4d8 100644 --- a/tests/Helpers/Commands/Migrations/MigrationsTest.php +++ b/tests/Helpers/Commands/Migrations/MigrationsTest.php @@ -22,12 +22,9 @@ use ReflectionException; use Symfony\Component\Console\Application; use Symfony\Component\Console\Tester\CommandTester; -use Tests\Providers\ConnectionProviderTrait; class MigrationsTest extends Test { - use ConnectionProviderTrait; - private const string MIGRATION_NAME = 'test-migration'; private const string CLASS_NAME = 'TestMigration'; private const string CLASS_NAMESPACE_TABLE = 'Database\\Migrations\\LionDatabase\\MySQL\\Tables\\'; @@ -48,8 +45,6 @@ class MigrationsTest extends Test */ protected function setUp(): void { - $this->runDatabaseConnections(); - $this->store = new Store(); $this->migrations = (new Migrations()) diff --git a/tests/Helpers/Commands/Selection/MenuCommandTest.php b/tests/Helpers/Commands/Selection/MenuCommandTest.php index 71cdbd32..7a0ddb55 100644 --- a/tests/Helpers/Commands/Selection/MenuCommandTest.php +++ b/tests/Helpers/Commands/Selection/MenuCommandTest.php @@ -18,12 +18,10 @@ use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Tester\CommandTester; -use Tests\Providers\ConnectionProviderTrait; use Tests\Providers\Helpers\MenuCommandProviderTrait; class MenuCommandTest extends Test { - use ConnectionProviderTrait; use MenuCommandProviderTrait; private const string VITE_PATH = './vite/'; @@ -39,8 +37,6 @@ class MenuCommandTest extends Test */ protected function setUp(): void { - $this->runDatabaseConnections(); - $this->menuCommand = (new Container())->resolve(MenuCommand::class); $this->initReflection($this->menuCommand); diff --git a/tests/Helpers/DatabaseEngineTest.php b/tests/Helpers/DatabaseEngineTest.php index cc0ac712..34a3612c 100644 --- a/tests/Helpers/DatabaseEngineTest.php +++ b/tests/Helpers/DatabaseEngineTest.php @@ -9,18 +9,13 @@ use Lion\Test\Test; use PHPUnit\Framework\Attributes\Test as Testing; use PHPUnit\Framework\Attributes\TestWith; -use Tests\Providers\ConnectionProviderTrait; class DatabaseEngineTest extends Test { - use ConnectionProviderTrait; - private DatabaseEngine $databaseEngine; protected function setUp(): void { - $this->runDatabaseConnections(); - $this->databaseEngine = new DatabaseEngine(); } diff --git a/tests/Providers/ConnectionProviderTrait.php b/tests/Providers/ConnectionProviderTrait.php deleted file mode 100644 index 5f83075f..00000000 --- a/tests/Providers/ConnectionProviderTrait.php +++ /dev/null @@ -1,43 +0,0 @@ - env('DB_NAME'), - 'connections' => [ - env('DB_NAME') => [ - 'type' => env('DB_TYPE'), - 'host' => env('DB_HOST'), - 'port' => env('DB_PORT'), - 'dbname' => env('DB_NAME'), - 'user' => env('DB_USER'), - 'password' => env('DB_PASSWORD'), - ], - env('DB_NAME_TEST') => [ - 'type' => env('DB_TYPE_TEST'), - 'host' => env('DB_HOST_TEST'), - 'port' => env('DB_PORT_TEST'), - 'dbname' => env('DB_NAME'), - 'user' => env('DB_USER_TEST'), - 'password' => env('DB_PASSWORD_TEST'), - ], - env('DB_NAME_TEST_POSTGRESQL') => [ - 'type' => env('DB_TYPE_TEST_POSTGRESQL'), - 'host' => env('DB_HOST_TEST_POSTGRESQL'), - 'port' => env('DB_PORT_TEST_POSTGRESQL'), - 'dbname' => env('DB_NAME'), - 'user' => env('DB_USER_TEST_POSTGRESQL'), - 'password' => env('DB_PASSWORD_TEST_POSTGRESQL'), - ], - ], - ]); - } -} diff --git a/tests/Providers/NameRuleProvider.php b/tests/Providers/NameProviderRule.php similarity index 100% rename from tests/Providers/NameRuleProvider.php rename to tests/Providers/NameProviderRule.php diff --git a/tests/TestingTest.php b/tests/TestingTest.php deleted file mode 100644 index db1bb02e..00000000 --- a/tests/TestingTest.php +++ /dev/null @@ -1,15 +0,0 @@ -expectNotToPerformAssertions(); - } -} diff --git a/tests/bootstrap.php b/tests/bootstrap.php index dc029abd..87c42d1e 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -4,6 +4,8 @@ define('LION_START', microtime(true)); +define('IS_INDEX', false); + /** * ----------------------------------------------------------------------------- * Register The Auto Loader @@ -11,25 +13,60 @@ * Composer provides a convenient, automatically generated class loader for * this application * ----------------------------------------------------------------------------- - **/ + */ require_once(__DIR__ . '/../vendor/autoload.php'); use Dotenv\Dotenv; +use Lion\Database\Driver; use Lion\Files\Store; -define('IS_INDEX', false); - -define('DEVELOPMENT_ENVIRONMENT', 'dev' === env('DEVELOPMENT_ENVIRONMENT')); - /** * ----------------------------------------------------------------------------- * Register environment variable loader automatically * ----------------------------------------------------------------------------- * .dotenv provides an easy way to access environment variables with $_ENV * ----------------------------------------------------------------------------- - **/ + */ if (isSuccess((new Store())->exist(__DIR__ . '/../.env'))) { Dotenv::createMutable(__DIR__ . '/../')->load(); } + +/** + * ----------------------------------------------------------------------------- + * Start database service + * ----------------------------------------------------------------------------- + * describe connections to establish connecting to multiple databases + * ----------------------------------------------------------------------------- + */ + +Driver::run([ + 'default' => env('DB_NAME'), + 'connections' => [ + env('DB_NAME') => [ + 'type' => env('DB_TYPE'), + 'host' => env('DB_HOST'), + 'port' => env('DB_PORT'), + 'dbname' => env('DB_NAME'), + 'user' => env('DB_USER'), + 'password' => env('DB_PASSWORD'), + ], + env('DB_NAME_TEST') => [ + 'type' => env('DB_TYPE_TEST'), + 'host' => env('DB_HOST_TEST'), + 'port' => env('DB_PORT_TEST'), + 'dbname' => env('DB_NAME'), + 'user' => env('DB_USER_TEST'), + 'password' => env('DB_PASSWORD_TEST'), + ], + env('DB_NAME_TEST_POSTGRESQL') => [ + 'type' => env('DB_TYPE_TEST_POSTGRESQL'), + 'host' => env('DB_HOST_TEST_POSTGRESQL'), + 'port' => env('DB_PORT_TEST_POSTGRESQL'), + 'dbname' => env('DB_NAME'), + 'user' => env('DB_USER_TEST_POSTGRESQL'), + 'password' => env('DB_PASSWORD_TEST_POSTGRESQL'), + ], + ], +]);