From db4a3b4c4690f4d1748e583a13308fd5581e99dc Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 22:57:25 +0100 Subject: [PATCH 01/23] #151 - Remove redundant comments --- src/Db/Dialect/DialectMysql.php | 10 +--------- src/Db/FieldDefinition.php | 18 +----------------- 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/src/Db/Dialect/DialectMysql.php b/src/Db/Dialect/DialectMysql.php index 7b7cdc8..ca5d632 100644 --- a/src/Db/Dialect/DialectMysql.php +++ b/src/Db/Dialect/DialectMysql.php @@ -19,13 +19,7 @@ class DialectMysql extends Mysql { /** - * Generates SQL to add an foreign key to a table. - * - * @param string $tableName - * @param string $schemaName - * @param ReferenceInterface $reference - * - * @return string + * Generates SQL to add a foreign key to a table. */ public function addForeignKey(string $tableName, string $schemaName, ReferenceInterface $reference): string { @@ -52,8 +46,6 @@ public function addForeignKey(string $tableName, string $schemaName, ReferenceIn /** * Generates SQL to check DB parameter FOREIGN_KEY_CHECKS. - * - * @return string */ public function getForeignKeyChecks(): string { diff --git a/src/Db/FieldDefinition.php b/src/Db/FieldDefinition.php index 0fe6c20..8dad426 100644 --- a/src/Db/FieldDefinition.php +++ b/src/Db/FieldDefinition.php @@ -19,24 +19,12 @@ class FieldDefinition { - /** - * @var string - */ private string $name; - /** - * @var ColumnInterface - */ private ColumnInterface $currentColumn; - /** - * @var FieldDefinition|null - */ private ?FieldDefinition $previousField; - /** - * @var FieldDefinition|null - */ private ?FieldDefinition $nextField; public function __construct( @@ -124,16 +112,12 @@ public function isChanged(FieldDefinition $comparingFieldDefinition): bool public function isChangedName(FieldDefinition $comparingFieldDefinition): bool { - return $this->currentColumn->getName() !== $comparingFieldDefinition->getColumn() - ->getName() - ; + return $this->currentColumn->getName() !== $comparingFieldDefinition->getColumn()->getName(); } public function isChangedData(FieldDefinition $comparingFieldDefinition): bool { $paramsToCheck = get_class_methods(ColumnInterface::class); - //unset($paramsToCheck['getName']); // TODO: Validate if this even needed. - $comparingFieldColumn = $comparingFieldDefinition->getColumn(); foreach ($paramsToCheck as $method) { if ($this->currentColumn->$method() !== $comparingFieldColumn->$method()) { From 5fb10a60938f70d555c09d4b239f037e4ef384a2 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 23:03:02 +0100 Subject: [PATCH 02/23] #151 - Change usage from `getenv()` to `$_ENV` --- tests/_data/cli/migrations.php | 10 +++++----- tests/_support/Helper/Mysql.php | 10 +++++----- tests/_support/Helper/Postgresql.php | 24 +++++++++--------------- tests/cli/RunCest.php | 2 +- tests/postgresql/MigrationsCest.php | 2 +- 5 files changed, 21 insertions(+), 27 deletions(-) diff --git a/tests/_data/cli/migrations.php b/tests/_data/cli/migrations.php index 980503b..3da1f13 100644 --- a/tests/_data/cli/migrations.php +++ b/tests/_data/cli/migrations.php @@ -23,11 +23,11 @@ return new Config([ 'database' => [ 'adapter' => 'mysql', - 'host' => getenv('MYSQL_TEST_DB_HOST'), - 'port' => getenv('MYSQL_TEST_DB_PORT'), - 'username' => getenv('MYSQL_TEST_DB_USER'), - 'password' => getenv('MYSQL_TEST_DB_PASSWORD'), - 'dbname' => getenv('MYSQL_TEST_DB_DATABASE'), + 'host' => $_ENV['MYSQL_TEST_DB_HOST'], + 'port' => $_ENV['MYSQL_TEST_DB_PORT'], + 'username' => $_ENV['MYSQL_TEST_DB_USER'], + 'password' => $_ENV['MYSQL_TEST_DB_PASSWORD'], + 'dbname' => $_ENV['MYSQL_TEST_DB_DATABASE'], ], 'application' => [ 'logInDb' => true, diff --git a/tests/_support/Helper/Mysql.php b/tests/_support/Helper/Mysql.php index 7b64b58..8908ff7 100644 --- a/tests/_support/Helper/Mysql.php +++ b/tests/_support/Helper/Mysql.php @@ -88,11 +88,11 @@ public function getMigrationsConfig(): Config return new Config([ 'database' => [ 'adapter' => 'mysql', - 'host' => getenv('MYSQL_TEST_DB_HOST'), - 'port' => getenv('MYSQL_TEST_DB_PORT'), - 'username' => getenv('MYSQL_TEST_DB_USER'), - 'password' => getenv('MYSQL_TEST_DB_PASSWORD'), - 'dbname' => getenv('MYSQL_TEST_DB_DATABASE'), + 'host' => $_ENV['MYSQL_TEST_DB_HOST'], + 'port' => $_ENV['MYSQL_TEST_DB_PORT'], + 'username' => $_ENV['MYSQL_TEST_DB_USER'], + 'password' => $_ENV['MYSQL_TEST_DB_PASSWORD'], + 'dbname' => $_ENV['MYSQL_TEST_DB_DATABASE'], ], 'application' => [ 'logInDb' => true, diff --git a/tests/_support/Helper/Postgresql.php b/tests/_support/Helper/Postgresql.php index d9a4ae5..34e6332 100644 --- a/tests/_support/Helper/Postgresql.php +++ b/tests/_support/Helper/Postgresql.php @@ -35,13 +35,13 @@ public function _initialize() ; unset($options['adapter']); - self::$defaultSchema = getenv('POSTGRES_TEST_DB_SCHEMA'); + self::$defaultSchema = $_ENV['POSTGRES_TEST_DB_SCHEMA']; /** @var AbstractPdo $db */ self::$phalconDb = new PdoPostgresql($options); self::$phalconDb->setDialect(new DialectPostgresql()); } - public function _before(TestInterface $test) + public function _before(TestInterface $test): void { self::$phalconDb->execute('DROP SCHEMA IF EXISTS "' . self::$defaultSchema . '" CASCADE'); self::$phalconDb->execute('CREATE SCHEMA "' . self::$defaultSchema . '";'); @@ -53,7 +53,7 @@ public function _before(TestInterface $test) * * @param TestInterface $test */ - public function _after(TestInterface $test) + public function _after(TestInterface $test): void { /** * Cleanup Database @@ -66,9 +66,6 @@ public function _after(TestInterface $test) Migrations::resetStorage(); } - /** - * @return AbstractPdo - */ public function getPhalconDb(): AbstractPdo { return self::$phalconDb; @@ -82,12 +79,12 @@ public function getMigrationsConfig(): Config return new Config([ 'database' => [ 'adapter' => 'postgresql', - 'host' => getenv('POSTGRES_TEST_DB_HOST'), - 'port' => getenv('POSTGRES_TEST_DB_PORT'), - 'username' => getenv('POSTGRES_TEST_DB_USER'), - 'password' => getenv('POSTGRES_TEST_DB_PASSWORD'), - 'dbname' => getenv('POSTGRES_TEST_DB_DATABASE'), - 'schema' => getenv('POSTGRES_TEST_DB_SCHEMA'), + 'host' => $_ENV['POSTGRES_TEST_DB_HOST'], + 'port' => $_ENV['POSTGRES_TEST_DB_PORT'], + 'username' => $_ENV['POSTGRES_TEST_DB_USER'], + 'password' => $_ENV['POSTGRES_TEST_DB_PASSWORD'], + 'dbname' => $_ENV['POSTGRES_TEST_DB_DATABASE'], + 'schema' => $_ENV['POSTGRES_TEST_DB_SCHEMA'], ], 'application' => [ 'logInDb' => true, @@ -95,9 +92,6 @@ public function getMigrationsConfig(): Config ]); } - /** - * @return string - */ public function getDefaultSchema(): string { return self::$defaultSchema; diff --git a/tests/cli/RunCest.php b/tests/cli/RunCest.php index b095681..f8c7235 100644 --- a/tests/cli/RunCest.php +++ b/tests/cli/RunCest.php @@ -132,7 +132,7 @@ public function skipForeignKeys(CliTester $I): void */ protected function createTablesWithForeignKey(CliTester $I, string $table1, string $table2): void { - $schema = getenv('MYSQL_TEST_DB_DATABASE'); + $schema = $_ENV['MYSQL_TEST_DB_DATABASE']; $I->getPhalconDb() ->createTable($table1, $schema, [ diff --git a/tests/postgresql/MigrationsCest.php b/tests/postgresql/MigrationsCest.php index 1bf1ae1..548fe01 100644 --- a/tests/postgresql/MigrationsCest.php +++ b/tests/postgresql/MigrationsCest.php @@ -78,7 +78,7 @@ public function postgresPhalconMigrationsTable(PostgresqlTester $I): void */ public function generateWithExportOnCreate(PostgresqlTester $I): void { - $dbName = getenv('POSTGRES_TEST_DB_SCHEMA'); + $dbName = $_ENV['POSTGRES_TEST_DB_SCHEMA']; $tableName = 'on_create'; $migrationsDir = codecept_output_dir(__FUNCTION__); From 0723ed849c2459c00987df7a440936a5150f5428 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 23:03:15 +0100 Subject: [PATCH 03/23] #151 - Remove 'NO_AUTO_CREATE_USER' sql_mode --- tests/mysql.suite.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/mysql.suite.yml b/tests/mysql.suite.yml index a0837d2..c17737e 100644 --- a/tests/mysql.suite.yml +++ b/tests/mysql.suite.yml @@ -14,7 +14,7 @@ modules: initial_queries: - "SET NAMES utf8;" - "CREATE DATABASE IF NOT EXISTS `%MYSQL_TEST_DB_DATABASE%`" - - "SET GLOBAL sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'" + - "SET GLOBAL sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'" - "SET FOREIGN_KEY_CHECKS=1" - "SET GLOBAL FOREIGN_KEY_CHECKS=1" - "USE `%MYSQL_TEST_DB_DATABASE%`" From a3707d2c2ee09af5c4e937b230388edef7a00c90 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 23:03:41 +0100 Subject: [PATCH 04/23] #151 - Update docker directories --- docker-compose.yml | 26 ++++++++---- docker/8.0/Dockerfile | 2 +- docker/8.1/Dockerfile | 2 +- docker/{7.4 => 8.2}/.bashrc | 0 docker/{7.4 => 8.2}/Dockerfile | 6 +-- docker/{7.4 => 8.2}/extra.ini | 0 docker/8.3/.bashrc | 75 ++++++++++++++++++++++++++++++++++ docker/8.3/Dockerfile | 60 +++++++++++++++++++++++++++ docker/8.3/extra.ini | 8 ++++ 9 files changed, 165 insertions(+), 14 deletions(-) rename docker/{7.4 => 8.2}/.bashrc (100%) rename docker/{7.4 => 8.2}/Dockerfile (94%) rename docker/{7.4 => 8.2}/extra.ini (100%) create mode 100644 docker/8.3/.bashrc create mode 100644 docker/8.3/Dockerfile create mode 100644 docker/8.3/extra.ini diff --git a/docker-compose.yml b/docker-compose.yml index b3f650b..3d36cf6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,14 +3,6 @@ version: '3' services: - migrations-7.4: - container_name: migrations-7.4 - hostname: migrations-74 - build: docker/7.4 - working_dir: /srv - volumes: - - .:/srv - migrations-8.0: container_name: migrations-8.0 hostname: migrations-80 @@ -27,9 +19,25 @@ services: volumes: - .:/srv + migrations-8.2: + container_name: migrations-8.2 + hostname: migrations-82 + build: docker/8.2 + working_dir: /srv + volumes: + - .:/srv + + migrations-8.3: + container_name: migrations-8.3 + hostname: migrations-83 + build: docker/8.3 + working_dir: /srv + volumes: + - .:/srv + mysql: container_name: migrations-mysql - image: mysql:5.7 + image: mysql:8.0 environment: - MYSQL_ROOT_PASSWORD=secret - MYSQL_USER=phalcon diff --git a/docker/8.0/Dockerfile b/docker/8.0/Dockerfile index 10b664d..9e8605b 100644 --- a/docker/8.0/Dockerfile +++ b/docker/8.0/Dockerfile @@ -5,7 +5,7 @@ LABEL vendor="Phalcon" \ maintainer="Phalcon Team " \ description="Phalcon Migrations working environment" -ENV PHALCON_VERSION="5.0.1" \ +ENV PHALCON_VERSION="5.5.0" \ PHP_VERSION="8.0" ADD ./extra.ini /usr/local/etc/php/conf.d/ diff --git a/docker/8.1/Dockerfile b/docker/8.1/Dockerfile index 0866c08..ea4624b 100644 --- a/docker/8.1/Dockerfile +++ b/docker/8.1/Dockerfile @@ -5,7 +5,7 @@ LABEL vendor="Phalcon" \ maintainer="Phalcon Team " \ description="Phalcon Migrations working environment" -ENV PHALCON_VERSION="5.0.1" \ +ENV PHALCON_VERSION="5.5.0" \ PHP_VERSION="8.1" ADD ./extra.ini /usr/local/etc/php/conf.d/ diff --git a/docker/7.4/.bashrc b/docker/8.2/.bashrc similarity index 100% rename from docker/7.4/.bashrc rename to docker/8.2/.bashrc diff --git a/docker/7.4/Dockerfile b/docker/8.2/Dockerfile similarity index 94% rename from docker/7.4/Dockerfile rename to docker/8.2/Dockerfile index c2954dd..95f1a35 100644 --- a/docker/7.4/Dockerfile +++ b/docker/8.2/Dockerfile @@ -1,12 +1,12 @@ FROM composer:latest as composer -FROM php:7.4-fpm +FROM php:8.2-fpm LABEL vendor="Phalcon" \ maintainer="Phalcon Team " \ description="Phalcon Migrations working environment" -ENV PHALCON_VERSION="5.0.1" \ - PHP_VERSION="7.4" +ENV PHALCON_VERSION="5.5.0" \ + PHP_VERSION="8.2" ADD ./extra.ini /usr/local/etc/php/conf.d/ diff --git a/docker/7.4/extra.ini b/docker/8.2/extra.ini similarity index 100% rename from docker/7.4/extra.ini rename to docker/8.2/extra.ini diff --git a/docker/8.3/.bashrc b/docker/8.3/.bashrc new file mode 100644 index 0000000..e106a75 --- /dev/null +++ b/docker/8.3/.bashrc @@ -0,0 +1,75 @@ +#!/bin/bash + +# Easier navigation: .., ..., ...., ....., ~ and - +alias ..="cd .." +alias ...="cd ../.." +alias ....="cd ../../.." +alias .....="cd ../../../.." +alias ~="cd ~" # `cd` is probably faster to type though +alias -- -="cd -" + +# Shortcuts +alias g="git" +alias h="history" + +# Detect which `ls` flavor is in use +if ls --color > /dev/null 2>&1; then # GNU `ls` + colorflag="--color" +else # OS X `ls` + colorflag="-G" +fi + +# List all files colorized in long format +# shellcheck disable=SC2139 +alias l="ls -lF ${colorflag}" + +# List all files colorized in long format, including dot files +# shellcheck disable=SC2139 +alias la="ls -laF ${colorflag}" + +# List only directories +# shellcheck disable=SC2139 +alias lsd="ls -lF ${colorflag} | grep --color=never '^d'" + +# See: https://superuser.com/a/656746/280737 +alias ll='LC_ALL="C.UTF-8" ls -alF' + +# Always use color output for `ls` +# shellcheck disable=SC2139 +alias ls="command ls ${colorflag}" +export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:' + +# Always enable colored `grep` output +alias grep='grep --color=auto ' + +# Enable aliases to be sudo’ed +alias sudo='sudo ' + +# Get week number +alias week='date +%V' + +# Stopwatch +alias timer='echo "Timer started. Stop with Ctrl-D." && date && time cat && date' + +# Canonical hex dump; some systems have this symlinked +command -v hd > /dev/null || alias hd="hexdump -C" + +# vhosts +alias hosts='sudo nano /etc/hosts' + +# copy working directory +alias cwd='pwd | tr -d "\r\n" | xclip -selection clipboard' + +# copy file interactive +alias cp='cp -i' + +# move file interactive +alias mv='mv -i' + +# untar +alias untar='tar xvf' + +# Zephir related +alias untar='tar xvf' + +PATH=$PATH:./vendor/bin diff --git a/docker/8.3/Dockerfile b/docker/8.3/Dockerfile new file mode 100644 index 0000000..84ba675 --- /dev/null +++ b/docker/8.3/Dockerfile @@ -0,0 +1,60 @@ +FROM composer:latest as composer +FROM php:8.3-fpm + +LABEL vendor="Phalcon" \ + maintainer="Phalcon Team " \ + description="Phalcon Migrations working environment" + +ENV PHALCON_VERSION="5.5.0" \ + PHP_VERSION="8.3" + +ADD ./extra.ini /usr/local/etc/php/conf.d/ + +# Update +RUN apt update -y && \ + apt install -y \ + apt-utils \ + gettext \ + git \ + libpq-dev \ + libzip-dev \ + nano \ + sudo \ + wget \ + zip + +# PECL Packages +RUN pecl install phalcon-${PHALCON_VERSION} \ + xdebug + +# Install PHP extensions +RUN docker-php-ext-install \ + gettext \ + pdo_mysql \ + pdo_pgsql \ + zip + +# Install PHP extensions +RUN docker-php-ext-enable \ + opcache \ + phalcon \ + xdebug + +# Cleanup +RUN apt autoremove -y \ + && apt autoclean -y \ + && apt clean -y \ + && rm -rf /tmp/* /var/tmp/* \ + && find /var/cache/apt/archives /var/lib/apt/lists /var/cache \ + -not -name lock \ + -type f \ + -delete \ + && find /var/log -type f | while read f; do echo -n '' > ${f}; done + +# Composer +COPY --from=composer /usr/bin/composer /usr/local/bin/composer +# Bash script with helper aliases +COPY ./.bashrc /root/.bashrc +COPY ./.bashrc /home/phalcon/.bashrc + +CMD ["php-fpm"] diff --git a/docker/8.3/extra.ini b/docker/8.3/extra.ini new file mode 100644 index 0000000..2ec900a --- /dev/null +++ b/docker/8.3/extra.ini @@ -0,0 +1,8 @@ +error_reporting=E_ALL +display_errors="On" +display_startup_errors="On" +log_errors="On" +error_log=/tmp/php_errors.log +memory_limit=512M +apc.enable_cli="On" +session.save_path="/tmp" From e1fc293e8c163a05fc19fff5dadee2adbb5edf79 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 23:03:59 +0100 Subject: [PATCH 05/23] #151 - Update versions in workflows --- .github/workflows/release-phar.yml | 3 +-- .github/workflows/tests.yml | 14 ++++++++------ .github/workflows/validations.yml | 9 ++++----- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/release-phar.yml b/.github/workflows/release-phar.yml index 1231275..5ee7100 100644 --- a/.github/workflows/release-phar.yml +++ b/.github/workflows/release-phar.yml @@ -10,8 +10,7 @@ jobs: name: Compile and upload Phar runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Compile phalcon-migrations.phar run: | diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0756a50..f1aa9cb 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -9,9 +9,10 @@ jobs: env: extensions: mbstring, intl, json, phalcon-${{ matrix.phalcon-versions }}, mysql, pgsql key: cache-v2.2~17.05.2020 + services: mysql: - image: mysql:5.7 + image: mysql:8.0 env: MYSQL_DATABASE: phalcon-migrations MYSQL_ROOT_PASSWORD: root @@ -23,13 +24,15 @@ jobs: ports: - 5432/tcp options: --health-cmd pg_isready --health-interval 5s --health-timeout 5s --health-retries 2 + strategy: fail-fast: false matrix: - php-versions: ['7.4', '8.0', '8.1'] - phalcon-versions: ['5.0.1', '5.0.2', '5.0.3', '5.0.4', '5.0.5'] + php-versions: ['8.0', '8.1', '8.2', '8.3'] + phalcon-versions: ['5.5.0', '5.6.0', '5.6.1', '5.6.2'] steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 + - name: Setup cache environment id: cache-env uses: shivammathur/cache-extensions@v1 @@ -63,8 +66,7 @@ jobs: key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - - name: Install Composer dependencies - run: composer install --prefer-dist --no-suggest + - run: composer install --prefer-dist --no-suggest - name: Copy .env file run: cp tests/.env.example tests/.env diff --git a/.github/workflows/validations.yml b/.github/workflows/validations.yml index 3c334f0..3865741 100644 --- a/.github/workflows/validations.yml +++ b/.github/workflows/validations.yml @@ -5,10 +5,9 @@ jobs: name: PSR-12 Code style runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 - - name: Validate composer.json and composer.lock - run: composer validate + - run: composer validate - name: Get Composer Cache Directory id: composer-cache @@ -38,9 +37,9 @@ jobs: fail-fast: false matrix: php-versions: ['7.4', '8.0', '8.1'] + steps: - - name: Checkout the code - uses: actions/checkout@v1 + - uses: actions/checkout@v4 - name: Setup cache environment id: cache-env From 26b2fb0f34f36f23c843fa787c0410d6e2130930 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 23:04:13 +0100 Subject: [PATCH 06/23] #151 - Change usage from `getenv()` to `$_ENV` --- tests/cli/GenerateCest.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/tests/cli/GenerateCest.php b/tests/cli/GenerateCest.php index 4c2a269..671479a 100644 --- a/tests/cli/GenerateCest.php +++ b/tests/cli/GenerateCest.php @@ -21,10 +21,8 @@ final class GenerateCest { /** * Path to migrations config - * - * @var string */ - private $configPath = 'tests/_data/cli/migrations.php'; + private string $configPath = 'tests/_data/cli/migrations.php'; /** * @param CliTester $I @@ -82,7 +80,7 @@ public function generateWithSkipRefSchema(CliTester $I): void { $I->wantToTest('generate with --skip-ref-schema option'); - $schema = getenv('MYSQL_TEST_DB_DATABASE'); + $schema = $_ENV['MYSQL_TEST_DB_DATABASE']; $this->createFKTables($I); @@ -103,7 +101,7 @@ public function generateWithRefSchema(CliTester $I): void { $I->wantToTest('generate with referencedSchema'); - $schema = getenv('MYSQL_TEST_DB_DATABASE'); + $schema = $_ENV['MYSQL_TEST_DB_DATABASE']; $this->createFKTables($I); @@ -122,7 +120,7 @@ public function generateWithRefSchema(CliTester $I): void */ protected function createFKTables(CliTester $I): void { - $schema = getenv('MYSQL_TEST_DB_DATABASE'); + $schema = $_ENV['MYSQL_TEST_DB_DATABASE']; $I->getPhalconDb() ->createTable('client', $schema, [ 'columns' => [ From 1f44cec89b196ae74bb6d2b91f562daa311ee682 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 23:04:34 +0100 Subject: [PATCH 07/23] #151 - Remove redundant comments --- src/Console/Commands/Migration.php | 20 --------- src/Migration/Action/Generate.php | 71 +++--------------------------- src/Observer/Profiler.php | 6 --- src/Version/ItemCollection.php | 19 +------- src/Version/ItemInterface.php | 10 ----- src/Version/TimestampedItem.php | 24 ---------- src/Version/VersionAwareTrait.php | 4 -- 7 files changed, 6 insertions(+), 148 deletions(-) diff --git a/src/Console/Commands/Migration.php b/src/Console/Commands/Migration.php index 6d02d63..7fad1ad 100644 --- a/src/Console/Commands/Migration.php +++ b/src/Console/Commands/Migration.php @@ -273,20 +273,6 @@ protected function getConfig(string $path): Config } } - /** - * TODO - * Re-think current approach - * as it scans whole project like that - * Which is unacceptable - */ - /*$directory = new \RecursiveDirectoryIterator('.'); - $iterator = new \RecursiveIteratorIterator($directory); - foreach ($iterator as $f) { - if (preg_match('/config\.(php|ini|json|yaml|yml)$/i', $f->getPathName())) { - return $this->loadConfig($f->getPathName()); - } - }*/ - throw new CommandsException("Can't locate the configuration file."); } @@ -335,8 +321,6 @@ protected function loadConfig(string $fileName): Config /** * Prints the available options in the script - * - * @param array $parameters */ protected function printParameters(array $parameters): void { @@ -365,10 +349,6 @@ protected function printParameters(array $parameters): void /** * Check if a path is absolute - * - * @param string $path Path to check - * - * @return bool */ protected function isAbsolutePath(string $path): bool { diff --git a/src/Migration/Action/Generate.php b/src/Migration/Action/Generate.php index d4ce5c4..955afca 100644 --- a/src/Migration/Action/Generate.php +++ b/src/Migration/Action/Generate.php @@ -51,9 +51,6 @@ */ class Generate { - /** - * @var array - */ protected array $supportedColumnTypes = [ Column::TYPE_BIGINTEGER => 'TYPE_BIGINTEGER', Column::TYPE_INTEGER => 'TYPE_INTEGER', @@ -88,23 +85,14 @@ class Generate Column::TYPE_ENUM => 'TYPE_ENUM', ]; - /** - * @var array - */ protected array $supportedColumnTypesPgsql = [ Column::TYPE_DOUBLE => 'TYPE_FLOAT', ]; - /** - * @var array - */ protected array $supportedColumnTypesMysql = [ Column::TYPE_DOUBLE => 'TYPE_DOUBLE', ]; - /** - * @var array - */ protected array $numericColumnTypes = [ Column::TYPE_INTEGER, Column::TYPE_MEDIUMINTEGER, @@ -115,8 +103,6 @@ class Generate /** * Column types without size (MySQL / SQLite) - * - * @var array */ protected array $noSizeColumnTypes = [ Column::TYPE_DATE, @@ -140,8 +126,6 @@ class Generate /** * Column types without size (PostgreSQL) - * - * @var array */ protected array $noSizeColumnTypesPostgreSQL = [ Column::TYPE_BOOLEAN, @@ -151,71 +135,50 @@ class Generate /** * Migration file entity - * - * @var PhpFile */ - private $file; + private ?PhpFile $file = null; /** * Migration class entity - * - * @var ClassType */ - private $class; + private ?ClassType $class = null; /** * SQL Adapter Name - * - * @var string */ - private $adapter; + private string $adapter; /** * Table columns - * - * @var array|ColumnInterface[] */ - protected $columns; + protected array $columns; /** * Table indexes - * - * @var array|IndexInterface[] */ - protected $indexes; + protected array $indexes; /** * Table foreign keys and another references - * - * @var ReferenceInterface[] */ protected array $references; /** * Table options - * - * @var array */ protected array $options; - /** - * @var string|null - */ protected ?string $primaryColumnName = null; /** * Numeric columns * * Used during exporting of data from table - * - * @var array */ protected array $numericColumns = []; /** * Table columns wrapped with "'" single quote symbol - * - * @var array */ protected array $quoteWrappedColumns = []; @@ -514,9 +477,6 @@ public function getColumns(): Generator } } - /** - * @return Generator - */ public function getIndexes(): Generator { foreach ($this->indexes as $name => $index) { @@ -535,11 +495,6 @@ public function getIndexes(): Generator } } - /** - * @param bool $skipRefSchema - * - * @return Generator - */ public function getReferences(bool $skipRefSchema = false): Generator { foreach ($this->references as $constraintName => $reference) { @@ -572,11 +527,6 @@ public function getReferences(bool $skipRefSchema = false): Generator } } - /** - * @param bool $skipAI Skip Auto Increment - * - * @return array - */ public function getOptions(bool $skipAI): array { $options = []; @@ -597,25 +547,17 @@ public function getOptions(bool $skipAI): array /** * Get Primary column name (if exists) - * - * @return string|null */ public function getPrimaryColumnName(): ?string { return $this->primaryColumnName; } - /** - * @return array - */ public function getNumericColumns(): array { return $this->numericColumns; } - /** - * @return string - */ public function getAdapter(): string { return $this->adapter; @@ -634,9 +576,6 @@ public function wrapWithQuotes(string $columnName, string $quote = "'"): string return $quote . $columnName . $quote; } - /** - * @return array - */ public function getQuoteWrappedColumns(): array { return $this->quoteWrappedColumns; diff --git a/src/Observer/Profiler.php b/src/Observer/Profiler.php index a06a46a..55b3866 100644 --- a/src/Observer/Profiler.php +++ b/src/Observer/Profiler.php @@ -25,17 +25,11 @@ */ class Profiler extends DbProfiler { - /** - * @param Item $profile - */ public function beforeStartProfile(Item $profile): void { echo $profile->getInitialTime(), ': ', str_replace(["\n", "\t"], " ", $profile->getSqlStatement()); } - /** - * @param Item $profile - */ public function afterEndProfile(Item $profile): void { echo ' => ', $profile->getFinalTime(), ' (', ($profile->getTotalElapsedSeconds()), ')', PHP_EOL; diff --git a/src/Version/ItemCollection.php b/src/Version/ItemCollection.php index b507c3b..1c625e0 100644 --- a/src/Version/ItemCollection.php +++ b/src/Version/ItemCollection.php @@ -27,29 +27,20 @@ class ItemCollection { /** * Incremental version item - * - * @const int */ public const TYPE_INCREMENTAL = 1; /** * Timestamp prefixed version item - * - * @const int */ public const TYPE_TIMESTAMPED = 2; - /** - * @var int - */ public static int $type = self::TYPE_INCREMENTAL; /** * Set collection type - * - * @param int $type */ - public static function setType(int $type) + public static function setType(int $type): void { self::$type = $type; } @@ -78,10 +69,6 @@ public static function createItem(string $version = null) /** * Check if provided version is correct - * - * @param string $version - * - * @return bool */ public static function isCorrectVersion(string $version): bool { @@ -96,10 +83,6 @@ public static function isCorrectVersion(string $version): bool /** * Get the maximum value from the list of version items - * - * @param array $versions - * - * @return ItemInterface|null */ public static function maximum(array $versions): ?ItemInterface { diff --git a/src/Version/ItemInterface.php b/src/Version/ItemInterface.php index 24bed1a..3b955eb 100644 --- a/src/Version/ItemInterface.php +++ b/src/Version/ItemInterface.php @@ -20,36 +20,26 @@ interface ItemInterface { /** * Get integer payload of the version - * - * @return integer */ public function getStamp(): int; /** * Get the string representation of the version - * - * @return string */ public function getVersion(): string; /** * Get the string representation of the version - * - * @return string */ public function __toString(): string; /** * Set migrations directory of incremental item - * - * @param string $path */ public function setPath(string $path): void; /** * Get migrations directory of incremental item - * - * @return string */ public function getPath(): string; } diff --git a/src/Version/TimestampedItem.php b/src/Version/TimestampedItem.php index 156ded6..441b2c5 100644 --- a/src/Version/TimestampedItem.php +++ b/src/Version/TimestampedItem.php @@ -25,29 +25,15 @@ class TimestampedItem implements ItemInterface { use VersionAwareTrait; - /** - * @var string - */ protected string $version; - /** - * @var bool - */ protected bool $isFullVersion; - /** - * @var array - */ protected array $parts = []; - /** - * @var string - */ private string $path = ''; /** - * @param string $version String representation of the version - * * @throws InvalidArgumentException */ public function __construct(string $version) @@ -63,8 +49,6 @@ public function __construct(string $version) /** * Get integer payload of the version - * - * @return int */ public function getStamp(): int { @@ -73,8 +57,6 @@ public function getStamp(): int /** * Get version description - * - * @return string */ public function getDescription(): string { @@ -83,8 +65,6 @@ public function getDescription(): string /** * Full version has both parts: number and description - * - * @return bool */ public function isFullVersion(): bool { @@ -93,8 +73,6 @@ public function isFullVersion(): bool /** * Get migrations directory of incremental item - * - * @return string */ public function getPath(): string { @@ -103,8 +81,6 @@ public function getPath(): string /** * Set migrations directory of incremental item - * - * @param string $path */ public function setPath(string $path): void { diff --git a/src/Version/VersionAwareTrait.php b/src/Version/VersionAwareTrait.php index 8554cbf..891ae6a 100644 --- a/src/Version/VersionAwareTrait.php +++ b/src/Version/VersionAwareTrait.php @@ -20,8 +20,6 @@ trait VersionAwareTrait { /** * Get the string representation of the version - * - * @return string */ public function getVersion(): string { @@ -30,8 +28,6 @@ public function getVersion(): string /** * Get the string representation of the version - * - * @return string */ public function __toString(): string { From cdda1ab0fbad6335cb6dcf594c3663724e6e2523 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 23:04:43 +0100 Subject: [PATCH 08/23] #151 - Update dependencies --- composer.json | 23 +- composer.lock | 2400 +++++++++++++++++++------------------------------ 2 files changed, 945 insertions(+), 1478 deletions(-) diff --git a/composer.json b/composer.json index b1ac2d5..5f2c257 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,7 @@ { "name": "phalcon/migrations", "description": "Run and Generate DB Migrations with Phalcon Framework", + "version": "4.0.0", "keywords": [ "framework", "phalcon", @@ -26,24 +27,23 @@ "forum": "https://forum.phalcon.io" }, "require": { - "php": ">=7.4", - "ext-phalcon": ">=5.0.1", - "phalcon/cli-options-parser": "^1.2", - "nette/php-generator": "^3.5" + "php": ">=8.0", + "ext-phalcon": ">=5.5", + "phalcon/cli-options-parser": "^2.0", + "nette/php-generator": "^4.0" }, "require-dev": { "ext-pdo": "*", - "phalcon/ide-stubs": "^5.0.1", + "phalcon/ide-stubs": "^5.5", "squizlabs/php_codesniffer": "^3.5", "fakerphp/faker": "^1.15", "humbug/box": "^3.8", - "codeception/codeception": "^4.1", - "codeception/module-asserts": "^1.0.0", - "codeception/module-cli": "^1.0", - "codeception/module-phpbrowser": "^1.0.0", - "codeception/module-db": "^1.0", + "codeception/codeception": "^5.1", + "codeception/module-asserts": "^3.0.0", + "codeception/module-cli": "^2.0", + "codeception/module-db": "^3.0", "vimeo/psalm": "^4.6", - "vlucas/phpdotenv": "^4.1", + "vlucas/phpdotenv": "^5.6", "phpstan/phpstan": "^1.8" }, "autoload": { @@ -75,7 +75,6 @@ "codeception.yml", "phpcs.xml.dist", "phpstan.neon.dist", - "phpunit.xml.dist", "psalm.xml.dist" ] }, diff --git a/composer.lock b/composer.lock index eb2a12e..ebbf83a 100644 --- a/composer.lock +++ b/composer.lock @@ -4,39 +4,40 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "7950ab665cb65c986431ee76fd5d4956", + "content-hash": "9da1f676651307226deda5e0887a137e", "packages": [ { "name": "nette/php-generator", - "version": "v3.6.8", + "version": "v4.1.4", "source": { "type": "git", "url": "https://github.com/nette/php-generator.git", - "reference": "9073c8ac505b5f65af3bc2d1665be7d256e2dbe3" + "reference": "b135071d8da108445e4df2fc6a75522b23c0237d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/php-generator/zipball/9073c8ac505b5f65af3bc2d1665be7d256e2dbe3", - "reference": "9073c8ac505b5f65af3bc2d1665be7d256e2dbe3", + "url": "https://api.github.com/repos/nette/php-generator/zipball/b135071d8da108445e4df2fc6a75522b23c0237d", + "reference": "b135071d8da108445e4df2fc6a75522b23c0237d", "shasum": "" }, "require": { - "nette/utils": "^3.1.2", - "php": ">=7.2 <8.3" + "nette/utils": "^3.2.9 || ^4.0", + "php": "8.0 - 8.3" }, "require-dev": { + "jetbrains/phpstorm-attributes": "dev-master", "nette/tester": "^2.4", - "nikic/php-parser": "^4.13", - "phpstan/phpstan": "^0.12", + "nikic/php-parser": "^4.18 || ^5.0", + "phpstan/phpstan": "^1.0", "tracy/tracy": "^2.8" }, "suggest": { - "nikic/php-parser": "to use ClassType::withBodiesFrom() & GlobalFunction::withBodyFrom()" + "nikic/php-parser": "to use ClassType::from(withBodies: true) & ClassType::fromCode()" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.6-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -60,7 +61,7 @@ "homepage": "https://nette.org/contributors" } ], - "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.1 features.", + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.3 features.", "homepage": "https://nette.org", "keywords": [ "code", @@ -70,34 +71,36 @@ ], "support": { "issues": "https://github.com/nette/php-generator/issues", - "source": "https://github.com/nette/php-generator/tree/v3.6.8" + "source": "https://github.com/nette/php-generator/tree/v4.1.4" }, - "time": "2022-09-12T22:13:59+00:00" + "time": "2024-03-07T23:06:26+00:00" }, { "name": "nette/utils", - "version": "v3.2.8", + "version": "v4.0.4", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368" + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", - "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", + "url": "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218", + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218", "shasum": "" }, "require": { - "php": ">=7.2 <8.3" + "php": ">=8.0 <8.4" }, "conflict": { - "nette/di": "<3.0.6" + "nette/finder": "<3", + "nette/schema": "<1.2.2" }, "require-dev": { - "nette/tester": "~2.0", + "jetbrains/phpstorm-attributes": "dev-master", + "nette/tester": "^2.5", "phpstan/phpstan": "^1.0", - "tracy/tracy": "^2.3" + "tracy/tracy": "^2.9" }, "suggest": { "ext-gd": "to use Image", @@ -105,13 +108,12 @@ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", "ext-json": "to use Nette\\Utils\\Json", "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", - "ext-xml": "to use Strings::length() etc. when mbstring is not available" + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -155,30 +157,32 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v3.2.8" + "source": "https://github.com/nette/utils/tree/v4.0.4" }, - "time": "2022-09-12T23:36:20+00:00" + "time": "2024-01-17T16:50:36+00:00" }, { "name": "phalcon/cli-options-parser", - "version": "v1.3.0", + "version": "v2.0.0", "source": { "type": "git", "url": "https://github.com/phalcon/cli-options-parser.git", - "reference": "1c5a7d0db23a88d8ba14646af75464cbbd115251" + "reference": "ec4d4cd0b7e61046b88957a4028ad01dfa14f4e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phalcon/cli-options-parser/zipball/1c5a7d0db23a88d8ba14646af75464cbbd115251", - "reference": "1c5a7d0db23a88d8ba14646af75464cbbd115251", + "url": "https://api.github.com/repos/phalcon/cli-options-parser/zipball/ec4d4cd0b7e61046b88957a4028ad01dfa14f4e6", + "reference": "ec4d4cd0b7e61046b88957a4028ad01dfa14f4e6", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.0" }, "require-dev": { - "phpunit/phpunit": "^9.5.8", - "squizlabs/php_codesniffer": "3.*" + "pds/skeleton": "^1.0", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.6", + "squizlabs/php_codesniffer": "^3.7" }, "type": "library", "extra": { @@ -221,7 +225,7 @@ "terminal" ], "support": { - "forum": "https://forum.phalconphp.com/", + "discord": "https://phalcon.io/discord/", "issues": "https://github.com/phalcon/cli-options-parser/issues", "source": "https://github.com/phalcon/cli-options-parser" }, @@ -235,22 +239,22 @@ "type": "open_collective" } ], - "time": "2021-08-03T02:44:01+00:00" + "time": "2023-11-24T16:04:00+00:00" } ], "packages-dev": [ { "name": "amphp/amp", - "version": "v2.6.2", + "version": "v2.6.4", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb" + "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", - "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "url": "https://api.github.com/repos/amphp/amp/zipball/ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", + "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", "shasum": "" }, "require": { @@ -262,8 +266,8 @@ "ext-json": "*", "jetbrains/phpstorm-stubs": "^2019.3", "phpunit/phpunit": "^7 | ^8 | ^9", - "psalm/phar": "^3.11@dev", - "react/promise": "^2" + "react/promise": "^2", + "vimeo/psalm": "^3.12" }, "type": "library", "extra": { @@ -318,7 +322,7 @@ "support": { "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.2" + "source": "https://github.com/amphp/amp/tree/v2.6.4" }, "funding": [ { @@ -326,20 +330,20 @@ "type": "github" } ], - "time": "2022-02-20T17:52:18+00:00" + "time": "2024-03-21T18:52:26+00:00" }, { "name": "amphp/byte-stream", - "version": "v1.8.1", + "version": "v1.8.2", "source": { "type": "git", "url": "https://github.com/amphp/byte-stream.git", - "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" + "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", - "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/4f0e968ba3798a423730f567b1b50d3441c16ddc", + "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc", "shasum": "" }, "require": { @@ -355,11 +359,6 @@ "psalm/phar": "^3.11.4" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { "files": [ "lib/functions.php" @@ -383,7 +382,7 @@ } ], "description": "A stream abstraction to make working with non-blocking I/O simple.", - "homepage": "http://amphp.org/byte-stream", + "homepage": "https://amphp.org/byte-stream", "keywords": [ "amp", "amphp", @@ -393,9 +392,8 @@ "stream" ], "support": { - "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/byte-stream/issues", - "source": "https://github.com/amphp/byte-stream/tree/v1.8.1" + "source": "https://github.com/amphp/byte-stream/tree/v1.8.2" }, "funding": [ { @@ -403,20 +401,20 @@ "type": "github" } ], - "time": "2021-03-30T17:13:30+00:00" + "time": "2024-04-13T18:00:56+00:00" }, { "name": "amphp/parallel", - "version": "v1.4.1", + "version": "v1.4.3", "source": { "type": "git", "url": "https://github.com/amphp/parallel.git", - "reference": "fbc128383c1ffb3823866f71b88d8c4722a25ce9" + "reference": "3aac213ba7858566fd83d38ccb85b91b2d652cb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/parallel/zipball/fbc128383c1ffb3823866f71b88d8c4722a25ce9", - "reference": "fbc128383c1ffb3823866f71b88d8c4722a25ce9", + "url": "https://api.github.com/repos/amphp/parallel/zipball/3aac213ba7858566fd83d38ccb85b91b2d652cb0", + "reference": "3aac213ba7858566fd83d38ccb85b91b2d652cb0", "shasum": "" }, "require": { @@ -469,7 +467,7 @@ ], "support": { "issues": "https://github.com/amphp/parallel/issues", - "source": "https://github.com/amphp/parallel/tree/v1.4.1" + "source": "https://github.com/amphp/parallel/tree/v1.4.3" }, "funding": [ { @@ -477,7 +475,7 @@ "type": "github" } ], - "time": "2021-10-25T19:16:02+00:00" + "time": "2023-03-23T08:04:23+00:00" }, { "name": "amphp/parallel-functions", @@ -539,29 +537,30 @@ }, { "name": "amphp/parser", - "version": "v1.0.0", + "version": "v1.1.1", "source": { "type": "git", "url": "https://github.com/amphp/parser.git", - "reference": "f83e68f03d5b8e8e0365b8792985a7f341c57ae1" + "reference": "3cf1f8b32a0171d4b1bed93d25617637a77cded7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/parser/zipball/f83e68f03d5b8e8e0365b8792985a7f341c57ae1", - "reference": "f83e68f03d5b8e8e0365b8792985a7f341c57ae1", + "url": "https://api.github.com/repos/amphp/parser/zipball/3cf1f8b32a0171d4b1bed93d25617637a77cded7", + "reference": "3cf1f8b32a0171d4b1bed93d25617637a77cded7", "shasum": "" }, "require": { - "php": ">=7" + "php": ">=7.4" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.3", - "phpunit/phpunit": "^6" + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" }, "type": "library", "autoload": { "psr-4": { - "Amp\\Parser\\": "lib" + "Amp\\Parser\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -569,13 +568,13 @@ "MIT" ], "authors": [ - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - }, { "name": "Aaron Piotrowski", "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], "description": "A generator parser to make streaming parsers simple.", @@ -588,28 +587,34 @@ ], "support": { "issues": "https://github.com/amphp/parser/issues", - "source": "https://github.com/amphp/parser/tree/is-valid" + "source": "https://github.com/amphp/parser/tree/v1.1.1" }, - "time": "2017-06-06T05:29:10+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2024-03-21T19:16:53+00:00" }, { "name": "amphp/process", - "version": "v1.1.4", + "version": "v1.1.6", "source": { "type": "git", "url": "https://github.com/amphp/process.git", - "reference": "76e9495fd6818b43a20167cb11d8a67f7744ee0f" + "reference": "2cd38052ddb200dcd73d34d8e06654dadb101e7c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/process/zipball/76e9495fd6818b43a20167cb11d8a67f7744ee0f", - "reference": "76e9495fd6818b43a20167cb11d8a67f7744ee0f", + "url": "https://api.github.com/repos/amphp/process/zipball/2cd38052ddb200dcd73d34d8e06654dadb101e7c", + "reference": "2cd38052ddb200dcd73d34d8e06654dadb101e7c", "shasum": "" }, "require": { "amphp/amp": "^2", "amphp/byte-stream": "^1.4", - "php": ">=7" + "php": ">=7.1" }, "require-dev": { "amphp/php-cs-fixer-config": "dev-master", @@ -647,7 +652,7 @@ "homepage": "https://github.com/amphp/process", "support": { "issues": "https://github.com/amphp/process/issues", - "source": "https://github.com/amphp/process/tree/v1.1.4" + "source": "https://github.com/amphp/process/tree/v1.1.6" }, "funding": [ { @@ -655,7 +660,7 @@ "type": "github" } ], - "time": "2022-07-06T23:50:12+00:00" + "time": "2024-03-21T19:24:36+00:00" }, { "name": "amphp/serialization", @@ -848,61 +853,76 @@ }, { "name": "codeception/codeception", - "version": "4.2.2", + "version": "5.1.2", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "b88014f3348c93f3df99dc6d0967b0dbfa804474" + "reference": "3b2d7d1a88e7e1d9dc0acb6d3c8f0acda0a37374" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/b88014f3348c93f3df99dc6d0967b0dbfa804474", - "reference": "b88014f3348c93f3df99dc6d0967b0dbfa804474", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/3b2d7d1a88e7e1d9dc0acb6d3c8f0acda0a37374", + "reference": "3b2d7d1a88e7e1d9dc0acb6d3c8f0acda0a37374", "shasum": "" }, "require": { - "behat/gherkin": "^4.4.0", - "codeception/lib-asserts": "^1.0 | 2.0.*@dev", - "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.1.1 | ^9.0", - "codeception/stub": "^2.0 | ^3.0 | ^4.0", + "behat/gherkin": "^4.6.2", + "codeception/lib-asserts": "^2.0", + "codeception/stub": "^4.1", "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", - "guzzlehttp/psr7": "^1.4 | ^2.0", - "php": ">=5.6.0 <9.0", - "symfony/console": ">=2.7 <6.0", - "symfony/css-selector": ">=2.7 <6.0", - "symfony/event-dispatcher": ">=2.7 <6.0", - "symfony/finder": ">=2.7 <6.0", - "symfony/yaml": ">=2.7 <6.0" + "php": "^8.0", + "phpunit/php-code-coverage": "^9.2 || ^10.0 || ^11.0", + "phpunit/php-text-template": "^2.0 || ^3.0 || ^4.0", + "phpunit/php-timer": "^5.0.3 || ^6.0 || ^7.0", + "phpunit/phpunit": "^9.5.20 || ^10.0 || ^11.0", + "psy/psysh": "^0.11.2 || ^0.12", + "sebastian/comparator": "^4.0.5 || ^5.0 || ^6.0", + "sebastian/diff": "^4.0.3 || ^5.0 || ^6.0", + "symfony/console": ">=4.4.24 <8.0", + "symfony/css-selector": ">=4.4.24 <8.0", + "symfony/event-dispatcher": ">=4.4.24 <8.0", + "symfony/finder": ">=4.4.24 <8.0", + "symfony/var-dumper": ">=4.4.24 <8.0", + "symfony/yaml": ">=4.4.24 <8.0" + }, + "conflict": { + "codeception/lib-innerbrowser": "<3.1.3", + "codeception/module-filesystem": "<3.0", + "codeception/module-phpbrowser": "<2.5" + }, + "replace": { + "codeception/phpunit-wrapper": "*" }, "require-dev": { - "codeception/module-asserts": "^1.0 | 2.0.*@dev", - "codeception/module-cli": "^1.0 | 2.0.*@dev", - "codeception/module-db": "^1.0 | 2.0.*@dev", - "codeception/module-filesystem": "^1.0 | 2.0.*@dev", - "codeception/module-phpbrowser": "^1.0 | 2.0.*@dev", - "codeception/specify": "~0.3", + "codeception/lib-innerbrowser": "*@dev", + "codeception/lib-web": "^1.0", + "codeception/module-asserts": "*@dev", + "codeception/module-cli": "*@dev", + "codeception/module-db": "*@dev", + "codeception/module-filesystem": "*@dev", + "codeception/module-phpbrowser": "*@dev", "codeception/util-universalframework": "*@dev", - "monolog/monolog": "~1.8", - "squizlabs/php_codesniffer": "~2.0", - "symfony/process": ">=2.7 <6.0", - "vlucas/phpdotenv": "^2.0 | ^3.0 | ^4.0 | ^5.0" + "ext-simplexml": "*", + "jetbrains/phpstorm-attributes": "^1.0", + "symfony/dotenv": ">=4.4.24 <8.0", + "symfony/process": ">=4.4.24 <8.0", + "vlucas/phpdotenv": "^5.1" }, "suggest": { "codeception/specify": "BDD-style code blocks", "codeception/verify": "BDD-style assertions", - "hoa/console": "For interactive console functionality", + "ext-simplexml": "For loading params from XML files", "stecman/symfony-console-completion": "For BASH autocompletion", - "symfony/phpunit-bridge": "For phpunit-bridge support" + "symfony/dotenv": "For loading params from .env files", + "symfony/phpunit-bridge": "For phpunit-bridge support", + "vlucas/phpdotenv": "For loading params from .env files" }, "bin": [ "codecept" ], "type": "library", - "extra": { - "branch-alias": [] - }, "autoload": { "files": [ "functions.php" @@ -910,7 +930,10 @@ "psr-4": { "Codeception\\": "src/Codeception", "Codeception\\Extension\\": "ext" - } + }, + "classmap": [ + "src/PHPUnit/TestCase.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -919,8 +942,8 @@ "authors": [ { "name": "Michael Bodnarchuk", - "email": "davert@mail.ua", - "homepage": "https://codegyre.com" + "email": "davert.ua@gmail.com", + "homepage": "https://codeception.com" } ], "description": "BDD-style testing framework", @@ -934,7 +957,7 @@ ], "support": { "issues": "https://github.com/Codeception/Codeception/issues", - "source": "https://github.com/Codeception/Codeception/tree/4.2.2" + "source": "https://github.com/Codeception/Codeception/tree/5.1.2" }, "funding": [ { @@ -942,26 +965,26 @@ "type": "open_collective" } ], - "time": "2022-08-13T13:28:25+00:00" + "time": "2024-03-07T07:19:42+00:00" }, { "name": "codeception/lib-asserts", - "version": "1.13.2", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/Codeception/lib-asserts.git", - "reference": "184231d5eab66bc69afd6b9429344d80c67a33b6" + "reference": "b8c7dff552249e560879c682ba44a4b963af91bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/184231d5eab66bc69afd6b9429344d80c67a33b6", - "reference": "184231d5eab66bc69afd6b9429344d80c67a33b6", + "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/b8c7dff552249e560879c682ba44a4b963af91bc", + "reference": "b8c7dff552249e560879c682ba44a4b963af91bc", "shasum": "" }, "require": { - "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.0.3 | ^9.0", + "codeception/phpunit-wrapper": "^7.7.1 | ^8.0.3 | ^9.0", "ext-dom": "*", - "php": ">=5.6.0 <9.0" + "php": "^7.4 | ^8.0" }, "type": "library", "autoload": { @@ -994,91 +1017,31 @@ ], "support": { "issues": "https://github.com/Codeception/lib-asserts/issues", - "source": "https://github.com/Codeception/lib-asserts/tree/1.13.2" - }, - "time": "2020-10-21T16:26:20+00:00" - }, - { - "name": "codeception/lib-innerbrowser", - "version": "1.5.1", - "source": { - "type": "git", - "url": "https://github.com/Codeception/lib-innerbrowser.git", - "reference": "31b4b56ad53c3464fcb2c0a14d55a51a201bd3c2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/31b4b56ad53c3464fcb2c0a14d55a51a201bd3c2", - "reference": "31b4b56ad53c3464fcb2c0a14d55a51a201bd3c2", - "shasum": "" - }, - "require": { - "codeception/codeception": "4.*@dev", - "ext-dom": "*", - "ext-json": "*", - "ext-mbstring": "*", - "php": ">=5.6.0 <9.0", - "symfony/browser-kit": ">=2.7 <6.0", - "symfony/dom-crawler": ">=2.7 <6.0" - }, - "conflict": { - "codeception/codeception": "<4.0" - }, - "require-dev": { - "codeception/util-universalframework": "dev-master" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Bodnarchuk", - "email": "davert@mail.ua", - "homepage": "http://codegyre.com" - }, - { - "name": "Gintautas Miselis" - } - ], - "description": "Parent library for all Codeception framework modules and PhpBrowser", - "homepage": "https://codeception.com/", - "keywords": [ - "codeception" - ], - "support": { - "issues": "https://github.com/Codeception/lib-innerbrowser/issues", - "source": "https://github.com/Codeception/lib-innerbrowser/tree/1.5.1" + "source": "https://github.com/Codeception/lib-asserts/tree/2.1.0" }, - "time": "2021-08-30T15:21:42+00:00" + "time": "2023-02-10T18:36:23+00:00" }, { "name": "codeception/module-asserts", - "version": "1.3.1", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/Codeception/module-asserts.git", - "reference": "59374f2fef0cabb9e8ddb53277e85cdca74328de" + "reference": "1b6b150b30586c3614e7e5761b31834ed7968603" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-asserts/zipball/59374f2fef0cabb9e8ddb53277e85cdca74328de", - "reference": "59374f2fef0cabb9e8ddb53277e85cdca74328de", + "url": "https://api.github.com/repos/Codeception/module-asserts/zipball/1b6b150b30586c3614e7e5761b31834ed7968603", + "reference": "1b6b150b30586c3614e7e5761b31834ed7968603", "shasum": "" }, "require": { "codeception/codeception": "*@dev", - "codeception/lib-asserts": "^1.13.1", - "php": ">=5.6.0 <9.0" + "codeception/lib-asserts": "^2.0", + "php": "^8.0" }, "conflict": { - "codeception/codeception": "<4.0" + "codeception/codeception": "<5.0" }, "type": "library", "autoload": { @@ -1111,27 +1074,28 @@ ], "support": { "issues": "https://github.com/Codeception/module-asserts/issues", - "source": "https://github.com/Codeception/module-asserts/tree/1.3.1" + "source": "https://github.com/Codeception/module-asserts/tree/3.0.0" }, - "time": "2020-10-21T16:48:15+00:00" + "time": "2022-02-16T19:48:08+00:00" }, { "name": "codeception/module-cli", - "version": "1.1.1", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/Codeception/module-cli.git", - "reference": "1f841ad4a1d43e5d9e60a43c4cc9e5af8008024f" + "reference": "a3a101fae4049fa2f810107f7bd5db3b3266ce63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-cli/zipball/1f841ad4a1d43e5d9e60a43c4cc9e5af8008024f", - "reference": "1f841ad4a1d43e5d9e60a43c4cc9e5af8008024f", + "url": "https://api.github.com/repos/Codeception/module-cli/zipball/a3a101fae4049fa2f810107f7bd5db3b3266ce63", + "reference": "a3a101fae4049fa2f810107f7bd5db3b3266ce63", "shasum": "" }, "require": { "codeception/codeception": "*@dev", - "php": ">=5.6.0 <9.0" + "codeception/module-asserts": "*", + "php": "^7.4 || ^8.0" }, "conflict": { "codeception/codeception": "<4.0" @@ -1152,36 +1116,39 @@ } ], "description": "Codeception module for testing basic shell commands and shell output", - "homepage": "http://codeception.com/", + "homepage": "https://codeception.com/", "keywords": [ "codeception" ], "support": { "issues": "https://github.com/Codeception/module-cli/issues", - "source": "https://github.com/Codeception/module-cli/tree/1.1.1" + "source": "https://github.com/Codeception/module-cli/tree/2.0.1" }, - "time": "2020-12-26T16:56:19+00:00" + "time": "2023-01-13T18:41:03+00:00" }, { "name": "codeception/module-db", - "version": "1.2.0", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/Codeception/module-db.git", - "reference": "04c3e66fbd3a3ced17fcccc49627f6393a97b04b" + "reference": "0d636cb8fa0d61fea10f42f6d434e998dfc80d53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-db/zipball/04c3e66fbd3a3ced17fcccc49627f6393a97b04b", - "reference": "04c3e66fbd3a3ced17fcccc49627f6393a97b04b", + "url": "https://api.github.com/repos/Codeception/module-db/zipball/0d636cb8fa0d61fea10f42f6d434e998dfc80d53", + "reference": "0d636cb8fa0d61fea10f42f6d434e998dfc80d53", "shasum": "" }, "require": { "codeception/codeception": "*@dev", - "php": ">=5.6.0 <9.0" + "ext-json": "*", + "ext-mbstring": "*", + "ext-pdo": "*", + "php": "^8.0" }, "conflict": { - "codeception/codeception": "<4.0" + "codeception/codeception": "<5.0" }, "type": "library", "autoload": { @@ -1202,7 +1169,7 @@ } ], "description": "DB module for Codeception", - "homepage": "http://codeception.com/", + "homepage": "https://codeception.com/", "keywords": [ "codeception", "database-testing", @@ -1210,136 +1177,30 @@ ], "support": { "issues": "https://github.com/Codeception/module-db/issues", - "source": "https://github.com/Codeception/module-db/tree/1.2.0" + "source": "https://github.com/Codeception/module-db/tree/3.1.3" }, - "time": "2022-03-05T19:38:40+00:00" - }, - { - "name": "codeception/module-phpbrowser", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/Codeception/module-phpbrowser.git", - "reference": "8ba6bede11d0914e74d98691f427fd8f397f192e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-phpbrowser/zipball/8ba6bede11d0914e74d98691f427fd8f397f192e", - "reference": "8ba6bede11d0914e74d98691f427fd8f397f192e", - "shasum": "" - }, - "require": { - "codeception/codeception": "^4.1", - "codeception/lib-innerbrowser": "^1.3", - "guzzlehttp/guzzle": "^6.3|^7.0", - "php": ">=5.6.0 <9.0" - }, - "conflict": { - "codeception/codeception": "<4.0" - }, - "require-dev": { - "codeception/module-rest": "^1.0" - }, - "suggest": { - "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Bodnarchuk" - }, - { - "name": "Gintautas Miselis" - } - ], - "description": "Codeception module for testing web application over HTTP", - "homepage": "http://codeception.com/", - "keywords": [ - "codeception", - "functional-testing", - "http" - ], - "support": { - "issues": "https://github.com/Codeception/module-phpbrowser/issues", - "source": "https://github.com/Codeception/module-phpbrowser/tree/1.0.3" - }, - "time": "2022-05-21T13:50:41+00:00" - }, - { - "name": "codeception/phpunit-wrapper", - "version": "9.0.9", - "source": { - "type": "git", - "url": "https://github.com/Codeception/phpunit-wrapper.git", - "reference": "7439a53ae367986e9c22b2ac00f9d7376bb2f8cf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/7439a53ae367986e9c22b2ac00f9d7376bb2f8cf", - "reference": "7439a53ae367986e9c22b2ac00f9d7376bb2f8cf", - "shasum": "" - }, - "require": { - "php": ">=7.2", - "phpunit/phpunit": "^9.0" - }, - "require-dev": { - "codeception/specify": "*", - "consolidation/robo": "^3.0.0-alpha3", - "vlucas/phpdotenv": "^3.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Codeception\\PHPUnit\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Davert", - "email": "davert.php@resend.cc" - }, - { - "name": "Naktibalda" - } - ], - "description": "PHPUnit classes used by Codeception", - "support": { - "issues": "https://github.com/Codeception/phpunit-wrapper/issues", - "source": "https://github.com/Codeception/phpunit-wrapper/tree/9.0.9" - }, - "time": "2022-05-23T06:24:11+00:00" + "time": "2024-03-04T19:16:54+00:00" }, { "name": "codeception/stub", - "version": "4.0.2", + "version": "4.1.3", "source": { "type": "git", "url": "https://github.com/Codeception/Stub.git", - "reference": "18a148dacd293fc7b044042f5aa63a82b08bff5d" + "reference": "4fcad2c165f365377486dc3fd8703b07f1f2fcae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Stub/zipball/18a148dacd293fc7b044042f5aa63a82b08bff5d", - "reference": "18a148dacd293fc7b044042f5aa63a82b08bff5d", + "url": "https://api.github.com/repos/Codeception/Stub/zipball/4fcad2c165f365377486dc3fd8703b07f1f2fcae", + "reference": "4fcad2c165f365377486dc3fd8703b07f1f2fcae", "shasum": "" }, "require": { "php": "^7.4 | ^8.0", - "phpunit/phpunit": "^8.4 | ^9.0 | ^10.0 | 10.0.x-dev" + "phpunit/phpunit": "^8.4 | ^9.0 | ^10.0 | ^11" + }, + "conflict": { + "codeception/codeception": "<5.0.6" }, "require-dev": { "consolidation/robo": "^3.0" @@ -1357,9 +1218,9 @@ "description": "Flexible Stub wrapper for PHPUnit's Mock Builder", "support": { "issues": "https://github.com/Codeception/Stub/issues", - "source": "https://github.com/Codeception/Stub/tree/4.0.2" + "source": "https://github.com/Codeception/Stub/tree/4.1.3" }, - "time": "2022-01-31T19:25:15+00:00" + "time": "2024-02-02T19:21:00+00:00" }, { "name": "composer/package-versions-deprecated", @@ -1436,16 +1297,16 @@ }, { "name": "composer/pcre", - "version": "3.0.0", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd" + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/e300eb6c535192decd27a85bc72a9290f0d6b3bd", - "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd", + "url": "https://api.github.com/repos/composer/pcre/zipball/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", "shasum": "" }, "require": { @@ -1487,7 +1348,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.0.0" + "source": "https://github.com/composer/pcre/tree/3.1.3" }, "funding": [ { @@ -1503,20 +1364,20 @@ "type": "tidelift" } ], - "time": "2022-02-25T20:21:48+00:00" + "time": "2024-03-19T10:26:25+00:00" }, { "name": "composer/semver", - "version": "3.3.2", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", "shasum": "" }, "require": { @@ -1566,9 +1427,9 @@ "versioning" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" + "source": "https://github.com/composer/semver/tree/3.4.0" }, "funding": [ { @@ -1584,20 +1445,20 @@ "type": "tidelift" } ], - "time": "2022-04-01T19:23:25+00:00" + "time": "2023-08-31T09:50:34+00:00" }, { "name": "composer/xdebug-handler", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" + "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/4f988f8fdf580d53bdb2d1278fe93d1ed5462255", + "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255", "shasum": "" }, "require": { @@ -1608,7 +1469,7 @@ "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, "type": "library", "autoload": { @@ -1632,9 +1493,9 @@ "performance" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.4" }, "funding": [ { @@ -1650,7 +1511,7 @@ "type": "tidelift" } ], - "time": "2022-02-25T21:32:43+00:00" + "time": "2024-03-26T18:29:49+00:00" }, { "name": "dnoegel/php-xdg-base-dir", @@ -1689,32 +1550,79 @@ }, "time": "2019-12-04T15:06:13+00:00" }, + { + "name": "doctrine/deprecations", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.3" + }, + "time": "2024-01-30T19:34:25+00:00" + }, { "name": "doctrine/instantiator", - "version": "1.4.1", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9", + "doctrine/coding-standard": "^9 || ^11", "ext-pdo": "*", "ext-phar": "*", "phpbench/phpbench": "^0.16 || ^1", "phpstan/phpstan": "^1.4", "phpstan/phpstan-phpunit": "^1", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" + "vimeo/psalm": "^4.30 || ^5.4" }, "type": "library", "autoload": { @@ -1741,7 +1649,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + "source": "https://github.com/doctrine/instantiator/tree/1.5.0" }, "funding": [ { @@ -1757,24 +1665,24 @@ "type": "tidelift" } ], - "time": "2022-03-03T08:28:38+00:00" + "time": "2022-12-30T00:15:36+00:00" }, { "name": "fakerphp/faker", - "version": "v1.20.0", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b" + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/37f751c67a5372d4e26353bd9384bc03744ec77b", - "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b", + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0", + "php": "^7.4 || ^8.0", "psr/container": "^1.0 || ^2.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" }, @@ -1785,7 +1693,8 @@ "bamarni/composer-bin-plugin": "^1.4.1", "doctrine/persistence": "^1.3 || ^2.0", "ext-intl": "*", - "symfony/phpunit-bridge": "^4.4 || ^5.2" + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" }, "suggest": { "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", @@ -1795,11 +1704,6 @@ "ext-mbstring": "Required for multibyte Unicode string functionality." }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "v1.20-dev" - } - }, "autoload": { "psr-4": { "Faker\\": "src/Faker/" @@ -1822,9 +1726,9 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.20.0" + "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1" }, - "time": "2022-07-20T13:12:54+00:00" + "time": "2024-01-02T13:46:09+00:00" }, { "name": "felixfbecker/advanced-json-rpc", @@ -1929,233 +1833,58 @@ }, { "name": "fidry/console", - "version": "0.5.1", + "version": "0.5.5", "source": { "type": "git", "url": "https://github.com/theofidry/console.git", - "reference": "1118702f8d4643a9933fa4d2e6712654b6fadf5d" + "reference": "bc1fe03f600c63f12ec0a39c6b746c1a1fb77bf7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/console/zipball/1118702f8d4643a9933fa4d2e6712654b6fadf5d", - "reference": "1118702f8d4643a9933fa4d2e6712654b6fadf5d", + "url": "https://api.github.com/repos/theofidry/console/zipball/bc1fe03f600c63f12ec0a39c6b746c1a1fb77bf7", + "reference": "bc1fe03f600c63f12ec0a39c6b746c1a1fb77bf7", "shasum": "" }, "require": { "php": "^7.4.0 || ^8.0.0", - "symfony/console": "^5.4 || ^6.1", - "symfony/event-dispatcher-contracts": "^2.5 || ^3.0", - "symfony/service-contracts": "^2.5 || ^3.0", + "symfony/console": "^4.4 || ^5.4 || ^6.1", + "symfony/event-dispatcher-contracts": "^1.0 || ^2.5 || ^3.0", + "symfony/service-contracts": "^1.0 || ^2.5 || ^3.0", "thecodingmachine/safe": "^1.3 || ^2.0", "webmozart/assert": "^1.11" }, "conflict": { - "symfony/dependency-injection": "<5.3.0", - "symfony/framework-bundle": "<5.3.0", - "symfony/http-kernel": "<5.3.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4", - "composer/semver": "^3.3", - "ergebnis/composer-normalize": "^2.28", - "infection/infection": "^0.26", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.4.3", - "symfony/dependency-injection": "^5.4 || ^6.1", - "symfony/framework-bundle": "^5.4 || ^6.1", - "symfony/http-kernel": "^5.4 || ^6.1", - "symfony/phpunit-bridge": "^5.4 || ^6.0", - "symfony/yaml": "^5.4 || ^6.1", - "webmozarts/strict-phpunit": "^7.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Fidry\\Console\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Théo Fidry", - "email": "theo.fidry@gmail.com" - } - ], - "description": "Library to create CLI applications", - "support": { - "issues": "https://github.com/theofidry/console/issues", - "source": "https://github.com/theofidry/console/tree/0.5.1" - }, - "time": "2022-06-19T22:16:49+00:00" - }, - { - "name": "guzzlehttp/guzzle", - "version": "7.5.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba", - "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba", - "shasum": "" - }, - "require": { - "ext-json": "*", - "guzzlehttp/promises": "^1.5", - "guzzlehttp/psr7": "^1.9 || ^2.4", - "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.1", - "ext-curl": "*", - "php-http/client-integration-tests": "^3.0", - "phpunit/phpunit": "^8.5.29 || ^9.5.23", - "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 - }, - "branch-alias": { - "dev-master": "7.5-dev" - } - }, - "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.5.0" - }, - "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": "2022-08-28T15:39:27+00:00" - }, - { - "name": "guzzlehttp/promises", - "version": "1.5.2", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "b94b2807d85443f9719887892882d0329d1e2598" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", - "reference": "b94b2807d85443f9719887892882d0329d1e2598", - "shasum": "" - }, - "require": { - "php": ">=5.5" + "symfony/dependency-injection": "<5.3.0", + "symfony/framework-bundle": "<5.3.0", + "symfony/http-kernel": "<5.3.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" + "bamarni/composer-bin-plugin": "^1.4", + "composer/semver": "^3.3", + "ergebnis/composer-normalize": "^2.28", + "infection/infection": "^0.26", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.4.3", + "symfony/dependency-injection": "^4.4 || ^5.4 || ^6.1", + "symfony/framework-bundle": "^4.4 || ^5.4 || ^6.1", + "symfony/http-kernel": "^4.4 || ^5.4 || ^6.1", + "symfony/phpunit-bridge": "^4.4.47 || ^5.4 || ^6.0", + "symfony/yaml": "^4.4 || ^5.4 || ^6.1", + "webmozarts/strict-phpunit": "^7.3" }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": false, + "forward-command": false + }, "branch-alias": { - "dev-master": "1.5-dev" + "dev-main": "1.0.x-dev" } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { - "GuzzleHttp\\Promise\\": "src/" + "Fidry\\Console\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2164,92 +1893,53 @@ ], "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" + "name": "Théo Fidry", + "email": "theo.fidry@gmail.com" } ], - "description": "Guzzle promises library", + "description": "Library to create CLI applications", "keywords": [ - "promise" + "cli", + "console", + "symfony" ], "support": { - "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.2" + "issues": "https://github.com/theofidry/console/issues", + "source": "https://github.com/theofidry/console/tree/0.5.5" }, "funding": [ { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", + "url": "https://github.com/theofidry", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", - "type": "tidelift" } ], - "time": "2022-08-28T14:55:35+00:00" + "time": "2022-12-18T10:49:34+00:00" }, { - "name": "guzzlehttp/psr7", - "version": "2.5.0", + "name": "graham-campbell/result-type", + "version": "v1.1.2", "source": { "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "b635f279edd83fc275f822a1188157ffea568ff6" + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/b635f279edd83fc275f822a1188157ffea568ff6", - "reference": "b635f279edd83fc275f822a1188157ffea568ff6", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862", + "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862", "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" + "phpoption/phpoption": "^1.9.2" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" - }, - "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" }, "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - } - }, "autoload": { "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" + "GrahamCampbell\\ResultType\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2261,52 +1951,19 @@ "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", + "description": "An Implementation Of The Result Type", "keywords": [ - "http", - "message", - "psr-7", - "request", - "response", - "stream", - "uri", - "url" + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" ], "support": { - "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.5.0" + "issues": "https://github.com/GrahamCampbell/Result-Type/issues", + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2" }, "funding": [ { @@ -2314,15 +1971,11 @@ "type": "github" }, { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", "type": "tidelift" } ], - "time": "2023-04-17T16:11:26+00:00" + "time": "2023-11-12T22:16:48+00:00" }, { "name": "humbug/box", @@ -2505,16 +2158,16 @@ }, { "name": "jetbrains/phpstorm-stubs", - "version": "v2022.2", + "version": "v2022.3", "source": { "type": "git", "url": "https://github.com/JetBrains/phpstorm-stubs.git", - "reference": "01006d9854679672fc8b85c6d5063ea6f25226ac" + "reference": "6b568c153cea002dc6fad96285c3063d07cab18d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JetBrains/phpstorm-stubs/zipball/01006d9854679672fc8b85c6d5063ea6f25226ac", - "reference": "01006d9854679672fc8b85c6d5063ea6f25226ac", + "url": "https://api.github.com/repos/JetBrains/phpstorm-stubs/zipball/6b568c153cea002dc6fad96285c3063d07cab18d", + "reference": "6b568c153cea002dc6fad96285c3063d07cab18d", "shasum": "" }, "require-dev": { @@ -2547,22 +2200,22 @@ "type" ], "support": { - "source": "https://github.com/JetBrains/phpstorm-stubs/tree/v2022.2" + "source": "https://github.com/JetBrains/phpstorm-stubs/tree/v2022.3" }, - "time": "2022-07-25T13:18:36+00:00" + "time": "2022-10-17T09:21:37+00:00" }, { "name": "justinrainbow/json-schema", - "version": "5.2.12", + "version": "v5.2.13", "source": { "type": "git", "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60" + "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", - "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/fbbe7e5d79f618997bc3332a6f49246036c45793", + "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793", "shasum": "" }, "require": { @@ -2617,22 +2270,22 @@ ], "support": { "issues": "https://github.com/justinrainbow/json-schema/issues", - "source": "https://github.com/justinrainbow/json-schema/tree/5.2.12" + "source": "https://github.com/justinrainbow/json-schema/tree/v5.2.13" }, - "time": "2022-04-13T08:02:27+00:00" + "time": "2023-09-26T02:20:38+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.2.2", + "version": "v1.3.3", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae" + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/47afb7fae28ed29057fdca37e16a84f90cc62fae", - "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754", + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754", "shasum": "" }, "require": { @@ -2679,20 +2332,20 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2022-09-08T13:45:54+00:00" + "time": "2023-11-08T14:08:06+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.11.0", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", "shasum": "" }, "require": { @@ -2730,7 +2383,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" }, "funding": [ { @@ -2738,20 +2391,20 @@ "type": "tidelift" } ], - "time": "2022-03-03T13:19:32+00:00" + "time": "2023-03-08T13:26:56+00:00" }, { "name": "netresearch/jsonmapper", - "version": "v4.0.0", + "version": "v4.4.1", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d" + "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", - "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/132c75c7dd83e45353ebb9c6c9f591952995bbf0", + "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0", "shasum": "" }, "require": { @@ -2762,7 +2415,7 @@ "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0", + "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0", "squizlabs/php_codesniffer": "~3.5" }, "type": "library", @@ -2787,29 +2440,31 @@ "support": { "email": "cweiske@cweiske.de", "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.0.0" + "source": "https://github.com/cweiske/jsonmapper/tree/v4.4.1" }, - "time": "2020-12-01T19:48:11+00:00" + "time": "2024-01-31T06:18:54+00:00" }, { "name": "nikic/iter", - "version": "v2.2.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/nikic/iter.git", - "reference": "d1323929952ddcb0b06439991f93bde3816a39e9" + "reference": "09cd930fa9ff55747f34c7184532a5a1bd2385b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/iter/zipball/d1323929952ddcb0b06439991f93bde3816a39e9", - "reference": "d1323929952ddcb0b06439991f93bde3816a39e9", + "url": "https://api.github.com/repos/nikic/iter/zipball/09cd930fa9ff55747f34c7184532a5a1bd2385b1", + "reference": "09cd930fa9ff55747f34c7184532a5a1bd2385b1", "shasum": "" }, "require": { "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "vimeo/psalm": "^4.18 || ^5.13" }, "type": "library", "autoload": { @@ -2837,27 +2492,27 @@ ], "support": { "issues": "https://github.com/nikic/iter/issues", - "source": "https://github.com/nikic/iter/tree/v2.2.0" + "source": "https://github.com/nikic/iter/tree/v2.4.0" }, - "time": "2021-08-02T15:04:32+00:00" + "time": "2023-12-10T20:43:19+00:00" }, { "name": "nikic/php-parser", - "version": "v4.15.1", + "version": "v4.19.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", - "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b", + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.1" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", @@ -2893,9 +2548,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1" }, - "time": "2022-09-04T07:30:47+00:00" + "time": "2024-03-17T08:10:35+00:00" }, { "name": "openlss/lib-array2xml", @@ -3129,16 +2784,16 @@ }, { "name": "paragonie/sodium_compat", - "version": "v1.18.1", + "version": "v1.20.1", "source": { "type": "git", "url": "https://github.com/paragonie/sodium_compat.git", - "reference": "f3cf7d1f3214889639da40db1f6c6d4afb4c85f7" + "reference": "1840b98d228bdad83869b191d7e51f9bb6624d8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/f3cf7d1f3214889639da40db1f6c6d4afb4c85f7", - "reference": "f3cf7d1f3214889639da40db1f6c6d4afb4c85f7", + "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/1840b98d228bdad83869b191d7e51f9bb6624d8d", + "reference": "1840b98d228bdad83869b191d7e51f9bb6624d8d", "shasum": "" }, "require": { @@ -3209,22 +2864,22 @@ ], "support": { "issues": "https://github.com/paragonie/sodium_compat/issues", - "source": "https://github.com/paragonie/sodium_compat/tree/v1.18.1" + "source": "https://github.com/paragonie/sodium_compat/tree/v1.20.1" }, - "time": "2022-09-23T14:34:43+00:00" + "time": "2024-04-05T21:00:10+00:00" }, { "name": "phalcon/ide-stubs", - "version": "v5.0.1", + "version": "v5.6.2", "source": { "type": "git", "url": "https://github.com/phalcon/ide-stubs.git", - "reference": "6009efb3af9300d2c24dfc06c5d0850b9b88f641" + "reference": "509423a14c34ea40abb504ff937102ba8207a7b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phalcon/ide-stubs/zipball/6009efb3af9300d2c24dfc06c5d0850b9b88f641", - "reference": "6009efb3af9300d2c24dfc06c5d0850b9b88f641", + "url": "https://api.github.com/repos/phalcon/ide-stubs/zipball/509423a14c34ea40abb504ff937102ba8207a7b4", + "reference": "509423a14c34ea40abb504ff937102ba8207a7b4", "shasum": "" }, "require": { @@ -3278,24 +2933,25 @@ "type": "open_collective" } ], - "time": "2022-09-23T18:22:45+00:00" + "time": "2024-03-14T17:21:14+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "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", @@ -3336,9 +2992,15 @@ "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.3" + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", @@ -3446,28 +3108,35 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", + "version": "5.4.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + "reference": "298d2febfe79d03fe714eb871d5538da55205b1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/298d2febfe79d03fe714eb871d5538da55205b1a", + "reference": "298d2febfe79d03fe714eb871d5538da55205b1a", "shasum": "" }, "require": { + "doctrine/deprecations": "^1.1", "ext-filter": "*", - "php": "^7.2 || ^8.0", + "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", + "phpdocumentor/type-resolver": "^1.7", + "phpstan/phpdoc-parser": "^1.7", "webmozart/assert": "^1.9.1" }, "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" + "mockery/mockery": "~1.3.5", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-webmozart-assert": "^1.2", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^5.13" }, "type": "library", "extra": { @@ -3491,37 +3160,45 @@ }, { "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" + "email": "opensource@ijaap.nl" } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.0" }, - "time": "2021-10-19T17:43:47+00:00" + "time": "2024-04-09T21:13:58+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.6.1", + "version": "1.8.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "77a32518733312af16a44300404e945338981de3" + "reference": "153ae662783729388a584b4361f2545e4d841e3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", - "reference": "77a32518733312af16a44300404e945338981de3", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c", + "reference": "153ae662783729388a584b4361f2545e4d841e3c", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" + "doctrine/deprecations": "^1.0", + "php": "^7.3 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.13" }, "require-dev": { "ext-tokenizer": "*", - "psalm/phar": "^4.8" + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" }, "type": "library", "extra": { @@ -3547,30 +3224,30 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2" }, - "time": "2022-03-15T21:29:03+00:00" + "time": "2024-02-23T11:10:43+00:00" }, { "name": "phpoption/phpoption", - "version": "1.9.0", + "version": "1.9.2", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab" + "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", - "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820", + "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8", - "phpunit/phpunit": "^8.5.28 || ^9.5.21" + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" }, "type": "library", "extra": { @@ -3612,7 +3289,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.0" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.2" }, "funding": [ { @@ -3624,20 +3301,67 @@ "type": "tidelift" } ], - "time": "2022-07-30T15:51:26+00:00" + "time": "2023-11-12T21:59:55+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.28.0", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "cd06d6b1a1b3c75b0b83f97577869fd85a3cd4fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/cd06d6b1a1b3c75b0b83f97577869fd85a3cd4fb", + "reference": "cd06d6b1a1b3c75b0b83f97577869fd85a3cd4fb", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.28.0" + }, + "time": "2024-04-03T18:51:33+00:00" }, { "name": "phpstan/phpstan", - "version": "1.8.6", + "version": "1.10.66", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "c386ab2741e64cc9e21729f891b28b2b10fe6618" + "reference": "94779c987e4ebd620025d9e5fdd23323903950bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/c386ab2741e64cc9e21729f891b28b2b10fe6618", - "reference": "c386ab2741e64cc9e21729f891b28b2b10fe6618", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/94779c987e4ebd620025d9e5fdd23323903950bd", + "reference": "94779c987e4ebd620025d9e5fdd23323903950bd", "shasum": "" }, "require": { @@ -3666,8 +3390,11 @@ "static analysis" ], "support": { + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.8.6" + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" }, "funding": [ { @@ -3683,27 +3410,27 @@ "type": "tidelift" } ], - "time": "2022-09-23T09:54:39+00:00" + "time": "2024-03-28T16:17:31+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.17", + "version": "9.2.31", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8" + "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa94dc41e8661fe90c7316849907cba3007b10d8", - "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/48c34b5d8d983006bd2adc2d0de92963b9155965", + "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.14", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -3718,8 +3445,8 @@ "phpunit/phpunit": "^9.3" }, "suggest": { - "ext-pcov": "*", - "ext-xdebug": "*" + "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": { @@ -3752,7 +3479,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.17" + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.31" }, "funding": [ { @@ -3760,7 +3488,7 @@ "type": "github" } ], - "time": "2022-08-30T12:24:04+00:00" + "time": "2024-03-02T06:37:42+00:00" }, { "name": "phpunit/php-file-iterator", @@ -4005,20 +3733,20 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.25", + "version": "9.6.19", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d" + "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", - "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a1a54a473501ef4cdeaae4e06891674114d79db8", + "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1", + "doctrine/instantiator": "^1.3.1 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", @@ -4029,7 +3757,7 @@ "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-code-coverage": "^9.2.28", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -4047,8 +3775,8 @@ "sebastian/version": "^3.0.2" }, "suggest": { - "ext-soap": "*", - "ext-xdebug": "*" + "ext-soap": "To be able to generate mocks based on WSDL files", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "bin": [ "phpunit" @@ -4056,7 +3784,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.5-dev" + "dev-master": "9.6-dev" } }, "autoload": { @@ -4069,219 +3797,69 @@ }, "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", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.25" - }, - "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": "2022-09-25T03:44:45+00:00" - }, - { - "name": "psr/container", - "version": "1.1.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "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/1.1.2" - }, - "time": "2021-11-05T16:50:12+00:00" - }, - { - "name": "psr/event-dispatcher", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\EventDispatcher\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" - }, - "time": "2019-01-08T18:20:26+00:00" - }, - { - "name": "psr/http-client", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-client.git", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0", - "psr/http-message": "^1.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" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Common interface for HTTP clients", - "homepage": "https://github.com/php-fig/http-client", + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", "keywords": [ - "http", - "http-client", - "psr", - "psr-18" + "phpunit", + "testing", + "xunit" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/master" + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.19" }, - "time": "2020-06-29T06:28:15+00:00" + "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-04-05T04:35:58+00:00" }, { - "name": "psr/http-factory", - "version": "1.0.2", + "name": "psr/container", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/php-fig/http-factory.git", - "reference": "e616d01114759c4c489f93b099585439f795fe35" + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", - "reference": "e616d01114759c4c489f93b099585439f795fe35", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { - "php": ">=7.0.0", - "psr/http-message": "^1.0 || ^2.0" + "php": ">=7.4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Http\\Message\\": "src/" + "Psr\\Container\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4294,48 +3872,47 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interfaces for PSR-7 HTTP message factories", + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", "keywords": [ - "factory", - "http", - "message", - "psr", - "psr-17", - "psr-7", - "request", - "response" + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "time": "2023-04-10T20:10:41+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { - "name": "psr/http-message", - "version": "1.1", + "name": "psr/event-dispatcher", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": ">=7.2.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Http\\Message\\": "src/" + "Psr\\EventDispatcher\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4348,20 +3925,17 @@ "homepage": "http://www.php-fig.org/" } ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", + "description": "Standard interfaces for event handling.", "keywords": [ - "http", - "http-message", + "events", "psr", - "psr-7", - "request", - "response" + "psr-14" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/1.1" + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" }, - "time": "2023-04-04T09:50:52+00:00" + "time": "2019-01-08T18:20:26+00:00" }, { "name": "psr/log", @@ -4414,31 +3988,58 @@ "time": "2021-05-03T11:20:27+00:00" }, { - "name": "ralouphie/getallheaders", - "version": "3.0.3", + "name": "psy/psysh", + "version": "v0.12.3", "source": { "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" + "url": "https://github.com/bobthecow/psysh.git", + "reference": "b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73", + "reference": "b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73", "shasum": "" }, "require": { - "php": ">=5.6" + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^5.0 || ^4.0", + "php": "^8.0 || ^7.4", + "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" }, "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" + "bamarni/composer-bin-plugin": "^1.2" + }, + "suggest": { + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-pdo-sqlite": "The doc command requires SQLite to work.", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." }, + "bin": [ + "bin/psysh" + ], "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.12.x-dev" + }, + "bamarni-bin": { + "bin-links": false, + "forward-command": false + } + }, "autoload": { "files": [ - "src/getallheaders.php" - ] + "src/functions.php" + ], + "psr-4": { + "Psy\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4446,29 +4047,37 @@ ], "authors": [ { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" } ], - "description": "A polyfill for getallheaders.", + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], "support": { - "issues": "https://github.com/ralouphie/getallheaders/issues", - "source": "https://github.com/ralouphie/getallheaders/tree/develop" + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.12.3" }, - "time": "2019-03-08T08:55:37+00:00" + "time": "2024-04-02T15:57:53+00:00" }, { "name": "sebastian/cli-parser", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", "shasum": "" }, "require": { @@ -4503,7 +4112,7 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" }, "funding": [ { @@ -4511,7 +4120,7 @@ "type": "github" } ], - "time": "2020-09-28T06:08:49+00:00" + "time": "2024-03-02T06:27:43+00:00" }, { "name": "sebastian/code-unit", @@ -4700,20 +4309,20 @@ }, { "name": "sebastian/complexity", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", "shasum": "" }, "require": { - "nikic/php-parser": "^4.7", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=7.3" }, "require-dev": { @@ -4745,7 +4354,7 @@ "homepage": "https://github.com/sebastianbergmann/complexity", "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" }, "funding": [ { @@ -4753,20 +4362,20 @@ "type": "github" } ], - "time": "2020-10-26T15:52:27+00:00" + "time": "2023-12-22T06:19:30+00:00" }, { "name": "sebastian/diff", - "version": "4.0.4", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", "shasum": "" }, "require": { @@ -4811,7 +4420,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" }, "funding": [ { @@ -4819,20 +4428,20 @@ "type": "github" } ], - "time": "2020-10-26T13:10:38+00:00" + "time": "2024-03-02T06:30:58+00:00" }, { "name": "sebastian/environment", - "version": "5.1.4", + "version": "5.1.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", - "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", "shasum": "" }, "require": { @@ -4874,7 +4483,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" }, "funding": [ { @@ -4882,20 +4491,20 @@ "type": "github" } ], - "time": "2022-04-03T09:37:03+00:00" + "time": "2023-02-03T06:03:51+00:00" }, { "name": "sebastian/exporter", - "version": "4.0.5", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", "shasum": "" }, "require": { @@ -4951,7 +4560,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" }, "funding": [ { @@ -4959,20 +4568,20 @@ "type": "github" } ], - "time": "2022-09-14T06:03:37+00:00" + "time": "2024-03-02T06:33:00+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.5", + "version": "5.0.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", "shasum": "" }, "require": { @@ -5015,7 +4624,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" }, "funding": [ { @@ -5023,24 +4632,24 @@ "type": "github" } ], - "time": "2022-02-14T08:28:10+00:00" + "time": "2024-03-02T06:35:11+00:00" }, { "name": "sebastian/lines-of-code", - "version": "1.0.3", + "version": "1.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", "shasum": "" }, "require": { - "nikic/php-parser": "^4.6", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=7.3" }, "require-dev": { @@ -5072,7 +4681,7 @@ "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" }, "funding": [ { @@ -5080,7 +4689,7 @@ "type": "github" } ], - "time": "2020-11-28T06:42:11+00:00" + "time": "2023-12-22T06:20:34+00:00" }, { "name": "sebastian/object-enumerator", @@ -5196,16 +4805,16 @@ }, { "name": "sebastian/recursion-context", - "version": "4.0.4", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", "shasum": "" }, "require": { @@ -5244,10 +4853,10 @@ } ], "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" }, "funding": [ { @@ -5255,20 +4864,20 @@ "type": "github" } ], - "time": "2020-10-26T13:17:30+00:00" + "time": "2023-02-03T06:07:39+00:00" }, { "name": "sebastian/resource-operations", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e", + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e", "shasum": "" }, "require": { @@ -5280,7 +4889,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -5301,8 +4910,7 @@ "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4" }, "funding": [ { @@ -5310,20 +4918,20 @@ "type": "github" } ], - "time": "2020-09-28T06:45:17+00:00" + "time": "2024-03-14T16:00:52+00:00" }, { "name": "sebastian/type", - "version": "3.2.0", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", - "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", "shasum": "" }, "require": { @@ -5358,7 +4966,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" + "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" }, "funding": [ { @@ -5366,7 +4974,7 @@ "type": "github" } ], - "time": "2022-09-12T14:47:03+00:00" + "time": "2023-02-03T06:13:03+00:00" }, { "name": "sebastian/version", @@ -5423,16 +5031,16 @@ }, { "name": "seld/jsonlint", - "version": "1.9.0", + "version": "1.10.2", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "4211420d25eba80712bff236a98960ef68b866b7" + "reference": "9bb7db07b5d66d90f6ebf542f09fc67d800e5259" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/4211420d25eba80712bff236a98960ef68b866b7", - "reference": "4211420d25eba80712bff236a98960ef68b866b7", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9bb7db07b5d66d90f6ebf542f09fc67d800e5259", + "reference": "9bb7db07b5d66d90f6ebf542f09fc67d800e5259", "shasum": "" }, "require": { @@ -5459,7 +5067,7 @@ { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "homepage": "https://seld.be" } ], "description": "JSON Linter", @@ -5471,7 +5079,7 @@ ], "support": { "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.9.0" + "source": "https://github.com/Seldaek/jsonlint/tree/1.10.2" }, "funding": [ { @@ -5483,20 +5091,20 @@ "type": "tidelift" } ], - "time": "2022-04-01T13:37:23+00:00" + "time": "2024-02-07T12:57:50+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.7.1", + "version": "3.9.1", "source": { "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619" + "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", + "reference": "267a4405fff1d9c847134db3a3c92f1ab7f77909" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619", - "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/267a4405fff1d9c847134db3a3c92f1ab7f77909", + "reference": "267a4405fff1d9c847134db3a3c92f1ab7f77909", "shasum": "" }, "require": { @@ -5506,11 +5114,11 @@ "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" }, "bin": [ - "bin/phpcs", - "bin/phpcbf" + "bin/phpcbf", + "bin/phpcs" ], "type": "library", "extra": { @@ -5525,106 +5133,58 @@ "authors": [ { "name": "Greg Sherwood", - "role": "lead" - } - ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", - "keywords": [ - "phpcs", - "standards" - ], - "support": { - "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", - "source": "https://github.com/squizlabs/PHP_CodeSniffer", - "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" - }, - "time": "2022-06-18T07:21:10+00:00" - }, - { - "name": "symfony/browser-kit", - "version": "v5.4.11", - "source": { - "type": "git", - "url": "https://github.com/symfony/browser-kit.git", - "reference": "081fe28a26b6bd671dea85ef3a4b5003f3c88027" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/081fe28a26b6bd671dea85ef3a4b5003f3c88027", - "reference": "081fe28a26b6bd671dea85ef3a4b5003f3c88027", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/dom-crawler": "^4.4|^5.0|^6.0", - "symfony/polyfill-php80": "^1.16" - }, - "require-dev": { - "symfony/css-selector": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/mime": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0" - }, - "suggest": { - "symfony/process": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\BrowserKit\\": "" + "role": "Former lead" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Juliette Reinders Folmer", + "role": "Current lead" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" } ], - "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", - "homepage": "https://symfony.com", + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards", + "static analysis" + ], "support": { - "source": "https://github.com/symfony/browser-kit/tree/v5.4.11" + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" + "url": "https://github.com/PHPCSStandards", + "type": "github" }, { - "url": "https://github.com/fabpot", + "url": "https://github.com/jrfnl", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" } ], - "time": "2022-07-27T15:50:05+00:00" + "time": "2024-03-31T21:03:09+00:00" }, { "name": "symfony/console", - "version": "v5.4.12", + "version": "v5.4.36", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "c072aa8f724c3af64e2c7a96b796a4863d24dba1" + "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c072aa8f724c3af64e2c7a96b796a4863d24dba1", - "reference": "c072aa8f724c3af64e2c7a96b796a4863d24dba1", + "url": "https://api.github.com/repos/symfony/console/zipball/39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", + "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", "shasum": "" }, "require": { @@ -5689,12 +5249,12 @@ "homepage": "https://symfony.com", "keywords": [ "cli", - "command line", + "command-line", "console", "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.12" + "source": "https://github.com/symfony/console/tree/v5.4.36" }, "funding": [ { @@ -5710,25 +5270,24 @@ "type": "tidelift" } ], - "time": "2022-08-17T13:18:05+00:00" + "time": "2024-02-20T16:33:57+00:00" }, { "name": "symfony/css-selector", - "version": "v5.4.11", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "c1681789f059ab756001052164726ae88512ae3d" + "reference": "f1d00bddb83a4cb2138564b2150001cb6ce272b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/c1681789f059ab756001052164726ae88512ae3d", - "reference": "c1681789f059ab756001052164726ae88512ae3d", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/f1d00bddb83a4cb2138564b2150001cb6ce272b1", + "reference": "f1d00bddb83a4cb2138564b2150001cb6ce272b1", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "type": "library", "autoload": { @@ -5760,7 +5319,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.4.11" + "source": "https://github.com/symfony/css-selector/tree/v6.0.19" }, "funding": [ { @@ -5776,29 +5335,29 @@ "type": "tidelift" } ], - "time": "2022-06-27T16:58:25+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.2", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.0.2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -5827,82 +5386,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.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": "2022-01-02T09:53:40+00:00" - }, - { - "name": "symfony/dom-crawler", - "version": "v5.4.12", - "source": { - "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "291c1e92281a09152dda089f782e23dedd34bd4f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/291c1e92281a09152dda089f782e23dedd34bd4f", - "reference": "291c1e92281a09152dda089f782e23dedd34bd4f", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "masterminds/html5": "<2.6" - }, - "require-dev": { - "masterminds/html5": "^2.6", - "symfony/css-selector": "^4.4|^5.0|^6.0" - }, - "suggest": { - "symfony/css-selector": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" - }, - "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 DOM navigation for HTML and XML documents", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.4.12" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.2" }, "funding": [ { @@ -5918,44 +5402,42 @@ "type": "tidelift" } ], - "time": "2022-08-03T13:09:21+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.9", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc" + "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", - "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2eaf8e63bc5b8cefabd4a800157f0d0c094f677a", + "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/event-dispatcher-contracts": "^2|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "symfony/event-dispatcher-contracts": "^2|^3" }, "conflict": { - "symfony/dependency-injection": "<4.4" + "symfony/dependency-injection": "<5.4" }, "provide": { "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0" + "symfony/event-dispatcher-implementation": "2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", "symfony/service-contracts": "^1.1|^2|^3", - "symfony/stopwatch": "^4.4|^5.0|^6.0" + "symfony/stopwatch": "^5.4|^6.0" }, "suggest": { "symfony/dependency-injection": "", @@ -5987,7 +5469,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.9" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.19" }, "funding": [ { @@ -6003,24 +5485,24 @@ "type": "tidelift" } ], - "time": "2022-05-05T16:45:39+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v2.5.2", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1" + "reference": "7bc61cc2db649b4637d331240c5346dcc7708051" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051", + "reference": "7bc61cc2db649b4637d331240c5346dcc7708051", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "psr/event-dispatcher": "^1" }, "suggest": { @@ -6029,7 +5511,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -6066,7 +5548,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.2" }, "funding": [ { @@ -6082,20 +5564,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/filesystem", - "version": "v5.4.12", + "version": "v5.4.38", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "2d67c1f9a1937406a9be3171b4b22250c0a11447" + "reference": "899330a01056077271e2f614c7b28b0379a671eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/2d67c1f9a1937406a9be3171b4b22250c0a11447", - "reference": "2d67c1f9a1937406a9be3171b4b22250c0a11447", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/899330a01056077271e2f614c7b28b0379a671eb", + "reference": "899330a01056077271e2f614c7b28b0379a671eb", "shasum": "" }, "require": { @@ -6130,7 +5612,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.12" + "source": "https://github.com/symfony/filesystem/tree/v5.4.38" }, "funding": [ { @@ -6146,20 +5628,20 @@ "type": "tidelift" } ], - "time": "2022-08-02T13:48:16+00:00" + "time": "2024-03-21T08:05:07+00:00" }, { "name": "symfony/finder", - "version": "v5.4.11", + "version": "v5.4.35", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c" + "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/7872a66f57caffa2916a584db1aa7f12adc76f8c", - "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c", + "url": "https://api.github.com/repos/symfony/finder/zipball/abe6d6f77d9465fed3cd2d029b29d03b56b56435", + "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435", "shasum": "" }, "require": { @@ -6193,7 +5675,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.11" + "source": "https://github.com/symfony/finder/tree/v5.4.35" }, "funding": [ { @@ -6209,20 +5691,20 @@ "type": "tidelift" } ], - "time": "2022-07-29T07:37:50+00:00" + "time": "2024-01-23T13:51:25+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.26.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", "shasum": "" }, "require": { @@ -6236,9 +5718,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -6275,7 +5754,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" }, "funding": [ { @@ -6291,20 +5770,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.26.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "433d05519ce6990bf3530fba6957499d327395c2" + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2", - "reference": "433d05519ce6990bf3530fba6957499d327395c2", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", "shasum": "" }, "require": { @@ -6315,9 +5794,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -6356,7 +5832,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" }, "funding": [ { @@ -6372,20 +5848,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.26.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", "shasum": "" }, "require": { @@ -6396,9 +5872,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -6440,7 +5913,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" }, "funding": [ { @@ -6456,20 +5929,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.26.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", "shasum": "" }, "require": { @@ -6483,9 +5956,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -6523,7 +5993,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" }, "funding": [ { @@ -6539,20 +6009,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.26.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", - "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", "shasum": "" }, "require": { @@ -6560,9 +6030,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -6606,7 +6073,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" }, "funding": [ { @@ -6622,20 +6089,20 @@ "type": "tidelift" } ], - "time": "2022-05-10T07:21:04+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.26.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" + "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", - "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d", + "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d", "shasum": "" }, "require": { @@ -6643,9 +6110,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -6685,7 +6149,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0" }, "funding": [ { @@ -6701,20 +6165,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/process", - "version": "v5.4.11", + "version": "v5.4.36", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1" + "reference": "4fdf34004f149cc20b2f51d7d119aa500caad975" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/6e75fe6874cbc7e4773d049616ab450eff537bf1", - "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1", + "url": "https://api.github.com/repos/symfony/process/zipball/4fdf34004f149cc20b2f51d7d119aa500caad975", + "reference": "4fdf34004f149cc20b2f51d7d119aa500caad975", "shasum": "" }, "require": { @@ -6747,7 +6211,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.11" + "source": "https://github.com/symfony/process/tree/v5.4.36" }, "funding": [ { @@ -6763,26 +6227,25 @@ "type": "tidelift" } ], - "time": "2022-06-27T16:58:25+00:00" + "time": "2024-02-12T15:49:53+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.2", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d78d39c1599bd1188b8e26bb341da52c3c6d8a66", + "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1|^3" + "php": ">=8.0.2", + "psr/container": "^2.0" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -6793,7 +6256,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -6830,7 +6293,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/service-contracts/tree/v3.0.2" }, "funding": [ { @@ -6846,38 +6309,37 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:17:29+00:00" + "time": "2022-05-30T19:17:58+00:00" }, { "name": "symfony/string", - "version": "v5.4.12", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "2fc515e512d721bf31ea76bd02fe23ada4640058" + "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/2fc515e512d721bf31ea76bd02fe23ada4640058", - "reference": "2fc515e512d721bf31ea76bd02fe23ada4640058", + "url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a", + "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "~1.15" + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/translation-contracts": ">=3.0" + "symfony/translation-contracts": "<2.0" }, "require-dev": { - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0|^6.0" + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/translation-contracts": "^2.0|^3.0", + "symfony/var-exporter": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -6916,7 +6378,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.12" + "source": "https://github.com/symfony/string/tree/v6.0.19" }, "funding": [ { @@ -6932,20 +6394,20 @@ "type": "tidelift" } ], - "time": "2022-08-12T17:03:11+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.4.11", + "version": "v5.4.38", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "b8f306d7b8ef34fb3db3305be97ba8e088fb4861" + "reference": "ae1d949ccc57d3f6662e4256b47ac9fbfa9651ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b8f306d7b8ef34fb3db3305be97ba8e088fb4861", - "reference": "b8f306d7b8ef34fb3db3305be97ba8e088fb4861", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ae1d949ccc57d3f6662e4256b47ac9fbfa9651ae", + "reference": "ae1d949ccc57d3f6662e4256b47ac9fbfa9651ae", "shasum": "" }, "require": { @@ -6954,12 +6416,12 @@ "symfony/polyfill-php80": "^1.16" }, "conflict": { - "phpunit/phpunit": "<5.4.3", "symfony/console": "<4.4" }, "require-dev": { "ext-iconv": "*", "symfony/console": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", "symfony/process": "^4.4|^5.0|^6.0", "symfony/uid": "^5.1|^6.0", "twig/twig": "^2.13|^3.0.4" @@ -7005,7 +6467,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.11" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.38" }, "funding": [ { @@ -7021,32 +6483,31 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:00:38+00:00" + "time": "2024-03-19T10:19:25+00:00" }, { "name": "symfony/yaml", - "version": "v5.4.12", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "7a3aa21ac8ab1a96cc6de5bbcab4bc9fc943b18c" + "reference": "deec3a812a0305a50db8ae689b183f43d915c884" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/7a3aa21ac8ab1a96cc6de5bbcab4bc9fc943b18c", - "reference": "7a3aa21ac8ab1a96cc6de5bbcab4bc9fc943b18c", + "url": "https://api.github.com/repos/symfony/yaml/zipball/deec3a812a0305a50db8ae689b183f43d915c884", + "reference": "deec3a812a0305a50db8ae689b183f43d915c884", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<5.3" + "symfony/console": "<5.4" }, "require-dev": { - "symfony/console": "^5.3|^6.0" + "symfony/console": "^5.4|^6.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -7080,7 +6541,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.12" + "source": "https://github.com/symfony/yaml/tree/v6.0.19" }, "funding": [ { @@ -7096,43 +6557,50 @@ "type": "tidelift" } ], - "time": "2022-08-02T15:52:22+00:00" + "time": "2023-01-11T11:50:03+00:00" }, { "name": "thecodingmachine/safe", - "version": "v1.3.3", + "version": "v2.5.0", "source": { "type": "git", "url": "https://github.com/thecodingmachine/safe.git", - "reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc" + "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/a8ab0876305a4cdaef31b2350fcb9811b5608dbc", - "reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc", + "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/3115ecd6b4391662b4931daac4eba6b07a2ac1f0", + "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0", "shasum": "" }, "require": { - "php": ">=7.2" + "php": "^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12", + "phpstan/phpstan": "^1.5", + "phpunit/phpunit": "^9.5", "squizlabs/php_codesniffer": "^3.2", - "thecodingmachine/phpstan-strict-rules": "^0.12" + "thecodingmachine/phpstan-strict-rules": "^1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.1-dev" + "dev-master": "2.2.x-dev" } }, "autoload": { "files": [ "deprecated/apc.php", + "deprecated/array.php", + "deprecated/datetime.php", "deprecated/libevent.php", + "deprecated/misc.php", + "deprecated/password.php", "deprecated/mssql.php", "deprecated/stats.php", + "deprecated/strings.php", "lib/special_cases.php", + "deprecated/mysqli.php", "generated/apache.php", "generated/apcu.php", "generated/array.php", @@ -7153,6 +6621,7 @@ "generated/fpm.php", "generated/ftp.php", "generated/funchand.php", + "generated/gettext.php", "generated/gmp.php", "generated/gnupg.php", "generated/hash.php", @@ -7162,7 +6631,6 @@ "generated/image.php", "generated/imap.php", "generated/info.php", - "generated/ingres-ii.php", "generated/inotify.php", "generated/json.php", "generated/ldap.php", @@ -7171,20 +6639,14 @@ "generated/mailparse.php", "generated/mbstring.php", "generated/misc.php", - "generated/msql.php", "generated/mysql.php", - "generated/mysqli.php", - "generated/mysqlndMs.php", - "generated/mysqlndQc.php", "generated/network.php", "generated/oci8.php", "generated/opcache.php", "generated/openssl.php", "generated/outcontrol.php", - "generated/password.php", "generated/pcntl.php", "generated/pcre.php", - "generated/pdf.php", "generated/pgsql.php", "generated/posix.php", "generated/ps.php", @@ -7195,7 +6657,6 @@ "generated/sem.php", "generated/session.php", "generated/shmop.php", - "generated/simplexml.php", "generated/sockets.php", "generated/sodium.php", "generated/solr.php", @@ -7218,13 +6679,13 @@ "generated/zip.php", "generated/zlib.php" ], - "psr-4": { - "Safe\\": [ - "lib/", - "deprecated/", - "generated/" - ] - } + "classmap": [ + "lib/DateTime.php", + "lib/DateTimeImmutable.php", + "lib/Exceptions/", + "deprecated/Exceptions/", + "generated/Exceptions/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7233,22 +6694,22 @@ "description": "PHP core functions that throw exceptions instead of returning FALSE on error", "support": { "issues": "https://github.com/thecodingmachine/safe/issues", - "source": "https://github.com/thecodingmachine/safe/tree/v1.3.3" + "source": "https://github.com/thecodingmachine/safe/tree/v2.5.0" }, - "time": "2020-10-28T17:51:34+00:00" + "time": "2023-04-05T11:54:14+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.1", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -7277,7 +6738,7 @@ "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.1" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -7285,7 +6746,7 @@ "type": "github" } ], - "time": "2021-07-28T10:34:58+00:00" + "time": "2024-03-03T12:36:25+00:00" }, { "name": "ulrichsg/getopt-php", @@ -7339,16 +6800,16 @@ }, { "name": "vimeo/psalm", - "version": "4.27.0", + "version": "4.30.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "faf106e717c37b8c81721845dba9de3d8deed8ff" + "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/faf106e717c37b8c81721845dba9de3d8deed8ff", - "reference": "faf106e717c37b8c81721845dba9de3d8deed8ff", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/d0bc6e25d89f649e4f36a534f330f8bb4643dd69", + "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69", "shasum": "" }, "require": { @@ -7387,6 +6848,7 @@ "phpdocumentor/reflection-docblock": "^5", "phpmyadmin/sql-parser": "5.1.0||dev-master", "phpspec/prophecy": ">=1.9.0", + "phpstan/phpdoc-parser": "1.2.* || 1.6.4", "phpunit/phpunit": "^9.0", "psalm/plugin-phpunit": "^0.16", "slevomat/coding-standard": "^7.0", @@ -7440,43 +6902,49 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.27.0" + "source": "https://github.com/vimeo/psalm/tree/4.30.0" }, - "time": "2022-08-31T13:47:09+00:00" + "time": "2022-11-06T20:37:08+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v4.2.2", + "version": "v5.6.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "77e974614d2ead521f18069dccc571696f52b8dc" + "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/77e974614d2ead521f18069dccc571696f52b8dc", - "reference": "77e974614d2ead521f18069dccc571696f52b8dc", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", + "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", "shasum": "" }, "require": { - "php": "^5.5.9 || ^7.0 || ^8.0", - "phpoption/phpoption": "^1.7.3", - "symfony/polyfill-ctype": "^1.17" + "ext-pcre": "*", + "graham-campbell/result-type": "^1.1.2", + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.2", + "symfony/polyfill-ctype": "^1.24", + "symfony/polyfill-mbstring": "^1.24", + "symfony/polyfill-php80": "^1.24" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", + "bamarni/composer-bin-plugin": "^1.8.2", "ext-filter": "*", - "ext-pcre": "*", - "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.21" + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" }, "suggest": { - "ext-filter": "Required to use the boolean validator.", - "ext-pcre": "Required to use most of the library." + "ext-filter": "Required to use the boolean validator." }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "5.6-dev" } }, "autoload": { @@ -7508,7 +6976,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v4.2.2" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0" }, "funding": [ { @@ -7520,7 +6988,7 @@ "type": "tidelift" } ], - "time": "2021-12-12T23:07:53+00:00" + "time": "2023-11-12T22:43:29+00:00" }, { "name": "webmozart/assert", @@ -7638,11 +7106,11 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": ">=7.4", - "ext-phalcon": ">=5.0.1" + "php": ">=8.0", + "ext-phalcon": ">=5.5" }, "platform-dev": { "ext-pdo": "*" }, - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } From 74f6015081279051ce79cf17d13ce5e44d4aedf7 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 23:09:24 +0100 Subject: [PATCH 09/23] #151 - Change usage from `getenv()` to `$_ENV` --- tests/mysql/ColumnTypesCest.php | 2 +- tests/mysql/MigrationsCest.php | 16 ++++++++-------- tests/postgresql/Issue104Cest.php | 2 +- tests/postgresql/Issue76Cest.php | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/mysql/ColumnTypesCest.php b/tests/mysql/ColumnTypesCest.php index b7a411f..4e2c530 100644 --- a/tests/mysql/ColumnTypesCest.php +++ b/tests/mysql/ColumnTypesCest.php @@ -122,7 +122,7 @@ public function columnDefinition(MysqlTester $I, Example $example): void $migrationsDir = codecept_output_dir('tests/var/output/' . __FUNCTION__); $I->getPhalconDb() - ->createTable($tableName, getenv('MYSQL_TEST_DB_DATABASE'), [ + ->createTable($tableName, $_ENV['MYSQL_TEST_DB_DATABASE'], [ 'columns' => [ new Column($columnName, $definition), ], diff --git a/tests/mysql/MigrationsCest.php b/tests/mysql/MigrationsCest.php index 6e67218..e36773b 100644 --- a/tests/mysql/MigrationsCest.php +++ b/tests/mysql/MigrationsCest.php @@ -79,7 +79,7 @@ public function generateTwoTables(MysqlTester $I): void $migrationsDir = codecept_output_dir(__FUNCTION__); $I->getPhalconDb() - ->createTable('test', getenv('MYSQL_TEST_DB_DATABASE'), [ + ->createTable('test', $_ENV['MYSQL_TEST_DB_DATABASE'], [ 'columns' => [ new Column('column_name', [ 'type' => Column::TYPE_INTEGER, @@ -149,7 +149,7 @@ public function typeDateWithManyRows(MysqlTester $I): void $migrationsDir = codecept_output_dir(__FUNCTION__); $I->getPhalconDb() - ->createTable($tableName, getenv('MYSQL_TEST_DB_DATABASE'), [ + ->createTable($tableName, $_ENV['MYSQL_TEST_DB_DATABASE'], [ 'columns' => [ new Column('id', [ 'type' => Column::TYPE_INTEGER, @@ -254,7 +254,7 @@ public function phalconMigrationsTable(MysqlTester $I): void */ public function generateWithAutoIncrement(MysqlTester $I): void { - $dbName = getenv('MYSQL_TEST_DB_DATABASE'); + $dbName = $_ENV['MYSQL_TEST_DB_DATABASE']; $tableName = 'generate_ai'; $migrationsDir = codecept_output_dir(__FUNCTION__); @@ -306,7 +306,7 @@ public function generateWithAutoIncrement(MysqlTester $I): void */ public function generateWithoutAutoIncrement(MysqlTester $I): void { - $dbName = getenv('MYSQL_TEST_DB_DATABASE'); + $dbName = $_ENV['MYSQL_TEST_DB_DATABASE']; $tableName = 'generate_no_ai'; $migrationsDir = codecept_output_dir(__FUNCTION__); @@ -391,7 +391,7 @@ public function runSpecificMigrations(MysqlTester $I, Example $example): void */ public function generateWithExportOnCreate(MysqlTester $I): void { - $dbName = getenv('MYSQL_TEST_DB_DATABASE'); + $dbName = $_ENV['MYSQL_TEST_DB_DATABASE']; $tableName = 'on_create'; $migrationsDir = codecept_output_dir(__FUNCTION__); @@ -438,7 +438,7 @@ public function generateWithExportOnCreate(MysqlTester $I): void public function updateColumnUnsigned(MysqlTester $mysqlTester): void { - $dbName = getenv('MYSQL_TEST_DB_DATABASE'); + $dbName = $_ENV['MYSQL_TEST_DB_DATABASE']; $tableName = 'update_unsigned_column'; $migrationsDir = codecept_output_dir(__FUNCTION__); @@ -483,7 +483,7 @@ public function updateColumnUnsigned(MysqlTester $mysqlTester): void public function nullableTimestamp(MysqlTester $I): void { - $dbName = getenv('MYSQL_TEST_DB_DATABASE'); + $dbName = $_ENV['MYSQL_TEST_DB_DATABASE']; $tableName = 'nullable_timestamp'; $migrationsDir = codecept_output_dir(__FUNCTION__); @@ -631,7 +631,7 @@ protected function specificMigrationsDataProvider(): array protected function createSingleColumnTable(MysqlTester $I, string $tableName = 'test'): void { $I->getPhalconDb() - ->createTable($tableName, getenv('MYSQL_TEST_DB_DATABASE'), [ + ->createTable($tableName, $_ENV['MYSQL_TEST_DB_DATABASE'], [ 'columns' => [ new Column('column_name', [ 'type' => Column::TYPE_INTEGER, diff --git a/tests/postgresql/Issue104Cest.php b/tests/postgresql/Issue104Cest.php index 310dafa..0d2ee9a 100644 --- a/tests/postgresql/Issue104Cest.php +++ b/tests/postgresql/Issue104Cest.php @@ -49,7 +49,7 @@ public function normalRun(PostgresqlTester $I): void ->execute("SET session_replication_role = 'origin';") ; - $schema = getenv('POSTGRES_TEST_DB_SCHEMA'); + $schema = $_ENV['POSTGRES_TEST_DB_SCHEMA']; $I->assertTrue($I->getPhalconDb() ->tableExists('phalcon_migrations', $schema)); diff --git a/tests/postgresql/Issue76Cest.php b/tests/postgresql/Issue76Cest.php index 151fc4c..5a01543 100644 --- a/tests/postgresql/Issue76Cest.php +++ b/tests/postgresql/Issue76Cest.php @@ -41,7 +41,7 @@ public function normalRun(PostgresqlTester $I): void ]); ob_clean(); - $schema = getenv('POSTGRES_TEST_DB_SCHEMA'); + $schema = $_ENV['POSTGRES_TEST_DB_SCHEMA']; $query1 = "SELECT COUNT(*) cnt FROM $schema.user_details WHERE user_id = 62 AND last_name IS NULL"; $I->assertTrue($I->getPhalconDb() From e24a77124f03eed2ee2c816ac6e95172f9561d3b Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 23:09:54 +0100 Subject: [PATCH 10/23] #151 - Fix deprecation message --- tests/mysql/MigrationsCest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/mysql/MigrationsCest.php b/tests/mysql/MigrationsCest.php index e36773b..74d15be 100644 --- a/tests/mysql/MigrationsCest.php +++ b/tests/mysql/MigrationsCest.php @@ -175,7 +175,7 @@ public function typeDateWithManyRows(MysqlTester $I): void for ($id = 1; $id <= 10000; $id++) { $data[] = [ 'id' => $id, - 'name' => $faker->name, + 'name' => $faker->name(), 'create_date' => $faker->date(), ]; } From 3b740e795e64933797e7ab0e34c03fffa0797fb1 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 23:12:57 +0100 Subject: [PATCH 11/23] #151 - Rename directory docker/ to .docker/ --- {docker => .docker}/8.0/.bashrc | 0 {docker => .docker}/8.0/Dockerfile | 0 {docker => .docker}/8.0/extra.ini | 0 {docker => .docker}/8.1/.bashrc | 0 {docker => .docker}/8.1/Dockerfile | 0 {docker => .docker}/8.1/extra.ini | 0 {docker => .docker}/8.2/.bashrc | 0 {docker => .docker}/8.2/Dockerfile | 0 {docker => .docker}/8.2/extra.ini | 0 {docker => .docker}/8.3/.bashrc | 0 {docker => .docker}/8.3/Dockerfile | 0 {docker => .docker}/8.3/extra.ini | 0 docker-compose.yml | 10 ++++------ 13 files changed, 4 insertions(+), 6 deletions(-) rename {docker => .docker}/8.0/.bashrc (100%) rename {docker => .docker}/8.0/Dockerfile (100%) rename {docker => .docker}/8.0/extra.ini (100%) rename {docker => .docker}/8.1/.bashrc (100%) rename {docker => .docker}/8.1/Dockerfile (100%) rename {docker => .docker}/8.1/extra.ini (100%) rename {docker => .docker}/8.2/.bashrc (100%) rename {docker => .docker}/8.2/Dockerfile (100%) rename {docker => .docker}/8.2/extra.ini (100%) rename {docker => .docker}/8.3/.bashrc (100%) rename {docker => .docker}/8.3/Dockerfile (100%) rename {docker => .docker}/8.3/extra.ini (100%) diff --git a/docker/8.0/.bashrc b/.docker/8.0/.bashrc similarity index 100% rename from docker/8.0/.bashrc rename to .docker/8.0/.bashrc diff --git a/docker/8.0/Dockerfile b/.docker/8.0/Dockerfile similarity index 100% rename from docker/8.0/Dockerfile rename to .docker/8.0/Dockerfile diff --git a/docker/8.0/extra.ini b/.docker/8.0/extra.ini similarity index 100% rename from docker/8.0/extra.ini rename to .docker/8.0/extra.ini diff --git a/docker/8.1/.bashrc b/.docker/8.1/.bashrc similarity index 100% rename from docker/8.1/.bashrc rename to .docker/8.1/.bashrc diff --git a/docker/8.1/Dockerfile b/.docker/8.1/Dockerfile similarity index 100% rename from docker/8.1/Dockerfile rename to .docker/8.1/Dockerfile diff --git a/docker/8.1/extra.ini b/.docker/8.1/extra.ini similarity index 100% rename from docker/8.1/extra.ini rename to .docker/8.1/extra.ini diff --git a/docker/8.2/.bashrc b/.docker/8.2/.bashrc similarity index 100% rename from docker/8.2/.bashrc rename to .docker/8.2/.bashrc diff --git a/docker/8.2/Dockerfile b/.docker/8.2/Dockerfile similarity index 100% rename from docker/8.2/Dockerfile rename to .docker/8.2/Dockerfile diff --git a/docker/8.2/extra.ini b/.docker/8.2/extra.ini similarity index 100% rename from docker/8.2/extra.ini rename to .docker/8.2/extra.ini diff --git a/docker/8.3/.bashrc b/.docker/8.3/.bashrc similarity index 100% rename from docker/8.3/.bashrc rename to .docker/8.3/.bashrc diff --git a/docker/8.3/Dockerfile b/.docker/8.3/Dockerfile similarity index 100% rename from docker/8.3/Dockerfile rename to .docker/8.3/Dockerfile diff --git a/docker/8.3/extra.ini b/.docker/8.3/extra.ini similarity index 100% rename from docker/8.3/extra.ini rename to .docker/8.3/extra.ini diff --git a/docker-compose.yml b/docker-compose.yml index 3d36cf6..9596e0d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,12 +1,10 @@ # For local development only. -version: '3' - services: migrations-8.0: container_name: migrations-8.0 hostname: migrations-80 - build: docker/8.0 + build: .docker/8.0 working_dir: /srv volumes: - .:/srv @@ -14,7 +12,7 @@ services: migrations-8.1: container_name: migrations-8.1 hostname: migrations-81 - build: docker/8.1 + build: .docker/8.1 working_dir: /srv volumes: - .:/srv @@ -22,7 +20,7 @@ services: migrations-8.2: container_name: migrations-8.2 hostname: migrations-82 - build: docker/8.2 + build: .docker/8.2 working_dir: /srv volumes: - .:/srv @@ -30,7 +28,7 @@ services: migrations-8.3: container_name: migrations-8.3 hostname: migrations-83 - build: docker/8.3 + build: .docker/8.3 working_dir: /srv volumes: - .:/srv From d2534390c55989f3f451c1c360301a978c292c81 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 23:46:55 +0100 Subject: [PATCH 12/23] #151 - Remove redundant comments and code --- src/Console/Color.php | 61 +------ src/Console/Commands/CommandsException.php | 3 - src/Console/Commands/CommandsInterface.php | 8 +- src/Console/Commands/Migration.php | 28 +-- src/Console/OptionStack.php | 13 +- .../Db/UnknownColumnTypeException.php | 12 +- src/Migration/Action/Generate.php | 56 +----- src/Migrations.php | 36 +--- src/Mvc/Model/Migration.php | 4 +- .../Migration/TableAware/ListTablesDb.php | 4 +- .../TableAware/ListTablesInterface.php | 5 - .../TableAware/ListTablesIterator.php | 5 - src/Version/IncrementalItem.php | 4 +- tests/mysql/ColumnTypesCest.php | 78 ++++----- tests/mysql/Issue76Cest.php | 10 +- tests/mysql/Issue94Cest.php | 64 ++++--- tests/postgresql/ColumnTypesCest.php | 25 ++- tests/postgresql/Issue104Cest.php | 15 +- tests/postgresql/Issue76Cest.php | 8 +- tests/postgresql/IssuesCest.php | 161 ++++++++---------- tests/postgresql/MigrationsCest.php | 99 +++++------ 21 files changed, 228 insertions(+), 471 deletions(-) diff --git a/src/Console/Color.php b/src/Console/Color.php index e46bf10..efc74b4 100644 --- a/src/Console/Color.php +++ b/src/Console/Color.php @@ -67,9 +67,9 @@ final class Color public const AT_STRIKE = 9; /** - * @var array Map of supported foreground colors + * Map of supported foreground colors */ - private static $fg = [ + private static array $fg = [ self::FG_BLACK => '0;30', self::FG_DARK_GRAY => '1;30', self::FG_RED => '0;31', @@ -89,9 +89,9 @@ final class Color ]; /** - * @var array Map of supported background colors + * Map of supported background colors */ - private static $bg = [ + private static array $bg = [ self::BG_BLACK => '40', self::BG_RED => '41', self::BG_GREEN => '42', @@ -103,9 +103,9 @@ final class Color ]; /** - * @var array Map of supported attributes + * Map of supported attributes */ - private static $at = [ + private static array $at = [ self::AT_NORMAL => '0', self::AT_BOLD => '1', self::AT_ITALIC => '3', @@ -119,8 +119,6 @@ final class Color /** * Identify if console supports colors - * - * @return bool */ public static function isSupportedShell(): bool { @@ -133,15 +131,6 @@ public static function isSupportedShell(): bool /** * Colorizes the string using provided colors. - * - * @static - * - * @param string $string - * @param null|integer $fg - * @param null|integer $at - * @param null|integer $bg - * - * @return string */ public static function colorize(string $string, int $fg = null, int $at = null, int $bg = null): string { @@ -173,25 +162,13 @@ public static function colorize(string $string, int $fg = null, int $at = null, return $colored; } - /** - * @param string $msg - * - * @return string - */ public static function head(string $msg): string { - return static::colorize($msg, Color::FG_BROWN); + return Color::colorize($msg, Color::FG_BROWN); } /** * Color style for error messages. - * - * @static - * - * @param string $msg - * @param string $prefix - * - * @return string */ public static function error(string $msg, string $prefix = 'Error: '): string { @@ -206,13 +183,6 @@ public static function error(string $msg, string $prefix = 'Error: '): string /** * Color style for fatal error messages. - * - * @static - * - * @param string $msg - * @param string $prefix - * - * @return string */ public static function fatal(string $msg, string $prefix = 'Fatal Error: '): string { @@ -227,12 +197,6 @@ public static function fatal(string $msg, string $prefix = 'Fatal Error: '): str /** * Color style for success messages. - * - * @static - * - * @param string $msg - * - * @return string */ public static function success(string $msg): string { @@ -247,12 +211,6 @@ public static function success(string $msg): string /** * Color style for info messages. - * - * @static - * - * @param string $msg - * - * @return string */ public static function info(string $msg): string { @@ -269,11 +227,6 @@ public static function info(string $msg): string * Output tab space * * Depending on length of string. - * - * @param string $string - * @param int $tabSize - * - * @return int */ protected static function tabSpaces(string $string, int $tabSize = 4): int { diff --git a/src/Console/Commands/CommandsException.php b/src/Console/Commands/CommandsException.php index 73f2dd8..7f88d0f 100644 --- a/src/Console/Commands/CommandsException.php +++ b/src/Console/Commands/CommandsException.php @@ -15,9 +15,6 @@ use Exception; -/** - * Commands Exception - */ class CommandsException extends Exception { } diff --git a/src/Console/Commands/CommandsInterface.php b/src/Console/Commands/CommandsInterface.php index bce66e9..fa78e71 100644 --- a/src/Console/Commands/CommandsInterface.php +++ b/src/Console/Commands/CommandsInterface.php @@ -22,15 +22,11 @@ interface CommandsInterface { /** * Executes the command. - * - * @return mixed */ - public function run(); + public function run(): void; /** * Prints help on the usage of the command. - * - * @return void */ public function getHelp(): void; @@ -40,8 +36,6 @@ public function getHelp(): void; * This method returns a list of available parameters for the current command. * The list must be represented as pairs key-value. * Where key is the parameter name and value is the short description. - * - * @return array */ public function getPossibleParams(): array; } diff --git a/src/Console/Commands/Migration.php b/src/Console/Commands/Migration.php index 7fad1ad..9aa5377 100644 --- a/src/Console/Commands/Migration.php +++ b/src/Console/Commands/Migration.php @@ -47,22 +47,10 @@ */ class Migration implements CommandsInterface { - /** - * @var Parser - */ - protected $parser; - - /** - * @param Parser $parser - */ - final public function __construct(Parser $parser) + final public function __construct(protected Parser $parser) { - $this->parser = $parser; } - /** - * @return array - */ public function getPossibleParams(): array { return [ @@ -208,8 +196,6 @@ public function run(): void /** * Print Help information - * - * @return void */ public function getHelp(): void { @@ -232,12 +218,7 @@ public function getHelp(): void $this->printParameters($this->getPossibleParams()); } - /** - * @param mixed $config - * - * @return array - */ - protected function exportFromTables($config): array + protected function exportFromTables(Config $config): array { $tables = []; $application = $config->get('application') ?? []; @@ -261,6 +242,7 @@ protected function exportFromTables($config): array * * @return Config * @throws CommandsException + * @throws \Phalcon\Config\Exception */ protected function getConfig(string $path): Config { @@ -280,10 +262,8 @@ protected function getConfig(string $path): Config * Determines correct adapter by file name * and load config * - * @param string $fileName Config file name - * - * @return Config * @throws CommandsException + * @throws \Phalcon\Config\Exception */ protected function loadConfig(string $fileName): Config { diff --git a/src/Console/OptionStack.php b/src/Console/OptionStack.php index 9a60c2a..da6b1f8 100644 --- a/src/Console/OptionStack.php +++ b/src/Console/OptionStack.php @@ -25,19 +25,8 @@ */ class OptionStack implements ArrayAccess { - /** - * Parameters received by the script. - * - * @var array - */ - protected array $options = []; - - /** - * @param array $options - */ - public function __construct(array $options = []) + public function __construct(protected array $options = []) { - $this->options = $options; } /** diff --git a/src/Exception/Db/UnknownColumnTypeException.php b/src/Exception/Db/UnknownColumnTypeException.php index 36b79a9..6fbf64b 100644 --- a/src/Exception/Db/UnknownColumnTypeException.php +++ b/src/Exception/Db/UnknownColumnTypeException.php @@ -18,15 +18,8 @@ class UnknownColumnTypeException extends Exception { - /** - * @var ColumnInterface - */ - protected ColumnInterface $column; - - public function __construct(ColumnInterface $column) + public function __construct(protected ColumnInterface $column) { - $this->column = $column; - $message = sprintf( 'Unrecognized data type "%s" for column "%s".', $column->getType(), @@ -36,9 +29,6 @@ public function __construct(ColumnInterface $column) parent::__construct($message, 0); } - /** - * @return ColumnInterface - */ public function getColumn(): ColumnInterface { return $this->column; diff --git a/src/Migration/Action/Generate.php b/src/Migration/Action/Generate.php index 955afca..8506610 100644 --- a/src/Migration/Action/Generate.php +++ b/src/Migration/Action/Generate.php @@ -22,9 +22,7 @@ use Phalcon\Db\Enum; use Phalcon\Db\Exception; use Phalcon\Db\Index; -use Phalcon\Db\IndexInterface; use Phalcon\Db\Reference; -use Phalcon\Db\ReferenceInterface; use Phalcon\Migrations\Exception\Db\UnknownColumnTypeException; use Phalcon\Migrations\Exception\RuntimeException; use Phalcon\Migrations\Generator\Snippet; @@ -143,31 +141,6 @@ class Generate */ private ?ClassType $class = null; - /** - * SQL Adapter Name - */ - private string $adapter; - - /** - * Table columns - */ - protected array $columns; - - /** - * Table indexes - */ - protected array $indexes; - - /** - * Table foreign keys and another references - */ - protected array $references; - - /** - * Table options - */ - protected array $options; - protected ?string $primaryColumnName = null; /** @@ -182,27 +155,13 @@ class Generate */ protected array $quoteWrappedColumns = []; - /** - * Generate constructor. - * - * @param string $adapter - * @param array|ColumnInterface[] $columns - * @param array|IndexInterface[] $indexes - * @param array|ReferenceInterface[] $references - * @param array $options - */ public function __construct( - string $adapter, - array $columns = [], - array $indexes = [], - array $references = [], - array $options = [] + private string $adapter, + protected array $columns = [], + protected array $indexes = [], + protected array $references = [], + protected array $options = [] ) { - $this->adapter = $adapter; - $this->columns = $columns; - $this->indexes = $indexes; - $this->references = $references; - $this->options = $options; } public function getEntity(): PhpFile @@ -565,11 +524,6 @@ public function getAdapter(): string /** * Just wrap string with single quotes - * - * @param string $columnName - * @param string $quote - * - * @return string */ public function wrapWithQuotes(string $columnName, string $quote = "'"): string { diff --git a/src/Migrations.php b/src/Migrations.php index 782203c..ab8ec94 100644 --- a/src/Migrations.php +++ b/src/Migrations.php @@ -102,13 +102,10 @@ public static function isConsole(): bool /** * Generate migrations * - * @param array $options - * - * @return bool|void * @throws Exception * @throws RuntimeException */ - public static function generate(array $options) + public static function generate(array $options): void { $helper = new Helper(); $optionStack = new OptionStack($options); @@ -193,20 +190,16 @@ public static function generate(array $options) print Color::info('Nothing to generate. You should create tables first.') . PHP_EOL; } } - - return true; } /** * Run migrations * - * @param array $options - * * @throws DbException * @throws RuntimeException * @throws Exception */ - public static function run(array $options) + public static function run(array $options): void { $optionStack = new OptionStack($options); $listTables = new ListTablesIterator(); @@ -424,8 +417,6 @@ public static function run(array $options) /** * List migrations along with statuses * - * @param array $options - * * @throws Exception * @throws RuntimeException */ @@ -504,8 +495,6 @@ public static function listAll(array $options): void /** * Initialize migrations log storage * - * @param array $options Applications options - * * @throws RuntimeException */ private static function connectionSetup(array $options): void @@ -514,7 +503,7 @@ private static function connectionSetup(array $options): void return; } - if (isset($options['migrationsInDb']) && (bool) $options['migrationsInDb']) { + if (isset($options['migrationsInDb']) && $options['migrationsInDb']) { /** @var Config $database */ $database = $options['config']['database']; @@ -591,15 +580,13 @@ private static function connectionSetup(array $options): void /** * Get latest completed migration version * - * @param array $options Applications options - * * @return IncrementalItem|TimestampedItem */ public static function getCurrentVersion(array $options) { self::connectionSetup($options); - if (isset($options['migrationsInDb']) && (bool) $options['migrationsInDb']) { + if (isset($options['migrationsInDb']) && $options['migrationsInDb']) { /** @var AdapterInterface $connection */ $connection = self::$storage; $query = 'SELECT * FROM ' . self::MIGRATION_LOG_TABLE . ' ORDER BY version DESC LIMIT 1'; @@ -638,13 +625,10 @@ public static function addCurrentVersion(array $options, string $version, ?strin { self::connectionSetup($options); - if ($startTime === null) { - $startTime = date('Y-m-d H:i:s'); - } - + $startTime = $startTime === null ? date('Y-m-d H:i:s') : $startTime; $endTime = date('Y-m-d H:i:s'); - if (isset($options['migrationsInDb']) && (bool) $options['migrationsInDb']) { + if (isset($options['migrationsInDb']) && $options['migrationsInDb']) { /** @var AdapterInterface $connection */ $connection = self::$storage; $connection->insert( @@ -671,7 +655,7 @@ public static function removeCurrentVersion(array $options, string $version): vo { self::connectionSetup($options); - if (isset($options['migrationsInDb']) && (bool) $options['migrationsInDb']) { + if (isset($options['migrationsInDb']) && $options['migrationsInDb']) { /** @var AdapterInterface $connection */ $connection = self::$storage; $connection->execute('DELETE FROM ' . self::MIGRATION_LOG_TABLE . ' WHERE version=\'' . $version . '\''); @@ -686,16 +670,12 @@ public static function removeCurrentVersion(array $options, string $version): vo /** * Scan $storage for all completed versions - * - * @param array $options Applications options - * - * @return array */ public static function getCompletedVersions(array $options): array { self::connectionSetup($options); - if (isset($options['migrationsInDb']) && (bool) $options['migrationsInDb']) { + if (isset($options['migrationsInDb']) && $options['migrationsInDb']) { /** @var AdapterInterface $connection */ $connection = self::$storage; $query = 'SELECT version FROM ' . self::MIGRATION_LOG_TABLE . ' ORDER BY version DESC'; diff --git a/src/Mvc/Model/Migration.php b/src/Mvc/Model/Migration.php index e26ba06..aab2384 100644 --- a/src/Mvc/Model/Migration.php +++ b/src/Mvc/Model/Migration.php @@ -146,12 +146,12 @@ public static function setup(Config $database, bool $verbose = false): void self::$connection = $connection; self::$databaseConfig = $database; - // Connection custom dialect Dialect/DialectMysql + // Connection custom Dialect/DialectMysql if ($dbAdapter === self::DB_ADAPTER_MYSQL) { self::$connection->setDialect(new DialectMysql()); } - // Connection custom dialect Dialect/DialectPostgresql + // Connection custom Dialect/DialectPostgresql if ($dbAdapter === self::DB_ADAPTER_POSTGRESQL) { self::$connection->setDialect(new DialectPostgresql()); } diff --git a/src/Mvc/Model/Migration/TableAware/ListTablesDb.php b/src/Mvc/Model/Migration/TableAware/ListTablesDb.php index cd7bc8f..aad7421 100644 --- a/src/Mvc/Model/Migration/TableAware/ListTablesDb.php +++ b/src/Mvc/Model/Migration/TableAware/ListTablesDb.php @@ -39,9 +39,7 @@ public function listTablesForPrefix(string $tablePrefix, DirectoryIterator $iter throw new InvalidArgumentException("Parameters weren't defined in " . __METHOD__); } - $tablesList = (new ModelMigration())->getConnection() - ->listTables() - ; + $tablesList = (new ModelMigration())->getConnection()->listTables(); if (empty($tablesList)) { return ''; } diff --git a/src/Mvc/Model/Migration/TableAware/ListTablesInterface.php b/src/Mvc/Model/Migration/TableAware/ListTablesInterface.php index 58894e7..d69b2a7 100644 --- a/src/Mvc/Model/Migration/TableAware/ListTablesInterface.php +++ b/src/Mvc/Model/Migration/TableAware/ListTablesInterface.php @@ -19,11 +19,6 @@ interface ListTablesInterface { /** * Get list table from prefix - * - * @param string $tablePrefix Table prefix - * @param DirectoryIterator|null $iterator - * - * @return string */ public function listTablesForPrefix(string $tablePrefix, DirectoryIterator $iterator = null): string; } diff --git a/src/Mvc/Model/Migration/TableAware/ListTablesIterator.php b/src/Mvc/Model/Migration/TableAware/ListTablesIterator.php index b0ee1e6..8b5a1c4 100644 --- a/src/Mvc/Model/Migration/TableAware/ListTablesIterator.php +++ b/src/Mvc/Model/Migration/TableAware/ListTablesIterator.php @@ -26,11 +26,6 @@ class ListTablesIterator implements ListTablesInterface { /** * Get table names with prefix for running migration - * - * @param string $tablePrefix - * @param DirectoryIterator|null $iterator - * - * @return string */ public function listTablesForPrefix(string $tablePrefix, DirectoryIterator $iterator = null): string { diff --git a/src/Version/IncrementalItem.php b/src/Version/IncrementalItem.php index 784bbcb..de1d38b 100644 --- a/src/Version/IncrementalItem.php +++ b/src/Version/IncrementalItem.php @@ -36,13 +36,11 @@ class IncrementalItem implements ItemInterface private string $path = ''; - private string $version; - private int $versionStamp = 0; private array $parts; - public function __construct(string $version, int $numberParts = 3) + public function __construct(private string $version, int $numberParts = 3) { $version = trim($version); $this->parts = explode('.', $version); diff --git a/tests/mysql/ColumnTypesCest.php b/tests/mysql/ColumnTypesCest.php index 4e2c530..0c31e7b 100644 --- a/tests/mysql/ColumnTypesCest.php +++ b/tests/mysql/ColumnTypesCest.php @@ -14,14 +14,13 @@ namespace Phalcon\Migrations\Tests\Mysql; use Codeception\Example; -use Exception; use MysqlTester; use PDO; use Phalcon\Config\Config; use Phalcon\Db\Adapter\Pdo\AbstractPdo; use Phalcon\Db\Column; +use Phalcon\Db\Exception; use Phalcon\Migrations\Migrations; -use Phalcon\Migrations\Script\ScriptException; /** * @method Config getMigrationsConfig() @@ -37,20 +36,20 @@ protected function columnsDataProvider(): array [ 'column_int', [ - 'type' => Column::TYPE_INTEGER, - 'size' => 10, + 'type' => Column::TYPE_INTEGER, + 'size' => 10, 'unsigned' => true, - 'notNull' => true, - 'first' => true, + 'notNull' => true, + 'first' => true, ], [0, 1, 123, 9000], ], [ 'column_int_primary', [ - 'type' => Column::TYPE_INTEGER, - 'size' => 11, - 'first' => true, + 'type' => Column::TYPE_INTEGER, + 'size' => 11, + 'first' => true, 'primary' => true, ], [1, 2, 3, 4], @@ -58,10 +57,10 @@ protected function columnsDataProvider(): array [ 'column_int_pri_inc', [ - 'type' => Column::TYPE_INTEGER, - 'size' => 11, - 'first' => true, - 'primary' => true, + 'type' => Column::TYPE_INTEGER, + 'size' => 11, + 'first' => true, + 'primary' => true, 'autoIncrement' => true, ], [1, 2, 3, 4], @@ -69,7 +68,7 @@ protected function columnsDataProvider(): array [ 'column_time', [ - 'type' => Column::TYPE_TIME, + 'type' => Column::TYPE_TIME, 'notNull' => false, ], ['00:00:00', '23:59:55', '12:00:12'], @@ -77,7 +76,7 @@ protected function columnsDataProvider(): array [ 'column_json', [ - 'type' => Column::TYPE_JSON, + 'type' => Column::TYPE_JSON, 'notNull' => true, ], ['{}', '{"type": "json"}', '{"random": 123, "is_true": false}'], @@ -85,8 +84,8 @@ protected function columnsDataProvider(): array [ 'column_enum_not_null', [ - 'type' => Column::TYPE_ENUM, - 'size' => "'Y','N','D', ''", + 'type' => Column::TYPE_ENUM, + 'size' => "'Y','N','D', ''", 'notNull' => true, ], ['Y', 'N', 'D', ''], @@ -94,9 +93,9 @@ protected function columnsDataProvider(): array [ 'column_decimal', [ - 'type' => Column::TYPE_DECIMAL, - 'size' => 10, - 'scale' => 2, + 'type' => Column::TYPE_DECIMAL, + 'size' => 10, + 'scale' => 2, 'notNull' => true, ], [0, 1, 2.3, 4.56, 12345678.12], @@ -108,26 +107,24 @@ protected function columnsDataProvider(): array * @dataProvider columnsDataProvider * * @param MysqlTester $I - * @param Example $example + * @param Example $example * - * @throws ScriptException - * @throws \Phalcon\Mvc\Model\Exception * @throws Exception + * @throws \Exception */ public function columnDefinition(MysqlTester $I, Example $example): void { list($columnName, $definition, $values) = $example; - $tableName = $example[0] . '_test'; + $tableName = $example[0] . '_test'; $migrationsDir = codecept_output_dir('tests/var/output/' . __FUNCTION__); $I->getPhalconDb() - ->createTable($tableName, $_ENV['MYSQL_TEST_DB_DATABASE'], [ - 'columns' => [ - new Column($columnName, $definition), - ], - ]) - ; + ->createTable($tableName, $_ENV['MYSQL_TEST_DB_DATABASE'], [ + 'columns' => [ + new Column($columnName, $definition), + ], + ]); /** * Generate | Drop | Run @@ -135,15 +132,13 @@ public function columnDefinition(MysqlTester $I, Example $example): void ob_start(); Migrations::generate([ 'migrationsDir' => $migrationsDir, - 'config' => $I->getMigrationsConfig(), - 'tableName' => $tableName, + 'config' => $I->getMigrationsConfig(), + 'tableName' => $tableName, ]); - $I->getPhalconDb() - ->dropTable($tableName) - ; + $I->getPhalconDb()->dropTable($tableName); Migrations::run([ - 'migrationsDir' => $migrationsDir, - 'config' => $I->getMigrationsConfig(), + 'migrationsDir' => $migrationsDir, + 'config' => $I->getMigrationsConfig(), 'migrationsInDb' => true, ]); ob_clean(); @@ -152,18 +147,15 @@ public function columnDefinition(MysqlTester $I, Example $example): void * Insert values */ foreach ($values as $value) { - $I->getPhalconDb() - ->insert($tableName, [$value], [$columnName]) - ; + $I->getPhalconDb()->insert($tableName, [$value], [$columnName]); } Migrations::resetStorage(); $I->removeDir($migrationsDir); /** @var Column $column */ - $column = $I->getPhalconDb() - ->describeColumns($tableName)[0]; - $rows = $I->grabColumnFromDatabase($tableName, $columnName); + $column = $I->getPhalconDb()->describeColumns($tableName)[0]; + $rows = $I->grabColumnFromDatabase($tableName, $columnName); $I->assertSame($definition['type'], $column->getType()); $I->assertSame($definition['notNull'] ?? true, $column->isNotNull()); diff --git a/tests/mysql/Issue76Cest.php b/tests/mysql/Issue76Cest.php index e472072..c707c0f 100644 --- a/tests/mysql/Issue76Cest.php +++ b/tests/mysql/Issue76Cest.php @@ -35,18 +35,16 @@ public function normalRun(MysqlTester $I): void ob_start(); Migrations::run([ - 'migrationsDir' => codecept_data_dir('issues/76'), - 'config' => $I->getMigrationsConfig(), + 'migrationsDir' => codecept_data_dir('issues/76'), + 'config' => $I->getMigrationsConfig(), 'migrationsInDb' => true, ]); ob_clean(); $query1 = 'SELECT COUNT(*) cnt FROM user_details WHERE user_id = 62 AND last_name IS NULL'; - $I->assertTrue($I->getPhalconDb() - ->tableExists('user_details')); + $I->assertTrue($I->getPhalconDb()->tableExists('user_details')); $I->canSeeNumRecords(2363, 'user_details'); - $I->assertEquals(1, $I->getPhalconDb() - ->fetchOne($query1)['cnt']); + $I->assertEquals(1, $I->getPhalconDb()->fetchOne($query1)['cnt']); } } diff --git a/tests/mysql/Issue94Cest.php b/tests/mysql/Issue94Cest.php index f07dbe1..f224ae5 100644 --- a/tests/mysql/Issue94Cest.php +++ b/tests/mysql/Issue94Cest.php @@ -26,15 +26,13 @@ public function testIssue94(MysqlTester $I): void ob_start(); Migrations::run([ - 'migrationsDir' => codecept_data_dir('issues/94'), - 'config' => $I->getMigrationsConfig(), + 'migrationsDir' => codecept_data_dir('issues/94'), + 'config' => $I->getMigrationsConfig(), 'migrationsInDb' => true, ]); ob_clean(); - $options = $I->getPhalconDb() - ->tableOptions('memory_table') - ; + $options = $I->getPhalconDb()->tableOptions('memory_table'); $I->assertSame('MEMORY', $options['engine']); } @@ -48,30 +46,29 @@ public function testGenerateIssue94(MysqlTester $I): void { $I->wantToTest('Issue #94 - Correct options generation case (uppercase)'); - $engine = 'MyISAM'; - $tableName = 'options_uppercase'; + $engine = 'MyISAM'; + $tableName = 'options_uppercase'; $migrationsDir = codecept_output_dir(__FUNCTION__); $I->getPhalconDb() - ->createTable($tableName, '', [ - 'columns' => [ - new Column('id', [ - 'type' => Column::TYPE_INTEGER, - 'size' => 20, - 'notNull' => true, - 'autoIncrement' => true, - ]), - ], - 'indexes' => [ - new Index('PRIMARY', ['id'], 'PRIMARY') - ], - 'options' => [ - 'TABLE_TYPE' => 'BASE TABLE', - 'ENGINE' => $engine, - 'TABLE_COLLATION' => 'utf8mb4_general_ci', - ], - ]) - ; + ->createTable($tableName, '', [ + 'columns' => [ + new Column('id', [ + 'type' => Column::TYPE_INTEGER, + 'size' => 20, + 'notNull' => true, + 'autoIncrement' => true, + ]), + ], + 'indexes' => [ + new Index('PRIMARY', ['id'], 'PRIMARY') + ], + 'options' => [ + 'TABLE_TYPE' => 'BASE TABLE', + 'ENGINE' => $engine, + 'TABLE_COLLATION' => 'utf8mb4_general_ci', + ], + ]); /** * Generate | Drop | Run @@ -79,20 +76,17 @@ public function testGenerateIssue94(MysqlTester $I): void ob_start(); Migrations::generate([ 'migrationsDir' => $migrationsDir, - 'config' => $I->getMigrationsConfig(), - 'tableName' => $tableName, + 'config' => $I->getMigrationsConfig(), + 'tableName' => $tableName, ]); - $I->getPhalconDb() - ->dropTable($tableName) - ; + $I->getPhalconDb()->dropTable($tableName); Migrations::run([ - 'migrationsDir' => $migrationsDir, - 'config' => $I->getMigrationsConfig(), + 'migrationsDir' => $migrationsDir, + 'config' => $I->getMigrationsConfig(), 'migrationsInDb' => true, ]); ob_clean(); - $I->assertSame($engine, $I->getPhalconDb() - ->tableOptions($tableName)['engine']); + $I->assertSame($engine, $I->getPhalconDb()->tableOptions($tableName)['engine']); } } diff --git a/tests/postgresql/ColumnTypesCest.php b/tests/postgresql/ColumnTypesCest.php index d08b34f..a2139da 100644 --- a/tests/postgresql/ColumnTypesCest.php +++ b/tests/postgresql/ColumnTypesCest.php @@ -15,9 +15,8 @@ use Codeception\Example; use Phalcon\Db\Column; +use Phalcon\Db\Exception; use Phalcon\Migrations\Migrations; -use Phalcon\Migrations\Script\ScriptException; -use Phalcon\Mvc\Model\Exception; use PostgresqlTester; final class ColumnTypesCest @@ -26,10 +25,9 @@ final class ColumnTypesCest * @dataProvider columnsDataProvider * * @param PostgresqlTester $I - * @param Example $example + * @param Example $example * * @throws Exception - * @throws ScriptException * @throws \Exception */ public function columnDefinition(PostgresqlTester $I, Example $example): void @@ -39,12 +37,12 @@ public function columnDefinition(PostgresqlTester $I, Example $example): void $tableName = $columnName . '_test'; $migrationsDir = codecept_output_dir(__FUNCTION__ . $columnName); - $created = $I->getPhalconDb() - ->createTable($tableName, $I->getDefaultSchema(), [ - 'columns' => [ - new Column($columnName, $definition), - ], - ]) + $I->getPhalconDb() + ->createTable($tableName, $I->getDefaultSchema(), [ + 'columns' => [ + new Column($columnName, $definition), + ], + ]) ; /** @@ -70,16 +68,13 @@ public function columnDefinition(PostgresqlTester $I, Example $example): void * Insert values */ foreach ($values as $value) { - $I->getPhalconDb() - ->insert($tableName, [$value], [$columnName]) - ; + $I->getPhalconDb()->insert($tableName, [$value], [$columnName]); } $I->removeDir($migrationsDir); /** @var Column $column */ - $column = $I->getPhalconDb() - ->describeColumns($tableName, $I->getDefaultSchema())[0]; + $column = $I->getPhalconDb()->describeColumns($tableName, $I->getDefaultSchema())[0]; $rows = $I->grabColumnFromDatabase($I->getDefaultSchema() . '.' . $tableName, $columnName); $I->assertSame($definition['type'], $column->getType()); diff --git a/tests/postgresql/Issue104Cest.php b/tests/postgresql/Issue104Cest.php index 0d2ee9a..c441bd5 100644 --- a/tests/postgresql/Issue104Cest.php +++ b/tests/postgresql/Issue104Cest.php @@ -25,17 +25,13 @@ class Issue104Cest { /** - * @param PostgresqlTester $I - * * @throws Exception */ public function normalRun(PostgresqlTester $I): void { $I->wantToTest('Issue #104 - Disable foreign keys'); - $I->getPhalconDb() - ->execute("SET session_replication_role = 'replica';") - ; + $I->getPhalconDb()->execute("SET session_replication_role = 'replica';"); ob_start(); Migrations::run([ @@ -51,11 +47,8 @@ public function normalRun(PostgresqlTester $I): void $schema = $_ENV['POSTGRES_TEST_DB_SCHEMA']; - $I->assertTrue($I->getPhalconDb() - ->tableExists('phalcon_migrations', $schema)); - $I->assertTrue($I->getPhalconDb() - ->tableExists('foreign_keys_table1', $schema)); - $I->assertTrue($I->getPhalconDb() - ->tableExists('foreign_keys_table2', $schema)); + $I->assertTrue($I->getPhalconDb()->tableExists('phalcon_migrations', $schema)); + $I->assertTrue($I->getPhalconDb()->tableExists('foreign_keys_table1', $schema)); + $I->assertTrue($I->getPhalconDb()->tableExists('foreign_keys_table2', $schema)); } } diff --git a/tests/postgresql/Issue76Cest.php b/tests/postgresql/Issue76Cest.php index 5a01543..7e83c80 100644 --- a/tests/postgresql/Issue76Cest.php +++ b/tests/postgresql/Issue76Cest.php @@ -25,8 +25,6 @@ class Issue76Cest { /** - * @param PostgresqlTester $I - * * @throws Exception */ public function normalRun(PostgresqlTester $I): void @@ -44,10 +42,8 @@ public function normalRun(PostgresqlTester $I): void $schema = $_ENV['POSTGRES_TEST_DB_SCHEMA']; $query1 = "SELECT COUNT(*) cnt FROM $schema.user_details WHERE user_id = 62 AND last_name IS NULL"; - $I->assertTrue($I->getPhalconDb() - ->tableExists('user_details', $schema)); + $I->assertTrue($I->getPhalconDb()->tableExists('user_details', $schema)); $I->canSeeNumRecords(2363, $schema . '.user_details'); - $I->assertEquals(1, $I->getPhalconDb() - ->fetchOne($query1)['cnt']); + $I->assertEquals(1, $I->getPhalconDb()->fetchOne($query1)['cnt']); } } diff --git a/tests/postgresql/IssuesCest.php b/tests/postgresql/IssuesCest.php index f84656e..d54c9ad 100644 --- a/tests/postgresql/IssuesCest.php +++ b/tests/postgresql/IssuesCest.php @@ -26,21 +26,20 @@ public function issue1(PostgresqlTester $I): void { $I->wantToTest('Issue #1 - Primary key was created'); - $tableName = 'table_primary_test'; + $tableName = 'table_primary_test'; $migrationsDir = codecept_output_dir(__FUNCTION__); $I->getPhalconDb() - ->createTable($tableName, $I->getDefaultSchema(), [ - 'columns' => [ - new Column('id', [ - 'type' => Column::TYPE_INTEGER, - 'notNull' => true, - 'first' => true, - 'primary' => true, - ]), - ], - ]) - ; + ->createTable($tableName, $I->getDefaultSchema(), [ + 'columns' => [ + new Column('id', [ + 'type' => Column::TYPE_INTEGER, + 'notNull' => true, + 'first' => true, + 'primary' => true, + ]), + ], + ]); /** * Generate | Drop | Run @@ -48,22 +47,18 @@ public function issue1(PostgresqlTester $I): void ob_start(); Migrations::generate([ 'migrationsDir' => $migrationsDir, - 'config' => $I->getMigrationsConfig(), - 'tableName' => $tableName, + 'config' => $I->getMigrationsConfig(), + 'tableName' => $tableName, ]); - $I->getPhalconDb() - ->dropTable($tableName) - ; + $I->getPhalconDb()->dropTable($tableName); Migrations::run([ - 'migrationsDir' => $migrationsDir, - 'config' => $I->getMigrationsConfig(), + 'migrationsDir' => $migrationsDir, + 'config' => $I->getMigrationsConfig(), 'migrationsInDb' => true, ]); ob_clean(); - $indexes = $I->getPhalconDb() - ->describeIndexes($tableName, $I->getDefaultSchema()) - ; + $indexes = $I->getPhalconDb()->describeIndexes($tableName, $I->getDefaultSchema()); $I->assertSame(1, count($indexes)); } @@ -75,24 +70,23 @@ public function testIssue111Fail(PostgresqlTester $I): void { $I->wantToTest('Issue #111 - Unrecognized PostgreSQL data type [FAIL]'); - $tableName = 'pg_phalcon_double'; + $tableName = 'pg_phalcon_double'; $migrationsDir = codecept_output_dir(__FUNCTION__); $I->seeExceptionThrown( - Phalcon\Db\Exception::class, + \Phalcon\Db\Exception::class, function () use ($I, $tableName) { $I->getPhalconDb() - ->createTable($tableName, $I->getDefaultSchema(), [ - 'columns' => [ - new Column('point_double_column', [ - 'type' => Column::TYPE_DOUBLE, - 'default' => 0, - 'notNull' => false, - 'comment' => "Double typed column", - ]), - ], - ]) - ; + ->createTable($tableName, $I->getDefaultSchema(), [ + 'columns' => [ + new Column('point_double_column', [ + 'type' => Column::TYPE_DOUBLE, + 'default' => 0, + 'notNull' => false, + 'comment' => "Double typed column", + ]), + ], + ]); } ); @@ -101,27 +95,22 @@ function () use ($I, $tableName) { 'migrationsDir' => [ $migrationsDir, ], - 'config' => $I->getMigrationsConfig(), - 'tableName' => '@', + 'config' => $I->getMigrationsConfig(), + 'tableName' => '@', ]); $I->getPhalconDb() - ->dropTable($tableName) - ; + ->dropTable($tableName); Migrations::run([ - 'migrationsDir' => $migrationsDir, - 'config' => $I->getMigrationsConfig(), + 'migrationsDir' => $migrationsDir, + 'config' => $I->getMigrationsConfig(), 'migrationsInDb' => true, ]); ob_clean(); - $indexes = $I->getPhalconDb() - ->describeIndexes(Migrations::MIGRATION_LOG_TABLE) - ; + $indexes = $I->getPhalconDb()->describeIndexes(Migrations::MIGRATION_LOG_TABLE); - $I->assertFalse($I->getPhalconDb() - ->tableExists($tableName, $I->getDefaultSchema())); - $I->assertTrue($I->getPhalconDb() - ->tableExists(Migrations::MIGRATION_LOG_TABLE, $I->getDefaultSchema())); + $I->assertFalse($I->getPhalconDb()->tableExists($tableName, $I->getDefaultSchema())); + $I->assertTrue($I->getPhalconDb()->tableExists(Migrations::MIGRATION_LOG_TABLE, $I->getDefaultSchema())); $I->assertSame(1, count($indexes)); } @@ -132,47 +121,42 @@ public function testIssue111Fixed(PostgresqlTester $I): void { $I->wantToTest('Issue #111 - Unrecognized PostgreSQL data type [FIXED]'); - $tableName = 'pg_phalcon_double'; + $tableName = 'pg_phalcon_double'; $migrationsDir = codecept_output_dir(__FUNCTION__); $I->getPhalconDb() - ->createTable($tableName, $I->getDefaultSchema(), [ - 'columns' => [ - new Column('point_double_column', [ - 'type' => Column::TYPE_FLOAT, - 'default' => 0, - 'notNull' => false, - 'comment' => "Double typed column", - ]), - ], - ]) - ; + ->createTable($tableName, $I->getDefaultSchema(), [ + 'columns' => [ + new Column('point_double_column', [ + 'type' => Column::TYPE_FLOAT, + 'default' => 0, + 'notNull' => false, + 'comment' => "Double typed column", + ]), + ], + ]); ob_start(); Migrations::generate([ 'migrationsDir' => [ $migrationsDir, ], - 'config' => $I->getMigrationsConfig(), - 'tableName' => '@', + 'config' => $I->getMigrationsConfig(), + 'tableName' => '@', ]); $I->getPhalconDb() - ->dropTable($tableName) - ; + ->dropTable($tableName); Migrations::run([ - 'migrationsDir' => $migrationsDir, - 'config' => $I->getMigrationsConfig(), + 'migrationsDir' => $migrationsDir, + 'config' => $I->getMigrationsConfig(), 'migrationsInDb' => true, ]); ob_clean(); $indexes = $I->getPhalconDb() - ->describeIndexes(Migrations::MIGRATION_LOG_TABLE) - ; + ->describeIndexes(Migrations::MIGRATION_LOG_TABLE); - $I->assertTrue($I->getPhalconDb() - ->tableExists($tableName, $I->getDefaultSchema())); - $I->assertTrue($I->getPhalconDb() - ->tableExists(Migrations::MIGRATION_LOG_TABLE, $I->getDefaultSchema())); + $I->assertTrue($I->getPhalconDb()->tableExists($tableName, $I->getDefaultSchema())); + $I->assertTrue($I->getPhalconDb()->tableExists(Migrations::MIGRATION_LOG_TABLE, $I->getDefaultSchema())); $I->assertSame(1, count($indexes)); } @@ -185,24 +169,21 @@ public function testIssue112(PostgresqlTester $I): void $tableName = 'pg_phalcon_primary_index'; $I->getPhalconDb() - ->createTable($tableName, $I->getDefaultSchema(), [ - 'columns' => [ - new Column('id', [ - 'type' => Column::TYPE_INTEGER, - 'notNull' => true, - 'first' => true, - ]), - ], - 'indexes' => [ - new Index('pk_id_0', ['id'], 'PRIMARY KEY'), - ], - ]) - ; - - $indexes = $I->getPhalconDb() - ->describeIndexes($tableName, $I->getDefaultSchema()) - ; - $index = array_shift($indexes); + ->createTable($tableName, $I->getDefaultSchema(), [ + 'columns' => [ + new Column('id', [ + 'type' => Column::TYPE_INTEGER, + 'notNull' => true, + 'first' => true, + ]), + ], + 'indexes' => [ + new Index('pk_id_0', ['id'], 'PRIMARY KEY'), + ], + ]); + + $indexes = $I->getPhalconDb()->describeIndexes($tableName, $I->getDefaultSchema()); + $index = array_shift($indexes); $I->assertSame(PdoPostgresql::INDEX_TYPE_PRIMARY, $index->getType()); } diff --git a/tests/postgresql/MigrationsCest.php b/tests/postgresql/MigrationsCest.php index 548fe01..e18d2b4 100644 --- a/tests/postgresql/MigrationsCest.php +++ b/tests/postgresql/MigrationsCest.php @@ -25,49 +25,41 @@ final class MigrationsCest */ public function postgresPhalconMigrationsTable(PostgresqlTester $I): void { - $tableName = 'pg_phalcon_migrations'; + $tableName = 'pg_phalcon_migrations'; $migrationsDir = codecept_output_dir(__FUNCTION__); - $I->getPhalconDb() - ->createTable($tableName, $I->getDefaultSchema(), [ - 'columns' => [ - new Column('column_name', [ - 'type' => Column::TYPE_INTEGER, - 'size' => 10, - 'unsigned' => true, - 'notNull' => true, - 'first' => true, - ]), - ], - ]) - ; + $I->getPhalconDb()->createTable($tableName, $I->getDefaultSchema(), [ + 'columns' => [ + new Column('column_name', [ + 'type' => Column::TYPE_INTEGER, + 'size' => 10, + 'unsigned' => true, + 'notNull' => true, + 'first' => true, + ]), + ], + ]); ob_start(); Migrations::generate([ 'migrationsDir' => [ $migrationsDir, ], - 'config' => $I->getMigrationsConfig(), - 'tableName' => '@', + 'config' => $I->getMigrationsConfig(), + 'tableName' => '@', ]); - $I->getPhalconDb() - ->dropTable($tableName) - ; + $I->getPhalconDb()->dropTable($tableName); Migrations::run([ - 'migrationsDir' => $migrationsDir, - 'config' => $I->getMigrationsConfig(), + 'migrationsDir' => $migrationsDir, + 'config' => $I->getMigrationsConfig(), 'migrationsInDb' => true, ]); ob_clean(); - $indexes = $I->getPhalconDb() - ->describeIndexes(Migrations::MIGRATION_LOG_TABLE) - ; + $indexes = $I->getPhalconDb()->describeIndexes(Migrations::MIGRATION_LOG_TABLE); - $I->assertTrue($I->getPhalconDb() - ->tableExists($tableName, $I->getDefaultSchema())); - $I->assertTrue($I->getPhalconDb() - ->tableExists(Migrations::MIGRATION_LOG_TABLE, $I->getDefaultSchema())); + $I->assertTrue($I->getPhalconDb()->tableExists($tableName, $I->getDefaultSchema())); + $I->assertTrue($I->getPhalconDb()->tableExists(Migrations::MIGRATION_LOG_TABLE, $I->getDefaultSchema())); $I->assertSame(1, count($indexes)); } @@ -78,43 +70,36 @@ public function postgresPhalconMigrationsTable(PostgresqlTester $I): void */ public function generateWithExportOnCreate(PostgresqlTester $I): void { - $dbName = $_ENV['POSTGRES_TEST_DB_SCHEMA']; - $tableName = 'on_create'; + $dbName = $_ENV['POSTGRES_TEST_DB_SCHEMA']; + $tableName = 'on_create'; $migrationsDir = codecept_output_dir(__FUNCTION__); $I->getPhalconDb() - ->createTable($tableName, $dbName, [ - 'columns' => [ - new Column('id', [ - 'type' => Column::TYPE_INTEGER, - 'size' => 10, - 'unsigned' => true, - 'notNull' => true, - 'first' => true, - 'primary' => true, - 'autoIncrement' => true, - ]), - ], - ]) - ; + ->createTable($tableName, $dbName, [ + 'columns' => [ + new Column('id', [ + 'type' => Column::TYPE_INTEGER, + 'size' => 10, + 'unsigned' => true, + 'notNull' => true, + 'first' => true, + 'primary' => true, + 'autoIncrement' => true, + ]), + ], + ]); - $I->getPhalconDb() - ->insert($tableName, [1], ['id']) - ; - $I->getPhalconDb() - ->insert($tableName, [2], ['id']) - ; - $I->getPhalconDb() - ->insert($tableName, [3], ['id']) - ; + $I->getPhalconDb()->insert($tableName, [1], ['id']); + $I->getPhalconDb()->insert($tableName, [2], ['id']); + $I->getPhalconDb()->insert($tableName, [3], ['id']); ob_start(); Migrations::generate([ - 'migrationsDir' => $migrationsDir, - 'config' => $I->getMigrationsConfig(), - 'tableName' => '@', + 'migrationsDir' => $migrationsDir, + 'config' => $I->getMigrationsConfig(), + 'tableName' => '@', 'noAutoIncrement' => true, - 'exportData' => 'oncreate', + 'exportData' => 'oncreate', ]); ob_clean(); From 44b0ad525ee6fc25d20eebca8c24f501e4678393 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 23:49:57 +0100 Subject: [PATCH 13/23] #151 - Update validations workflow --- .github/workflows/validations.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/validations.yml b/.github/workflows/validations.yml index 3865741..ecbc96e 100644 --- a/.github/workflows/validations.yml +++ b/.github/workflows/validations.yml @@ -30,13 +30,13 @@ jobs: name: Static Code with PHP ${{ matrix.php-versions }} runs-on: ubuntu-latest env: - extensions: mbstring, intl, json, phalcon-5.0.1 - key: cache-v2.2~17.05.2020 + extensions: mbstring, intl, json, phalcon-5.5.0 + key: cache-v4.0~13.04.2024 needs: validate-code-style strategy: fail-fast: false matrix: - php-versions: ['7.4', '8.0', '8.1'] + php-versions: ['8.0', '8.1', '8.2', '8.3'] steps: - uses: actions/checkout@v4 From acf2decfaff08143d64ea97992ea2875329f035c Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 23:53:35 +0100 Subject: [PATCH 14/23] #151 - Reformat code --- src/Migration/Action/Generate.php | 127 ++++++++++++++---------------- 1 file changed, 61 insertions(+), 66 deletions(-) diff --git a/src/Migration/Action/Generate.php b/src/Migration/Action/Generate.php index 8506610..a0b118c 100644 --- a/src/Migration/Action/Generate.php +++ b/src/Migration/Action/Generate.php @@ -50,37 +50,37 @@ class Generate { protected array $supportedColumnTypes = [ - Column::TYPE_BIGINTEGER => 'TYPE_BIGINTEGER', - Column::TYPE_INTEGER => 'TYPE_INTEGER', + Column::TYPE_BIGINTEGER => 'TYPE_BIGINTEGER', + Column::TYPE_INTEGER => 'TYPE_INTEGER', Column::TYPE_MEDIUMINTEGER => 'TYPE_MEDIUMINTEGER', - Column::TYPE_SMALLINTEGER => 'TYPE_SMALLINTEGER', - Column::TYPE_TINYINTEGER => 'TYPE_TINYINTEGER', + Column::TYPE_SMALLINTEGER => 'TYPE_SMALLINTEGER', + Column::TYPE_TINYINTEGER => 'TYPE_TINYINTEGER', - Column::TYPE_VARCHAR => 'TYPE_VARCHAR', - Column::TYPE_CHAR => 'TYPE_CHAR', - Column::TYPE_TEXT => 'TYPE_TEXT', + Column::TYPE_VARCHAR => 'TYPE_VARCHAR', + Column::TYPE_CHAR => 'TYPE_CHAR', + Column::TYPE_TEXT => 'TYPE_TEXT', Column::TYPE_MEDIUMTEXT => 'TYPE_MEDIUMTEXT', - Column::TYPE_LONGTEXT => 'TYPE_LONGTEXT', - Column::TYPE_TINYTEXT => 'TYPE_TINYTEXT', + Column::TYPE_LONGTEXT => 'TYPE_LONGTEXT', + Column::TYPE_TINYTEXT => 'TYPE_TINYTEXT', - Column::TYPE_TIME => 'TYPE_TIME', - Column::TYPE_DATE => 'TYPE_DATE', - Column::TYPE_DATETIME => 'TYPE_DATETIME', + Column::TYPE_TIME => 'TYPE_TIME', + Column::TYPE_DATE => 'TYPE_DATE', + Column::TYPE_DATETIME => 'TYPE_DATETIME', Column::TYPE_TIMESTAMP => 'TYPE_TIMESTAMP', - Column::TYPE_DECIMAL => 'TYPE_DECIMAL', + Column::TYPE_DECIMAL => 'TYPE_DECIMAL', - Column::TYPE_BOOLEAN => 'TYPE_BOOLEAN', - Column::TYPE_FLOAT => 'TYPE_FLOAT', - Column::TYPE_DOUBLE => 'TYPE_DOUBLE', + Column::TYPE_BOOLEAN => 'TYPE_BOOLEAN', + Column::TYPE_FLOAT => 'TYPE_FLOAT', + Column::TYPE_DOUBLE => 'TYPE_DOUBLE', Column::TYPE_TINYBLOB => 'TYPE_TINYBLOB', - Column::TYPE_BLOB => 'TYPE_BLOB', + Column::TYPE_BLOB => 'TYPE_BLOB', Column::TYPE_MEDIUMBLOB => 'TYPE_MEDIUMBLOB', - Column::TYPE_LONGBLOB => 'TYPE_LONGBLOB', + Column::TYPE_LONGBLOB => 'TYPE_LONGBLOB', - Column::TYPE_JSON => 'TYPE_JSON', + Column::TYPE_JSON => 'TYPE_JSON', Column::TYPE_JSONB => 'TYPE_JSONB', - Column::TYPE_ENUM => 'TYPE_ENUM', + Column::TYPE_ENUM => 'TYPE_ENUM', ]; protected array $supportedColumnTypesPgsql = [ @@ -156,7 +156,7 @@ class Generate protected array $quoteWrappedColumns = []; public function __construct( - private string $adapter, + private string $adapter, protected array $columns = [], protected array $indexes = [], protected array $references = [], @@ -176,17 +176,15 @@ public function createEntity(string $className, bool $recreate = false): self if (null === $this->class || $recreate) { $this->file = new PhpFile(); $this->file->addUse(Column::class) - ->addUse(Exception::class) - ->addUse(Index::class) - ->addUse(Reference::class) - ->addUse(Migration::class) - ; + ->addUse(Exception::class) + ->addUse(Index::class) + ->addUse(Reference::class) + ->addUse(Migration::class); $this->class = $this->file->addClass($className); $this->class ->setExtends(Migration::class) - ->addComment("Class {$className}") - ; + ->addComment("Class {$className}"); } return $this; @@ -202,20 +200,20 @@ public function addMorph(Snippet $snippet, string $table, bool $skipRefSchema = $columns = []; foreach ($this->getColumns() as $columnName => $columnDefinition) { $definitions = implode(",\n ", $columnDefinition); - $columns[] = sprintf($snippet->getColumnTemplate(), $columnName, $definitions); + $columns[] = sprintf($snippet->getColumnTemplate(), $columnName, $definitions); } $indexes = []; foreach ($this->getIndexes() as $indexName => $indexDefinition) { [$fields, $indexType] = $indexDefinition; $definitions = implode(", ", $fields); - $type = $indexType ? "'$indexType'" : "''"; - $indexes[] = sprintf($snippet->getIndexTemplate(), $indexName, $definitions, $type); + $type = $indexType ? "'$indexType'" : "''"; + $indexes[] = sprintf($snippet->getIndexTemplate(), $indexName, $definitions, $type); } $references = []; foreach ($this->getReferences($skipRefSchema) as $constraintName => $referenceDefinition) { - $definitions = implode(",\n ", $referenceDefinition); + $definitions = implode(",\n ", $referenceDefinition); $references[] = sprintf($snippet->getReferenceTemplate(), $constraintName, $definitions); } @@ -234,12 +232,11 @@ public function addMorph(Snippet $snippet, string $table, bool $skipRefSchema = ); $this->class->addMethod('morph') - ->addComment("Define the table structure\n") - ->addComment('@return void') - ->addComment('@throws Exception') - ->setReturnType('void') - ->setBody($body) - ; + ->addComment("Define the table structure\n") + ->addComment('@return void') + ->addComment('@throws Exception') + ->setReturnType('void') + ->setBody($body); return $this; } @@ -258,11 +255,10 @@ public function addUp(string $table, $exportData = null, bool $shouldExportDataF } $this->class->addMethod('up') - ->addComment("Run the migrations\n") - ->addComment('@return void') - ->setReturnType('void') - ->setBody($body) - ; + ->addComment("Run the migrations\n") + ->addComment('@return void') + ->setReturnType('void') + ->setBody($body); return $this; } @@ -277,11 +273,10 @@ public function addDown(string $table, $exportData = null, bool $shouldExportDat } $this->class->addMethod('down') - ->addComment("Reverse the migrations\n") - ->addComment('@return void') - ->setReturnType('void') - ->setBody($body) - ; + ->addComment("Reverse the migrations\n") + ->addComment('@return void') + ->setReturnType('void') + ->setBody($body); return $this; } @@ -298,28 +293,28 @@ public function addAfterCreateTable(string $table, $exportData = null): self $body = "\$this->batchInsert('$table', [{$quoteWrappedColumns}]);"; $this->class->addMethod('afterCreateTable') - ->addComment("This method is called after the table was created\n") - ->addComment('@return void') - ->setReturnType('void') - ->setBody($body) - ; + ->addComment("This method is called after the table was created\n") + ->addComment('@return void') + ->setReturnType('void') + ->setBody($body); } return $this; } public function createDumpFiles( - string $table, - string $migrationPath, + string $table, + string $migrationPath, AbstractAdapter $connection, - ItemInterface $version, - $exportData = null, - bool $shouldExportDataFromTable = false - ): self { + ItemInterface $version, + $exportData = null, + bool $shouldExportDataFromTable = false + ): self + { $numericColumns = $this->getNumericColumns(); if ($exportData === 'always' || $exportData === 'oncreate' || $shouldExportDataFromTable) { $fileHandler = fopen($migrationPath . $version->getVersion() . '/' . $table . '.dat', 'w'); - $cursor = $connection->query('SELECT * FROM ' . $connection->escapeIdentifier($table)); + $cursor = $connection->query('SELECT * FROM ' . $connection->escapeIdentifier($table)); $cursor->setFetchMode(Enum::FETCH_ASSOC); while ($row = $cursor->fetchArray()) { $data = []; @@ -387,7 +382,7 @@ public function getColumns(): Generator } if ($this->adapter === Migration::DB_ADAPTER_POSTGRESQL && $column->isPrimary()) { - $definition[] = "'primary' => true"; + $definition[] = "'primary' => true"; $this->primaryColumnName = $column->getName(); } @@ -427,7 +422,7 @@ public function getColumns(): Generator /** * Aggregate column definition */ - $definition[] = $currentColumnName === null ? + $definition[] = $currentColumnName === null ? "'first' => true" : "'after' => '" . $currentColumnName . "'"; $currentColumnName = $column->getName(); @@ -468,7 +463,7 @@ public function getReferences(bool $skipRefSchema = false): Generator } $referencesOptions = []; - $referencedSchema = $reference->getReferencedSchema(); + $referencedSchema = $reference->getReferencedSchema(); if ($skipRefSchema === false && $referencedSchema !== null) { $referencesOptions[] = sprintf( "'referencedSchema' => %s", @@ -498,7 +493,7 @@ public function getOptions(bool $skipAI): array $value = ''; } - $options[] = sprintf('%s => %s', $this->wrapWithQuotes($name), $this->wrapWithQuotes((string) $value)); + $options[] = sprintf('%s => %s', $this->wrapWithQuotes($name), $this->wrapWithQuotes((string)$value)); } return $options; @@ -544,7 +539,7 @@ public function getQuoteWrappedColumns(): array */ protected function getColumnSize(ColumnInterface $column) { - $columnType = $column->getType(); + $columnType = $column->getType(); $columnsSize = $column->getSize(); /** @@ -563,7 +558,7 @@ protected function getColumnSize(ColumnInterface $column) } if ($columnType === Column::TYPE_ENUM) { - $size = $this->wrapWithQuotes((string) $columnsSize, '"'); + $size = $this->wrapWithQuotes((string)$columnsSize, '"'); } else { $size = $columnsSize ?: 1; } From d3097805f6feb94cb183bad38395284f4b6efb9b Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 23:56:10 +0100 Subject: [PATCH 15/23] #151 - Rename hosts --- tests/.env.example | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/.env.example b/tests/.env.example index b1ef597..c799061 100644 --- a/tests/.env.example +++ b/tests/.env.example @@ -1,10 +1,10 @@ -MYSQL_TEST_DB_HOST=127.0.0.1 +MYSQL_TEST_DB_HOST=mysql MYSQL_TEST_DB_PORT=3306 MYSQL_TEST_DB_DATABASE=phalcon-migrations MYSQL_TEST_DB_USER=root MYSQL_TEST_DB_PASSWORD=root -POSTGRES_TEST_DB_HOST=127.0.0.1 +POSTGRES_TEST_DB_HOST=postgres POSTGRES_TEST_DB_PORT=5432 POSTGRES_TEST_DB_DATABASE=postgres POSTGRES_TEST_DB_USER=postgres From 5448f7a6e419e703f3fd7d12eedc0c1e0d363537 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sat, 13 Apr 2024 23:56:21 +0100 Subject: [PATCH 16/23] #151 - Update cache key --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f1aa9cb..55728fa 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest env: extensions: mbstring, intl, json, phalcon-${{ matrix.phalcon-versions }}, mysql, pgsql - key: cache-v2.2~17.05.2020 + key: cache-v4.0~13.04.2024 services: mysql: From 8d1e25a9b9245f9e87db93bd52b0ef6b1019de3e Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sun, 14 Apr 2024 22:22:29 +0100 Subject: [PATCH 17/23] #151 - Change ports definition --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 55728fa..62b739d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -17,7 +17,7 @@ jobs: MYSQL_DATABASE: phalcon-migrations MYSQL_ROOT_PASSWORD: root ports: - - 3306/tcp + - "3306:3306" options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 postgres: image: postgres:10.8 From 5e8d0e11f9c8c14f4d2223e85832a351a7793dda Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sun, 14 Apr 2024 22:27:02 +0100 Subject: [PATCH 18/23] #151 - Rename hosts --- tests/.env.example | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/.env.example b/tests/.env.example index c799061..b1ef597 100644 --- a/tests/.env.example +++ b/tests/.env.example @@ -1,10 +1,10 @@ -MYSQL_TEST_DB_HOST=mysql +MYSQL_TEST_DB_HOST=127.0.0.1 MYSQL_TEST_DB_PORT=3306 MYSQL_TEST_DB_DATABASE=phalcon-migrations MYSQL_TEST_DB_USER=root MYSQL_TEST_DB_PASSWORD=root -POSTGRES_TEST_DB_HOST=postgres +POSTGRES_TEST_DB_HOST=127.0.0.1 POSTGRES_TEST_DB_PORT=5432 POSTGRES_TEST_DB_DATABASE=postgres POSTGRES_TEST_DB_USER=postgres From 7401692f9754b18032bad5346f08c3586ea15f95 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sun, 14 Apr 2024 22:34:11 +0100 Subject: [PATCH 19/23] #151 - Fix CS --- src/Migration/Action/Generate.php | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/Migration/Action/Generate.php b/src/Migration/Action/Generate.php index a0b118c..a18e069 100644 --- a/src/Migration/Action/Generate.php +++ b/src/Migration/Action/Generate.php @@ -156,7 +156,7 @@ class Generate protected array $quoteWrappedColumns = []; public function __construct( - private string $adapter, + private string $adapter, protected array $columns = [], protected array $indexes = [], protected array $references = [], @@ -303,14 +303,13 @@ public function addAfterCreateTable(string $table, $exportData = null): self } public function createDumpFiles( - string $table, - string $migrationPath, + string $table, + string $migrationPath, AbstractAdapter $connection, - ItemInterface $version, - $exportData = null, - bool $shouldExportDataFromTable = false - ): self - { + ItemInterface $version, + $exportData = null, + bool $shouldExportDataFromTable = false + ): self { $numericColumns = $this->getNumericColumns(); if ($exportData === 'always' || $exportData === 'oncreate' || $shouldExportDataFromTable) { $fileHandler = fopen($migrationPath . $version->getVersion() . '/' . $table . '.dat', 'w'); From 03e5ad3311e654c50eca7ac211cf849637db4040 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sun, 14 Apr 2024 22:35:45 +0100 Subject: [PATCH 20/23] #151 - Change ports definition --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 62b739d..4c0ae05 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -22,7 +22,7 @@ jobs: postgres: image: postgres:10.8 ports: - - 5432/tcp + - "5432:5432" options: --health-cmd pg_isready --health-interval 5s --health-timeout 5s --health-retries 2 strategy: From ab8c7f7d2d60f6f3f72b24f118460f057e054218 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sun, 14 Apr 2024 22:44:16 +0100 Subject: [PATCH 21/23] #151 - Fix psalm errors --- src/Migration/Action/Generate.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Migration/Action/Generate.php b/src/Migration/Action/Generate.php index a18e069..2891ea9 100644 --- a/src/Migration/Action/Generate.php +++ b/src/Migration/Action/Generate.php @@ -164,7 +164,7 @@ public function __construct( ) { } - public function getEntity(): PhpFile + public function getEntity(): ?PhpFile { $this->checkEntityExists(); @@ -231,7 +231,7 @@ public function addMorph(Snippet $snippet, string $table, bool $skipRefSchema = . $snippet->definitionToString('options', $options) ); - $this->class->addMethod('morph') + $this->class?->addMethod('morph') ->addComment("Define the table structure\n") ->addComment('@return void') ->addComment('@throws Exception') @@ -254,7 +254,7 @@ public function addUp(string $table, $exportData = null, bool $shouldExportDataF $body = "\$this->batchInsert('$table', [{$quoteWrappedColumns}]);"; } - $this->class->addMethod('up') + $this->class?->addMethod('up') ->addComment("Run the migrations\n") ->addComment('@return void') ->setReturnType('void') @@ -272,7 +272,7 @@ public function addDown(string $table, $exportData = null, bool $shouldExportDat $body = "\$this->batchDelete('$table');"; } - $this->class->addMethod('down') + $this->class?->addMethod('down') ->addComment("Reverse the migrations\n") ->addComment('@return void') ->setReturnType('void') @@ -292,7 +292,7 @@ public function addAfterCreateTable(string $table, $exportData = null): self } $body = "\$this->batchInsert('$table', [{$quoteWrappedColumns}]);"; - $this->class->addMethod('afterCreateTable') + $this->class?->addMethod('afterCreateTable') ->addComment("This method is called after the table was created\n") ->addComment('@return void') ->setReturnType('void') From c37c5ed74c6dff8ea7bff8b17374145efc856714 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sun, 14 Apr 2024 23:40:25 +0100 Subject: [PATCH 22/23] #151 - Refactor `getColumnSize()` method --- src/Migration/Action/Generate.php | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/Migration/Action/Generate.php b/src/Migration/Action/Generate.php index 4a7a333..ece261e 100644 --- a/src/Migration/Action/Generate.php +++ b/src/Migration/Action/Generate.php @@ -532,12 +532,8 @@ public function getQuoteWrappedColumns(): array /** * Get column size basing on its type - * - * @param ColumnInterface $column - * - * @return int|string|null */ - protected function getColumnSize(ColumnInterface $column) + protected function getColumnSize(ColumnInterface $column): null|int|string { $columnType = $column->getType(); $columnsSize = $column->getSize(); @@ -545,8 +541,10 @@ protected function getColumnSize(ColumnInterface $column) /** * Check Postgres */ - $noSizePostgres = $this->noSizeColumnTypesPostgreSQL; - if ($this->adapter === Migration::DB_ADAPTER_POSTGRESQL && in_array($columnType, $noSizePostgres)) { + if ( + $this->adapter === Migration::DB_ADAPTER_POSTGRESQL && + in_array($columnType, $this->noSizeColumnTypesPostgreSQL) + ) { return null; } From 7c1b2dbd28493cac14537b07806f673e632088be Mon Sep 17 00:00:00 2001 From: Anton Vasiliev <1695147@gmail.com> Date: Sun, 14 Apr 2024 23:52:08 +0100 Subject: [PATCH 23/23] #151 - Remove redundant comments and code --- src/Db/Adapter/Pdo/PdoPostgresql.php | 18 ++--------- src/Migration/Action/Generate.php | 1 - src/Mvc/Model/Migration.php | 30 ++----------------- .../Migration/TableAware/ListTablesDb.php | 4 --- src/Version/IncrementalItem.php | 6 +--- src/Version/ItemCollection.php | 6 +--- 6 files changed, 6 insertions(+), 59 deletions(-) diff --git a/src/Db/Adapter/Pdo/PdoPostgresql.php b/src/Db/Adapter/Pdo/PdoPostgresql.php index 6baaeb2..7e4cf9b 100644 --- a/src/Db/Adapter/Pdo/PdoPostgresql.php +++ b/src/Db/Adapter/Pdo/PdoPostgresql.php @@ -16,9 +16,7 @@ use Phalcon\Db\Adapter\Pdo\Postgresql; use Phalcon\Db\Enum; use Phalcon\Db\Index; -use Phalcon\Db\IndexInterface; use Phalcon\Db\Reference; -use Phalcon\Db\ReferenceInterface; class PdoPostgresql extends Postgresql { @@ -27,18 +25,12 @@ class PdoPostgresql extends Postgresql /** * Lists table references - * - * @param string $table - * @param string|null $schema - * - * @return ReferenceInterface[] */ public function describeReferences(string $table, string $schema = null): array { $references = []; - $rows = $this->fetchAll($this->getDialect() - ->describeReferences($table, $schema), Enum::FETCH_NUM); + $rows = $this->fetchAll($this->getDialect()->describeReferences($table, $schema), Enum::FETCH_NUM); foreach ($rows as $reference) { $constraintName = $reference[2]; if (!isset($references[$constraintName])) { @@ -85,12 +77,6 @@ public function describeReferences(string $table, string $schema = null): array return $referenceObjects; } - /** - * @param string $table - * @param string|null $schema - * - * @return IndexInterface[] - */ public function describeIndexes(string $table, string $schema = null): array { $indexes = []; @@ -121,7 +107,7 @@ public function describeIndexes(string $table, string $schema = null): array $indexObjects[$name] = new Index( $name, $index['columns'], - $index['type'] + $index['type'], ); } diff --git a/src/Migration/Action/Generate.php b/src/Migration/Action/Generate.php index ece261e..a9b6649 100644 --- a/src/Migration/Action/Generate.php +++ b/src/Migration/Action/Generate.php @@ -347,7 +347,6 @@ public function createDumpFiles( /** * Prepare table columns * - * @return Generator * @throws UnknownColumnTypeException */ public function getColumns(): Generator diff --git a/src/Mvc/Model/Migration.php b/src/Mvc/Model/Migration.php index aab2384..54f747c 100644 --- a/src/Mvc/Model/Migration.php +++ b/src/Mvc/Model/Migration.php @@ -82,7 +82,7 @@ class Migration * * @var AbstractAdapter */ - protected static $connection; + protected static AbstractAdapter $connection; /** * Database configuration @@ -343,10 +343,6 @@ public static function migrate( /** * Create migration object for specified version * - * @param ItemInterface $version - * @param string $tableName - * - * @return null|Migration * @throws Exception */ private static function createClass(ItemInterface $version, string $tableName): ?Migration @@ -374,12 +370,7 @@ private static function createClass(ItemInterface $version, string $tableName): /** * Find the last morph function in the previous migration files * - * @param ItemInterface $toVersion - * @param string $tableName - * - * @return null|Migration * @throws Exception - * @internal param ItemInterface $version */ private static function createPrevClassWithMorphMethod(ItemInterface $toVersion, string $tableName): ?Migration { @@ -404,10 +395,6 @@ private static function createPrevClassWithMorphMethod(ItemInterface $toVersion, /** * Scan for all versions - * - * @param string $dir Directory to scan - * - * @return ItemInterface[] */ public static function scanForVersions(string $dir): array { @@ -427,11 +414,6 @@ public static function scanForVersions(string $dir): array /** * Look for table definition modifications and apply to real table - * - * @param string $tableName - * @param array $definition - * - * @throws DbException */ public function morphTable(string $tableName, array $definition): void { @@ -774,12 +756,8 @@ public function morphTable(string $tableName, array $definition): void /** * Inserts data from a data migration file in a table - * - * @param string $tableName - * @param mixed $fields - * @param int $size Insert batch size */ - public function batchInsert(string $tableName, $fields, int $size = 1024): void + public function batchInsert(string $tableName, array $fields, int $size = 1024): void { $migrationData = self::$migrationPath . $this->version . '/' . $tableName . '.dat'; if (!file_exists($migrationData)) { @@ -882,10 +860,6 @@ protected function executeMultiInsert(string $table, array $columns, string $val /** * Resolves the DB Schema - * - * @param Config $config - * - * @return null|string */ public static function resolveDbSchema(Config $config): ?string { diff --git a/src/Mvc/Model/Migration/TableAware/ListTablesDb.php b/src/Mvc/Model/Migration/TableAware/ListTablesDb.php index aad7421..7e62749 100644 --- a/src/Mvc/Model/Migration/TableAware/ListTablesDb.php +++ b/src/Mvc/Model/Migration/TableAware/ListTablesDb.php @@ -27,10 +27,6 @@ class ListTablesDb implements ListTablesInterface /** * Get table names with prefix for running migration * - * @param string $tablePrefix - * @param DirectoryIterator|null $iterator - * - * @return string * @throws DbException */ public function listTablesForPrefix(string $tablePrefix, DirectoryIterator $iterator = null): string diff --git a/src/Version/IncrementalItem.php b/src/Version/IncrementalItem.php index de1d38b..d29fd33 100644 --- a/src/Version/IncrementalItem.php +++ b/src/Version/IncrementalItem.php @@ -173,11 +173,7 @@ public function addMinor(int $number): IncrementalItem } $parts = array_reverse($parts); - - $this->setParts($parts) - ->regenerateVersionStamp() - ; - + $this->setParts($parts)->regenerateVersionStamp(); $this->version = join('.', $parts); return $this; diff --git a/src/Version/ItemCollection.php b/src/Version/ItemCollection.php index 1c625e0..f142eb0 100644 --- a/src/Version/ItemCollection.php +++ b/src/Version/ItemCollection.php @@ -47,12 +47,8 @@ public static function setType(int $type): void /** * Create new version item - * - * @param null|string $version - * - * @return IncrementalItem|TimestampedItem */ - public static function createItem(string $version = null) + public static function createItem(string $version = null): TimestampedItem|IncrementalItem { if (self::TYPE_INCREMENTAL === self::$type) { $version = $version ?: '0.0.0';