diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7f848c7..0000000 --- a/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -language: php -php: - - 7.0 - - 5.6 - - 5.5 - - 5.4 -before_script: - - echo 'date.timezone = "Europe/London"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - - composer install -script: php vendor/bin/phing \ No newline at end of file diff --git a/build.xml b/build.xml index 6b7c7ad..8c62540 100644 --- a/build.xml +++ b/build.xml @@ -1,5 +1,5 @@ - + @@ -99,7 +99,7 @@ =5.3", + "php": ">=8.3", "ext-curl": "*" }, "require-dev": { - "phpunit/phpunit": "4.3.*", - "phing/phing": "2.*" + "phpunit/phpunit": "^12.0", + "phing/phing": "^3.1" }, "autoload": { "psr-0": { diff --git a/composer.lock b/composer.lock index 684c48a..5dbc3f8 100644 --- a/composer.lock +++ b/composer.lock @@ -4,129 +4,374 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "2971f54d7a3d6cb237719624f564582b", + "content-hash": "1e7a9762b404d1aaa6d5f528d8cb8dd3", "packages": [], "packages-dev": [ { - "name": "doctrine/instantiator", - "version": "1.5.0", + "name": "myclabs/deep-copy", + "version": "1.14.0", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", + "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { - "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.30 || ^5.4" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + "DeepCopy\\": "src/DeepCopy/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.14.0" + }, + "funding": [ + { + "url": "https://github.com/mnapoli", + "type": "github" + } + ], + "time": "2026-08-11T10:17:44+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v5.8.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" + "name": "Nikita Popov" } ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "description": "A PHP parser written in PHP", "keywords": [ - "constructor", - "instantiate" + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.8.0" + }, + "time": "2026-07-04T14:30:18+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "54750ef60c58e43759730615a392c31c80e23176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.5.0" + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, "funding": [ { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" }, { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" }, { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "time": "2022-12-30T00:15:36+00:00" + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" }, { "name": "phing/phing", - "version": "2.17.4", + "version": "3.1.2", "source": { "type": "git", "url": "https://github.com/phingofficial/phing.git", - "reference": "9f3bc8c72e65452686dcf64497e02a082f138908" + "reference": "b83482ca629bc4d3073c3f6939fcaa2cacd3f0bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phingofficial/phing/zipball/9f3bc8c72e65452686dcf64497e02a082f138908", - "reference": "9f3bc8c72e65452686dcf64497e02a082f138908", + "url": "https://api.github.com/repos/phingofficial/phing/zipball/b83482ca629bc4d3073c3f6939fcaa2cacd3f0bf", + "reference": "b83482ca629bc4d3073c3f6939fcaa2cacd3f0bf", "shasum": "" }, "require": { - "php": ">=5.2.0" + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-simplexml": "*", + "ext-xml": "*", + "php": ">= 8.1", + "sebastian/version": "^3.0|^4.0|^5.0|^6.0", + "symfony/console": "^6.4.22|^7.0|^8.0", + "symfony/filesystem": "^5.4.45|^6.4|^7.0|^8.0", + "symfony/string": "^6.3.12|^7.0|^8.0", + "symfony/yaml": "^6.3.12|^7.0|^8.0" + }, + "replace": { + "phing/task-analyzers": "self.version", + "phing/task-apigen": "self.version", + "phing/task-archives": "self.version", + "phing/task-aws": "self.version", + "phing/task-coverage": "self.version", + "phing/task-dbdeploy": "self.version", + "phing/task-ftpdeploy": "self.version", + "phing/task-git": "self.version", + "phing/task-hg": "self.version", + "phing/task-http": "self.version", + "phing/task-inifile": "self.version", + "phing/task-ioncube": "self.version", + "phing/task-jshint": "self.version", + "phing/task-jsmin": "self.version", + "phing/task-liquibase": "self.version", + "phing/task-phkpackage": "self.version", + "phing/task-phpdoc": "self.version", + "phing/task-phpunit": "self.version", + "phing/task-sass": "self.version", + "phing/task-smarty": "self.version", + "phing/task-ssh": "self.version", + "phing/task-svn": "self.version", + "phing/task-visualizer": "self.version", + "phing/task-zendcodeanalyser": "self.version", + "phing/task-zendserverdevelopmenttools": "self.version" }, "require-dev": { + "aws/aws-sdk-php": "^3.181", + "ergebnis/composer-normalize": "^2.13", + "ext-curl": "*", + "ext-iconv": "*", + "ext-openssl": "*", "ext-pdo_sqlite": "*", - "mikey179/vfsstream": "^1.6", - "pdepend/pdepend": "2.x", - "pear/archive_tar": "1.4.x", - "pear/http_request2": "dev-trunk", - "pear/net_growl": "dev-trunk", - "pear/pear-core-minimal": "1.10.1", - "pear/versioncontrol_git": "@dev", - "pear/versioncontrol_svn": "~0.5", - "phpdocumentor/phpdocumentor": "2.x", - "phploc/phploc": "~2.0.6", - "phpmd/phpmd": "~2.2", - "phpunit/phpunit": ">=3.7", - "sebastian/git": "~1.0", - "sebastian/phpcpd": "2.x", + "ext-phar": "*", + "ext-sockets": "*", + "ext-xsl": "*", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.0", + "guzzlehttp/guzzle": "^7.9", + "guzzlehttp/promises": "^2.0.3", + "jawira/plantuml-client": "^1.0", + "jawira/plantuml-encoding": "^1.0", + "mehr-als-nix/parallel": "^v1.0", + "mikey179/vfsstream": "2.0.x-dev", + "monolog/monolog": "^3.9", + "monorepo-php/monorepo": "^12.4", + "pdepend/pdepend": "^2.9", + "pear/archive_tar": "^1.4", + "pear/console_getopt": "^v1.4.3", + "pear/mail": "^2.0", + "pear/mail_mime": "^1.10", + "pear/net_ftp": "dev-master", + "pear/net_growl": "dev-master", + "pear/pear-core-minimal": "~1.10.10", + "pear/pear_exception": "^v1.0.2", + "pear/versioncontrol_git": "dev-master", + "pear/versioncontrol_svn": "^0.7.0", + "phing/phing-composer-configurator": "dev-master", + "phpmd/phpmd": "^2.14", + "phpstan/phpstan": "^2.1", + "phpunit/phpunit": "^9.6.21", + "psr/http-message": "^2.0", + "roave/security-advisories": "dev-master", + "scssphp/scssphp": "^2.1", "siad007/versioncontrol_hg": "^1.0", - "simpletest/simpletest": "^1.1", - "squizlabs/php_codesniffer": "~2.2", - "symfony/yaml": "^2.8 || ^3.1 || ^4.0" + "smarty/smarty": "^5.7", + "squizlabs/php_codesniffer": "^4.0", + "symfony/config": "^5.2|^6.0", + "symfony/dependency-injection": "^5.2|^6.0", + "symfony/stopwatch": "^5.2|^6.0", + "tedivm/jshrink": "^1.3" }, "suggest": { - "pdepend/pdepend": "PHP version of JDepend", - "pear/archive_tar": "Tar file management class", - "pear/versioncontrol_git": "A library that provides OO interface to handle Git repository", - "pear/versioncontrol_svn": "A simple OO-style interface for Subversion, the free/open-source version control system", + "aws/aws-sdk-php": "Used for Amazon tasks", + "ext-gettext": "Used for gettext translation filter", + "ext-intl": "Used for Tstamp task", + "ext-posix": "Used for Posix selector and ACLs", + "ext-sockets": "Used for the Socket condition", + "ext-tidy": "Used for the Tidy filter", + "guzzlehttp/guzzle": "Used for Http tasks", + "jawira/plantuml-encoding": "Required by VisualizerTask", + "mehr-als-nix/parallel": "̈Used for Parallel task", + "monolog/monolog": "Required by the MonologListener", + "pdepend/pdepend": "Used for PHPDepend task", + "pear/archive_tar": "Used for Tar task", + "pear/mail": "Used for Mail task", + "pear/mail_mime": "Used for Mail task", + "pear/net_ftp": "Used for FtpDeploy task", + "pear/net_growl": "Used for Growl task", + "pear/pear-core-minimal": "Used for PEAR-related tasks", + "pear/versioncontrol_git": "Used for Git tasks", + "pear/versioncontrol_svn": "Used for Subversion tasks", "phpdocumentor/phpdocumentor": "Documentation Generator for PHP", - "phploc/phploc": "A tool for quickly measuring the size of a PHP project", - "phpmd/phpmd": "PHP version of PMD tool", + "phpmd/phpmd": "Used for PHPMD task", + "phpstan/phpstan": "Used for PHPStan task", "phpunit/php-code-coverage": "Library that provides collection, processing, and rendering functionality for PHP code coverage information", "phpunit/phpunit": "The PHP Unit Testing Framework", - "sebastian/phpcpd": "Copy/Paste Detector (CPD) for PHP code", - "siad007/versioncontrol_hg": "A library for interfacing with Mercurial repositories.", + "scssphp/scssphp": "A compiler for SCSS written in PHP, used by SassTask", + "siad007/versioncontrol_hg": "Used for Mercurial tasks", + "smarty/smarty": "Used for Smarty task", + "squizlabs/php_codesniffer": "Used for PHP CodeSniffer task", + "symfony/stopwatch": "Needed by the StopwatchTask", "tedivm/jshrink": "Javascript Minifier built in PHP" }, "bin": [ @@ -134,19 +379,104 @@ ], "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.16.x-dev" + "phing-custom-taskdefs": { + "scp": "Phing\\Task\\Ext\\Ssh\\ScpTask", + "ssh": "Phing\\Task\\Ext\\Ssh\\SshTask", + "tar": "Phing\\Task\\Ext\\Archive\\TarTask", + "zip": "Phing\\Task\\Ext\\Archive\\ZipTask", + "sass": "Phing\\Task\\Ext\\Sass\\SassTask", + "gitgc": "Phing\\Task\\Ext\\Git\\Git\\GitGcTask", + "hgadd": "Phing\\Task\\Ext\\Hg\\HgAddTask", + "hglog": "Phing\\Task\\Ext\\Hg\\HgLogTask", + "hgtag": "Phing\\Task\\Ext\\Hg\\HgTagTask", + "jsmin": "Phing\\Task\\Ext\\JsMin\\JsMinTask", + "phpmd": "Phing\\Task\\Ext\\Analyzer\\Phpmd\\PHPMDTask", + "s3get": "Phing\\Task\\Ext\\Amazon\\S3\\S3GetTask", + "s3put": "Phing\\Task\\Ext\\Amazon\\S3\\S3PutTask", + "sonar": "Phing\\Task\\Ext\\Analyzer\\Sonar\\SonarTask", + "untar": "Phing\\Task\\Ext\\Archive\\UntarTask", + "unzip": "Phing\\Task\\Ext\\Archive\\UnzipTask", + "apigen": "Phing\\Task\\Ext\\ApiGen\\ApiGenTask", + "gitlog": "Phing\\Task\\Ext\\Git\\Git\\GitLogTask", + "gittag": "Phing\\Task\\Ext\\Git\\Git\\GitTagTask", + "hginit": "Phing\\Task\\Ext\\Hg\\HgInitTask", + "hgpull": "Phing\\Task\\Ext\\Hg\\HgPullTask", + "hgpush": "Phing\\Task\\Ext\\Hg\\HgPushTask", + "jshint": "Phing\\Task\\Ext\\JsHint\\JsHintTask", + "phpdoc": "Phing\\Task\\Ext\\PhpDoc\\PhpDocumentor2Task", + "smarty": "Phing\\Task\\Ext\\Snmarty\\SmartyTask", + "svnlog": "Phing\\Task\\Ext\\Svn\\SvnLogTask", + "analyze": "Phing\\Task\\Ext\\ZendCodeAnalyzer\\ZendCodeAnalyzerTask", + "gitinit": "Phing\\Task\\Ext\\Git\\Git\\GitInitTask", + "gitpull": "Phing\\Task\\Ext\\Git\\Git\\GitPullTask", + "gitpush": "Phing\\Task\\Ext\\Git\\Git\\GitPushTask", + "hgclone": "Phing\\Task\\Ext\\Hg\\HgCloneTask", + "httpget": "Phing\\Task\\Ext\\Http\\HttpGetTask", + "inifile": "Phing\\Task\\Ext\\IniFile\\IniFileTask", + "phpdoc2": "Phing\\Task\\Ext\\PhpDoc\\PhpDocumentor2Task", + "phpstan": "Phing\\Task\\Ext\\Analyzer\\Phpstan\\PHPStanTask", + "phpunit": "Phing\\Task\\Ext\\PhpUnit\\PHPUnitTask", + "svncopy": "Phing\\Task\\Ext\\Svn\\SvnCopyTask", + "svninfo": "Phing\\Task\\Ext\\Svn\\SvnInfoTask", + "svnlist": "Phing\\Task\\Ext\\Svn\\SvnListTask", + "dbdeploy": "Phing\\Task\\Ext\\DbDeploy\\DbDeployTask", + "gitclone": "Phing\\Task\\Ext\\Git\\Git\\GitCloneTask", + "gitfetch": "Phing\\Task\\Ext\\Git\\Git\\GitFetchTask", + "gitmerge": "Phing\\Task\\Ext\\Git\\Git\\GitMergeTask", + "hgcommit": "Phing\\Task\\Ext\\Hg\\HgCommitTask", + "hgrevert": "Phing\\Task\\Ext\\Hg\\HgRevertTask", + "hgupdate": "Phing\\Task\\Ext\\Hg\\HgUpdateTask", + "zsdtpack": "Phing\\Task\\Ext\\ZendServerDeploymentTool\\ZsdtPackTask", + "ftpdeploy": "Phing\\Task\\Ext\\FtpDeploy\\FtpDeployTask", + "gitbranch": "Phing\\Task\\Ext\\Git\\Git\\GitBranchTask", + "gitcommit": "Phing\\Task\\Ext\\Git\\Git\\GitCommitTask", + "hgarchive": "Phing\\Task\\Ext\\Hg\\HgArchiveTask", + "liquibase": "Phing\\Task\\Ext\\Liquibase\\LiquibaseTask", + "phpdepend": "Phing\\Task\\Ext\\Analyzer\\Pdepend\\PhpDependTask", + "svncommit": "Phing\\Task\\Ext\\Svn\\SvnCommitTask", + "svnexport": "Phing\\Task\\Ext\\Svn\\SvnExportTask", + "svnrevert": "Phing\\Task\\Ext\\Svn\\SvnRevertTask", + "svnswitch": "Phing\\Task\\Ext\\Svn\\SvnSwitchTask", + "svnupdate": "Phing\\Task\\Ext\\Svn\\SvnUpdateTask", + "gitarchive": "Phing\\Task\\Ext\\Git\\Git\\GitArchiveTask", + "phkpackage": "Phing\\Task\\Ext\\PhkPackage\\PhkPackageTask", + "svnpropget": "Phing\\Task\\Ext\\Svn\\SvnPropgetTask", + "svnpropset": "Phing\\Task\\Ext\\Svn\\SvnPropsetTask", + "visualizer": "Phing\\Task\\Ext\\Visualizer\\VisualizerTask", + "gitcheckout": "Phing\\Task\\Ext\\Git\\Git\\GitCheckoutTask", + "gitdescribe": "Phing\\Task\\Ext\\Git\\Git\\GitDescribeTask", + "svncheckout": "Phing\\Task\\Ext\\Svn\\SvnCheckoutTask", + "svnproplist": "Phing\\Task\\Ext\\Svn\\SvnProplistTask", + "http-request": "Phing\\Task\\Ext\\Http\\HttpRequestTask", + "zsdtvalidate": "Phing\\Task\\Ext\\ZendServerDeploymentTool\\ZsdtValidateTask", + "liquibase-tag": "Phing\\Task\\Ext\\Liquibase\\LiquibaseTagTask", + "phpunitreport": "Phing\\Task\\Ext\\PhpUnit\\PHPUnitReportTask", + "coverage-setup": "Phing\\Task\\Ext\\Coverage\\CoverageSetupTask", + "ioncubeencoder": "Phing\\Task\\Ext\\Ioncube\\IoncubeEncoderTask", + "ioncubelicense": "Phing\\Task\\Ext\\Ioncube\\IoncubeLicenseTask", + "liquibase-diff": "Phing\\Task\\Ext\\Liquibase\\LiquibaseDiffTask", + "coverage-merger": "Phing\\Task\\Ext\\Coverage\\CoverageMergerTask", + "coverage-report": "Phing\\Task\\Ext\\Coverage\\CoverageReportTask", + "liquibase-dbdoc": "Phing\\Task\\Ext\\Liquibase\\LiquibaseDbDocTask", + "svnlastrevision": "Phing\\Task\\Ext\\Svn\\SvnLastRevisionTask", + "liquibase-update": "Phing\\Task\\Ext\\Liquibase\\LiquibaseUpdateTask", + "zendcodeanalyzer": "Phing\\Task\\Ext\\ZendCodeAnalyzer\\ZendCodeAnalyzerTask", + "coverage-threshold": "Phing\\Task\\Ext\\Coverage\\CoverageThresholdTask", + "liquibase-rollback": "Phing\\Task\\Ext\\Liquibase\\LiquibaseRollbackTask", + "liquibase-changelog": "Phing\\Task\\Ext\\Liquibase\\LiquibaseChangeLogTask" + }, + "phing-custom-typedefs": { + "sshconfig": "Phing\\Task\\Ext\\Ssh\\Ssh2MethodParam", + "tarfileset": "Phing\\Task\\Ext\\Archive\\TarFileSet", + "zipfileset": "Phing\\Task\\Ext\\Archive\\ZipFileSet" } }, "autoload": { - "classmap": [ - "classes/phing/" - ] + "psr-4": { + "Phing\\": "src/Phing" + } }, "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "classes" - ], "license": [ "LGPL-3.0-only" ], @@ -157,29 +487,37 @@ }, { "name": "Phing Community", - "homepage": "https://www.phing.info/trac/wiki/Development/Contributors" + "homepage": "https://github.com/phingofficial/phing/blob/main/CREDITS.md" } ], "description": "PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant.", "homepage": "https://www.phing.info/", "keywords": [ + "ant", "build", + "build-automation", + "build-tool", + "dev", + "make", "phing", + "php", "task", "tool" ], "support": { + "chat": "https://phing.slack.com/", + "docs": "https://www.phing.info/docs/guide/stable/", "irc": "irc://irc.freenode.net/phing", - "issues": "https://www.phing.info/trac/report", - "source": "https://github.com/phingofficial/phing/tree/2.17.4" + "issues": "https://github.com/phingofficial/phing/issues", + "source": "https://github.com/phingofficial/phing/" }, "funding": [ { - "url": "https://github.com/mrook", + "url": "https://github.com/sponsors/mrook", "type": "github" }, { - "url": "https://github.com/siad007", + "url": "https://github.com/sponsors/siad007", "type": "github" }, { @@ -187,43 +525,46 @@ "type": "patreon" } ], - "time": "2022-07-08T09:07:07+00:00" + "time": "2026-02-06T17:21:03+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "2.2.4", + "version": "12.5.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" + "reference": "186dab580576598076de6818596d12b61801880e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", - "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/186dab580576598076de6818596d12b61801880e", + "reference": "186dab580576598076de6818596d12b61801880e", "shasum": "" }, "require": { - "php": ">=5.3.3", - "phpunit/php-file-iterator": "~1.3", - "phpunit/php-text-template": "~1.2", - "phpunit/php-token-stream": "~1.3", - "sebastian/environment": "^1.3.2", - "sebastian/version": "~1.0" + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^5.7.0", + "php": ">=8.3", + "phpunit/php-text-template": "^5.0", + "sebastian/complexity": "^5.0", + "sebastian/environment": "^8.1.2", + "sebastian/lines-of-code": "^4.0.1", + "sebastian/version": "^6.0", + "theseer/tokenizer": "^2.0.1" }, "require-dev": { - "ext-xdebug": ">=2.1.4", - "phpunit/phpunit": "~4" + "phpunit/phpunit": "^12.5.28" }, "suggest": { - "ext-dom": "*", - "ext-xdebug": ">=2.2.1", - "ext-xmlwriter": "*" + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev" + "dev-main": "12.5.x-dev" } }, "autoload": { @@ -238,7 +579,7 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], @@ -250,46 +591,69 @@ "xunit" ], "support": { - "irc": "irc://irc.freenode.net/phpunit", "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/2.2" + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.7" }, - "time": "2015-10-06T15:47:00+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage", + "type": "tidelift" + } + ], + "time": "2026-06-01T13:24:19+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "1.3.4", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb" + "reference": "a248d1640ab059b075f53a2ef0f9856e864e06b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb", - "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a248d1640ab059b075f53a2ef0f9856e864e06b5", + "reference": "a248d1640ab059b075f53a2ef0f9856e864e06b5", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=8.3" + }, + "require-dev": { + "phpunit/phpunit": "^12.5.33" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, "autoload": { "classmap": [ - "File/" + "src/" ] }, "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "" - ], "license": [ "BSD-3-Clause" ], "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], @@ -300,30 +664,60 @@ "iterator" ], "support": { - "irc": "irc://irc.freenode.net/phpunit", "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/1.3.4" + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.2" }, - "time": "2013-10-10T15:34:57+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-file-iterator", + "type": "tidelift" + } + ], + "time": "2026-08-25T14:40:53+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "phpunit/php-invoker", + "version": "6.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406", + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=8.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^12.0" + }, + "suggest": { + "ext-pcntl": "*" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -340,38 +734,50 @@ "role": "lead" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", "keywords": [ - "template" + "process" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/6.0.0" }, - "time": "2015-06-21T13:50:34+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2025-02-07T04:58:58+00:00" }, { - "name": "phpunit/php-timer", - "version": "1.0.8", + "name": "phpunit/php-text-template", + "version": "5.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260", - "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53", + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "~4|~5" + "phpunit/phpunit": "^12.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -384,47 +790,52 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", "keywords": [ - "timer" + "template" ], "support": { - "irc": "irc://irc.freenode.net/phpunit", - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/master" + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/5.0.0" }, - "time": "2016-05-12T18:03:57+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2025-02-07T04:59:16+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "1.4.12", + "name": "phpunit/php-timer", + "version": "8.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": ">=5.3.3" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "~4.2" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -439,56 +850,69 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "tokenizer" + "timer" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", - "source": "https://github.com/sebastianbergmann/php-token-stream/tree/1.4" + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "security": "https://github.com/sebastianbergmann/php-timer/security/policy", + "source": "https://github.com/sebastianbergmann/php-timer/tree/8.0.0" }, - "abandoned": true, - "time": "2017-12-04T08:55:13+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2025-02-07T04:59:38+00:00" }, { "name": "phpunit/phpunit", - "version": "4.3.5", + "version": "12.5.35", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "2dab9d593997db4abcf58d0daf798eb4e9cecfe1" + "reference": "345ac22e42cb14cdc7aa8428655d8bb8c82a4aab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2dab9d593997db4abcf58d0daf798eb4e9cecfe1", - "reference": "2dab9d593997db4abcf58d0daf798eb4e9cecfe1", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/345ac22e42cb14cdc7aa8428655d8bb8c82a4aab", + "reference": "345ac22e42cb14cdc7aa8428655d8bb8c82a4aab", "shasum": "" }, "require": { "ext-dom": "*", + "ext-filter": "*", "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=5.3.3", - "phpunit/php-code-coverage": "~2.0", - "phpunit/php-file-iterator": "~1.3.2", - "phpunit/php-text-template": "~1.2", - "phpunit/php-timer": "~1.0.2", - "phpunit/phpunit-mock-objects": "~2.3", - "sebastian/comparator": "~1.0", - "sebastian/diff": "~1.1", - "sebastian/environment": "~1.0", - "sebastian/exporter": "~1.0", - "sebastian/version": "~1.0", - "symfony/yaml": "~2.0" - }, - "suggest": { - "phpunit/php-invoker": "~1.1" + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.14.0", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", + "php": ">=8.3", + "phpunit/php-code-coverage": "^12.5.7", + "phpunit/php-file-iterator": "^6.0.2", + "phpunit/php-invoker": "^6.0.0", + "phpunit/php-text-template": "^5.0.0", + "phpunit/php-timer": "^8.0.0", + "sebastian/cli-parser": "^4.2.1", + "sebastian/comparator": "^7.1.8", + "sebastian/diff": "^7.0.1", + "sebastian/environment": "^8.1.2", + "sebastian/exporter": "^7.0.3", + "sebastian/global-state": "^8.0.3", + "sebastian/object-enumerator": "^7.0.0", + "sebastian/recursion-context": "^7.0.1", + "sebastian/type": "^6.0.4", + "sebastian/version": "^6.0.0", + "staabm/side-effects-detector": "^1.0.5" }, "bin": [ "phpunit" @@ -496,19 +920,18 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3.x-dev" + "dev-main": "12.5-dev" } }, "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], "classmap": [ "src/" ] }, "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "", - "../../symfony/yaml/" - ], "license": [ "BSD-3-Clause" ], @@ -520,107 +943,102 @@ } ], "description": "The PHP Unit Testing framework.", - "homepage": "http://www.phpunit.de/", + "homepage": "https://phpunit.de/", "keywords": [ "phpunit", "testing", "xunit" ], "support": { - "irc": "irc://irc.freenode.net/phpunit", "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/4.3" + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.35" }, - "time": "2014-11-11T10:11:09+00:00" + "funding": [ + { + "url": "https://phpunit.de/sponsoring.html", + "type": "other" + } + ], + "time": "2026-09-09T04:48:50+00:00" }, { - "name": "phpunit/phpunit-mock-objects", - "version": "2.3.8", + "name": "psr/container", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", - "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": ">=5.3.3", - "phpunit/php-text-template": "~1.2", - "sebastian/exporter": "~1.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "suggest": { - "ext-soap": "*" + "php": ">=7.4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Container\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", "keywords": [ - "mock", - "xunit" + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" ], "support": { - "irc": "irc://irc.freenode.net/phpunit", - "issues": "https://github.com/sebastianbergmann/phpunit-mock-objects/issues", - "source": "https://github.com/sebastianbergmann/phpunit-mock-objects/tree/2.3" + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "abandoned": true, - "time": "2015-10-02T06:51:40+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { - "name": "sebastian/comparator", - "version": "1.2.4", + "name": "sebastian/cli-parser", + "version": "4.2.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "7d05781b13f7dec9043a629a21d086ed74582a15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/7d05781b13f7dec9043a629a21d086ed74582a15", + "reference": "7d05781b13f7dec9043a629a21d086ed74582a15", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/diff": "~1.2", - "sebastian/exporter": "~1.2 || ~2.0" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^12.5.25" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-main": "4.2-dev" } }, "autoload": { @@ -634,24 +1052,100 @@ ], "authors": [ { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" }, { - "name": "Volker Dusch", - "email": "github@wallbash.com" + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" }, { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/cli-parser", + "type": "tidelift" + } + ], + "time": "2026-05-17T05:29:34+00:00" + }, + { + "name": "sebastian/comparator", + "version": "7.1.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "7c65c1e79836812819705b473a90c12399542485" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/7c65c1e79836812819705b473a90c12399542485", + "reference": "7c65c1e79836812819705b473a90c12399542485", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.3", + "sebastian/diff": "^7.0", + "sebastian/exporter": "^7.0.3" + }, + "require-dev": { + "phpunit/phpunit": "^12.5.25" + }, + "suggest": { + "ext-bcmath": "For comparing BcMath\\Number objects" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "7.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" } ], "description": "Provides the functionality to compare PHP values for equality", - "homepage": "http://www.github.com/sebastianbergmann/comparator", + "homepage": "https://github.com/sebastianbergmann/comparator", "keywords": [ "comparator", "compare", @@ -659,34 +1153,112 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/1.2" + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" + } + ], + "time": "2026-05-21T04:45:25+00:00" + }, + { + "name": "sebastian/complexity", + "version": "5.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb", + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^5.0", + "php": ">=8.3" + }, + "require-dev": { + "phpunit/phpunit": "^12.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/5.0.0" }, - "time": "2017-01-29T09:50:25+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2025-02-07T04:55:25+00:00" }, { "name": "sebastian/diff", - "version": "1.4.1", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" + "reference": "cd4cabe39f8a4e8ee6818ba99f10a05561ea4ad6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/cd4cabe39f8a4e8ee6818ba99f10a05561ea4ad6", + "reference": "cd4cabe39f8a4e8ee6818ba99f10a05561ea4ad6", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "~4.8" + "phpunit/phpunit": "^12.5.33", + "symfony/process": "^7.4.17" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -699,50 +1271,75 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], "description": "Diff implementation", "homepage": "https://github.com/sebastianbergmann/diff", "keywords": [ - "diff" + "diff", + "udiff", + "unidiff", + "unified diff" ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/master" + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/7.0.1" }, - "time": "2015-12-08T07:14:41+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/diff", + "type": "tidelift" + } + ], + "time": "2026-08-25T15:35:54+00:00" }, { "name": "sebastian/environment", - "version": "1.3.7", + "version": "8.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716" + "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/4e8f0da10ac5802913afc151413bc8c53b6c2716", - "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/9d32c685773823b1983e256ae4ecd48a10d6e439", + "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^12.5.26" + }, + "suggest": { + "ext-posix": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-main": "8.1-dev" } }, "autoload": { @@ -761,7 +1358,7 @@ } ], "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "homepage": "https://github.com/sebastianbergmann/environment", "keywords": [ "Xdebug", "environment", @@ -769,36 +1366,55 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/1.3.7" + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/8.1.2" }, - "time": "2016-05-17T03:18:57+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/environment", + "type": "tidelift" + } + ], + "time": "2026-05-25T13:40:20+00:00" }, { "name": "sebastian/exporter", - "version": "1.2.2", + "version": "7.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" + "reference": "c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", - "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23", + "reference": "c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/recursion-context": "~1.0" + "ext-mbstring": "*", + "php": ">=8.3", + "sebastian/recursion-context": "^7.0.1" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^12.5.25" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -811,6 +1427,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -819,55 +1439,73 @@ "name": "Volker Dusch", "email": "github@wallbash.com" }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, { "name": "Adam Harvey", "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", + "homepage": "https://www.github.com/sebastianbergmann/exporter", "keywords": [ "export", "exporter" ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/master" + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.3" }, - "time": "2016-06-17T09:04:28+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" + } + ], + "time": "2026-05-20T04:37:17+00:00" }, { - "name": "sebastian/recursion-context", - "version": "1.0.5", + "name": "sebastian/global-state", + "version": "8.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7" + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7", - "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b164d3274d6537ab462591c5755f76a8f5b1aae9", + "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0.1" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "ext-dom": "*", + "phpunit/phpunit": "^12.5.28" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -880,42 +1518,68 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "description": "Snapshotting of global state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/master" + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.3" }, - "time": "2016-10-03T07:41:43+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", + "type": "tidelift" + } + ], + "time": "2026-06-01T15:10:33+00:00" }, { - "name": "sebastian/version", - "version": "1.0.6", + "name": "sebastian/lines-of-code", + "version": "4.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "d543b8ef219dcd8da262cbb958639a96bedba10e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", - "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d543b8ef219dcd8da262cbb958639a96bedba10e", + "reference": "d543b8ef219dcd8da262cbb958639a96bedba10e", "shasum": "" }, + "require": { + "nikic/php-parser": "^5.7.0", + "php": ">=8.3" + }, + "require-dev": { + "phpunit/phpunit": "^12.5.25" + }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -932,79 +1596,866 @@ "role": "lead" } ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/1.0.6" + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/4.0.1" }, - "time": "2015-06-21T13:59:46+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/lines-of-code", + "type": "tidelift" + } + ], + "time": "2026-05-19T16:22:07+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.27.0", + "name": "sebastian/object-enumerator", + "version": "7.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894", + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0" }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" + "require-dev": { + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "dev-main": "7.0-dev" } }, "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/7.0.0" + }, + "funding": [ { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2025-02-07T04:57:48+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "5.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "4bfa827c969c98be1e527abd576533293c634f6a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a", + "reference": "4bfa827c969c98be1e527abd576533293c634f6a", + "shasum": "" + }, + "require": { + "php": ">=8.3" + }, + "require-dev": { + "phpunit/phpunit": "^12.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/5.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2025-02-07T04:58:17+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "7.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", + "shasum": "" + }, + "require": { + "php": ">=8.3" + }, + "require-dev": { + "phpunit/phpunit": "^12.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "7.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/7.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" + } + ], + "time": "2025-08-13T04:44:59+00:00" + }, + { + "name": "sebastian/type", + "version": "6.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "82ff822c2edc46724be9f7411d3163021f602773" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/82ff822c2edc46724be9f7411d3163021f602773", + "reference": "82ff822c2edc46724be9f7411d3163021f602773", + "shasum": "" + }, + "require": { + "php": ">=8.3" + }, + "require-dev": { + "phpunit/phpunit": "^12.5.25" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "security": "https://github.com/sebastianbergmann/type/security/policy", + "source": "https://github.com/sebastianbergmann/type/tree/6.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/type", + "type": "tidelift" + } + ], + "time": "2026-05-20T06:45:45+00:00" + }, + { + "name": "sebastian/version", + "version": "6.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c", + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c", + "shasum": "" + }, + "require": { + "php": ">=8.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "security": "https://github.com/sebastianbergmann/version/security/policy", + "source": "https://github.com/sebastianbergmann/version/tree/6.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2025-02-07T05:00:38+00:00" + }, + { + "name": "staabm/side-effects-detector", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/staabm/side-effects-detector.git", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.6", + "phpunit/phpunit": "^9.6.21", + "symfony/var-dumper": "^5.4.43", + "tomasvotruba/type-coverage": "1.0.0", + "tomasvotruba/unused-public": "1.0.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A static analysis tool to detect side effects in PHP code", + "keywords": [ + "static analysis" + ], + "support": { + "issues": "https://github.com/staabm/side-effects-detector/issues", + "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" + }, + "funding": [ + { + "url": "https://github.com/staabm", + "type": "github" + } + ], + "time": "2024-10-20T05:08:20+00:00" + }, + { + "name": "symfony/console", + "version": "v7.4.18", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "23d6f88a29f6d0eac45bd77d70307adf83ba7ab0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/23d6f88a29f6d0eac45bd77d70307adf83ba7ab0", + "reference": "23d6f88a29f6d0eac45bd77d70307adf83ba7ab0", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^7.2|^8.0" + }, + "conflict": { + "symfony/dependency-injection": "<6.4", + "symfony/dotenv": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/lock": "<6.4", + "symfony/process": "<6.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/lock": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v7.4.18" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-08-25T14:18:37+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.7.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-06-05T06:23:12+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v7.4.18", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "90d412aa5277c6819db39e7605aa46b1019e3232" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/90d412aa5277c6819db39e7605aa46b1019e3232", + "reference": "90d412aa5277c6819db39e7605aa46b1019e3232", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { + "symfony/process": "^6.4|^7.0|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v7.4.18" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-08-23T10:03:40+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.37.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony polyfill for ctype functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "ctype", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-04-10T16:19:22+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.41.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-28T08:25:59+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.42.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", "polyfill", - "portable" + "portable", + "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" }, "funding": [ { @@ -1015,37 +2466,309 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2026-08-07T06:33:24+00:00" }, { - "name": "symfony/yaml", - "version": "v2.8.52", + "name": "symfony/polyfill-mbstring", + "version": "v1.38.2", "source": { "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "02c1859112aa779d9ab394ae4f3381911d84052b" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": ">=7.2" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-27T06:59:30+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.7.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/02c1859112aa779d9ab394ae4f3381911d84052b", - "reference": "02c1859112aa779d9ab394ae4f3381911d84052b", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/polyfill-ctype": "~1.8" + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { - "dev-master": "2.8-dev" + "dev-main": "3.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.7.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } + ], + "time": "2026-07-27T15:39:01+00:00" + }, + { + "name": "symfony/string", + "version": "v7.4.15", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "e394af32256bf9e7bf80849d95e589167c10097b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/e394af32256bf9e7bf80849d95e589167c10097b", + "reference": "e394af32256bf9e7bf80849d95e589167c10097b", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.33", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/emoji": "^7.1|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.4|^7.0|^8.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v7.4.15" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-28T07:33:02+00:00" + }, + { + "name": "symfony/yaml", + "version": "v7.4.18", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4cef939e55b8a21c5780418de0d98ab00d0736e1", + "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<6.4" }, + "require-dev": { + "symfony/console": "^6.4|^7.0|^8.0" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\Yaml\\": "" @@ -1068,23 +2791,91 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Yaml Component", + "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v2.8.52" + "source": "https://github.com/symfony/yaml/tree/v7.4.18" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-08-30T00:47:26+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/7989e43bf381af0eac72e4f0ca5bcbfa81658be4", + "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^8.1" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/2.0.1" }, - "time": "2018-11-11T11:18:13+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2025-12-08T11:19:18+00:00" } ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=5.3", + "php": ">=8.3", "ext-curl": "*" }, - "platform-dev": [], - "plugin-api-version": "2.3.0" + "platform-dev": {}, + "plugin-api-version": "2.9.0" } diff --git a/src/Esendex/AccountService.php b/src/Esendex/AccountService.php index c01bce3..b6bfc15 100644 --- a/src/Esendex/AccountService.php +++ b/src/Esendex/AccountService.php @@ -50,8 +50,8 @@ class AccountService */ public function __construct( Authentication\IAuthentication $authentication, - Http\IHttp $httpClient = null, - Parser\AccountXmlParser $parser = null + ?Http\IHttp $httpClient = null, + ?Parser\AccountXmlParser $parser = null ) { $this->authentication = $authentication; $this->httpClient = (isset($httpClient)) diff --git a/src/Esendex/CheckAccessService.php b/src/Esendex/CheckAccessService.php index bbb8728..59cf0e6 100644 --- a/src/Esendex/CheckAccessService.php +++ b/src/Esendex/CheckAccessService.php @@ -41,7 +41,7 @@ class CheckAccessService private $httpClient; - public function __construct(Http\IHttp $httpClient = null) + public function __construct(?Http\IHttp $httpClient = null) { $this->httpClient = (isset($httpClient)) ? $httpClient diff --git a/src/Esendex/DispatchService.php b/src/Esendex/DispatchService.php index e4d914a..b4fd7b8 100644 --- a/src/Esendex/DispatchService.php +++ b/src/Esendex/DispatchService.php @@ -52,8 +52,8 @@ class DispatchService */ public function __construct( Authentication\IAuthentication $authentication, - Http\IHttp $httpClient = null, - Parser\DispatchXmlParser $parser = null + ?Http\IHttp $httpClient = null, + ?Parser\DispatchXmlParser $parser = null ) { $this->authentication = $authentication; $this->httpClient = (isset($httpClient)) diff --git a/src/Esendex/Exceptions/EsendexException.php b/src/Esendex/Exceptions/EsendexException.php index 82f65b2..3f4d151 100644 --- a/src/Esendex/Exceptions/EsendexException.php +++ b/src/Esendex/Exceptions/EsendexException.php @@ -38,9 +38,9 @@ class EsendexException extends \Exception { private $exceptionInfo; - public function __construct($message = '', $code = null, array $_info = null) + public function __construct($message = '', ?int $code = null, ?array $_info = null) { - parent::__construct($message, $code); + parent::__construct($message, $code ?? 0); $this->exceptionInfo($_info); } diff --git a/src/Esendex/Http/HttpClient.php b/src/Esendex/Http/HttpClient.php index c9792ff..06feac2 100644 --- a/src/Esendex/Http/HttpClient.php +++ b/src/Esendex/Http/HttpClient.php @@ -123,7 +123,6 @@ private function request($url, $authentication, $method, $data = null, $contentT \curl_setopt($curlHandle, CURLOPT_CUSTOMREQUEST, $method); if ($method == 'PUT' || $method == 'POST') { \curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $data); - \curl_setopt($curlHandle, CURLOPT_BINARYTRANSFER, true); if (strlen($data) == 0) { $httpHeaders[] = 'Content-Length: 0'; } @@ -138,8 +137,6 @@ private function request($url, $authentication, $method, $data = null, $contentT $results['data'] = $result; $results['statuscode'] = $curlInfo["http_code"]; - \curl_close($curlHandle); - if ($results['statuscode'] < 200 || $results['statuscode'] >= 300) { throw $this->getHttpException($results, $curlInfo); } @@ -148,7 +145,7 @@ private function request($url, $authentication, $method, $data = null, $contentT return $results; } - private function getHttpException(array $result, array $info = null) + private function getHttpException(array $result, ?array $info = null) { $http_code = $result["statuscode"]; $data = $result["data"]; diff --git a/src/Esendex/Http/UriBuilder.php b/src/Esendex/Http/UriBuilder.php index a9d2923..d58071e 100644 --- a/src/Esendex/Http/UriBuilder.php +++ b/src/Esendex/Http/UriBuilder.php @@ -44,7 +44,7 @@ public static function init() self::$url_separator = ini_get('arg_separator.output'); } - public static function serviceUri($version, $resource, array $parts = null, $secure = true) + public static function serviceUri($version, $resource, ?array $parts = null, $secure = true) { $host = defined("ESENDEX_API_HOST") ? ESENDEX_API_HOST : self::HOST; $scheme = ($secure) ? "https" : "http"; diff --git a/src/Esendex/InboxService.php b/src/Esendex/InboxService.php index 43c57c5..31912a9 100644 --- a/src/Esendex/InboxService.php +++ b/src/Esendex/InboxService.php @@ -50,8 +50,8 @@ class InboxService */ public function __construct( Authentication\IAuthentication $authentication, - Http\IHttp $httpClient = null, - Parser\InboxXmlParser $parser = null + ?Http\IHttp $httpClient = null, + ?Parser\InboxXmlParser $parser = null ) { $this->authentication = $authentication; $this->httpClient = (isset($httpClient)) diff --git a/src/Esendex/MessageBatchesService.php b/src/Esendex/MessageBatchesService.php index f4302d4..9810926 100644 --- a/src/Esendex/MessageBatchesService.php +++ b/src/Esendex/MessageBatchesService.php @@ -50,8 +50,8 @@ class MessageBatchesService */ public function __construct( Authentication\IAuthentication $authentication, - Http\IHttp $httpClient = null, - Parser\BatchesMessagesXmlParser $parser = null + ?Http\IHttp $httpClient = null, + ?Parser\BatchesMessagesXmlParser $parser = null ) { $this->authentication = $authentication; diff --git a/src/Esendex/MessageBodyService.php b/src/Esendex/MessageBodyService.php index 6056b92..43b4a09 100644 --- a/src/Esendex/MessageBodyService.php +++ b/src/Esendex/MessageBodyService.php @@ -47,7 +47,7 @@ class MessageBodyService * @param Authentication\IAuthentication $authentication * @param Http\IHttp $httpClient */ - function __construct(Authentication\IAuthentication $authentication, Http\IHttp $httpClient = null) + function __construct(Authentication\IAuthentication $authentication, ?Http\IHttp $httpClient = null) { $this->authentication = $authentication; $this->httpClient = (isset($httpClient)) diff --git a/src/Esendex/MessageHeaderService.php b/src/Esendex/MessageHeaderService.php index 95b1613..cf98f57 100644 --- a/src/Esendex/MessageHeaderService.php +++ b/src/Esendex/MessageHeaderService.php @@ -50,8 +50,8 @@ class MessageHeaderService */ public function __construct( Authentication\IAuthentication $authentication, - Http\IHttp $httpClient = null, - Parser\MessageHeaderXmlParser $parser = null + ?Http\IHttp $httpClient = null, + ?Parser\MessageHeaderXmlParser $parser = null ) { $this->authentication = $authentication; diff --git a/src/Esendex/MessageInformationService.php b/src/Esendex/MessageInformationService.php index e6ad011..4ea9572 100644 --- a/src/Esendex/MessageInformationService.php +++ b/src/Esendex/MessageInformationService.php @@ -52,8 +52,8 @@ class MessageInformationService */ public function __construct( Authentication\IAuthentication $authentication, - Http\IHttp $httpClient = null, - Parser\MessageInformationXmlParser $parser = null + ?Http\IHttp $httpClient = null, + ?Parser\MessageInformationXmlParser $parser = null ) { $this->authentication = $authentication; $this->httpClient = (isset($httpClient)) diff --git a/src/Esendex/Model/InboxPage.php b/src/Esendex/Model/InboxPage.php index 7ac543f..3114b85 100644 --- a/src/Esendex/Model/InboxPage.php +++ b/src/Esendex/Model/InboxPage.php @@ -52,57 +52,29 @@ public function __construct($startIndex, $totalCount) $this->messages = array(); } - /** - * @return int - */ - public function startIndex() + public function startIndex(): int { return $this->startIndex; } - /** - * @return int - */ - public function totalCount() + public function totalCount(): int { return $this->totalCount; } - /** - * @param int $offset

- * An offset to check for. - *

- * @return boolean true on success or false on failure. - *

- */ - public function offsetExists($offset) + public function offsetExists(mixed $offset): bool { return isset($this->messages[$offset]); } - /** - * @param int $offset

- * The offset to retrieve. - *

- * @return InboxMessage - */ - public function offsetGet($offset) + public function offsetGet(mixed $offset): mixed { return isset($this->messages[$offset]) ? $this->messages[$offset] : null; } - /** - * @param int $offset

- * The offset to assign the value to. Cannot be explicitly set. - *

- * @param InboxMessage $value

- * The value to set. - *

- * @return void - */ - public function offsetSet($offset, $value) + public function offsetSet(mixed $offset, mixed $value): void { if (!is_null($offset)) { throw new \Esendex\Exceptions\ArgumentException("InboxPage does not support explicitly set offsets"); @@ -111,61 +83,37 @@ public function offsetSet($offset, $value) $this->messages[] = $value; } - /** - * @param int $offset

- * The offset to unset. - *

- * @return void - */ - public function offsetUnset($offset) + public function offsetUnset(mixed $offset): void { unset($this->messages[$offset]); } - /** - * @return int - */ - public function count() + public function count(): int { return count($this->messages); } - /** - * @return InboxMessage - */ - public function current() + public function current(): mixed { return $this->offsetGet($this->position); } - /** - * @return void - */ - public function next() + public function next(): void { ++$this->position; } - /** - * @return int - */ - public function key() + public function key(): int { return $this->position; } - /** - * @return boolean true on success or false on failure. - */ - public function valid() + public function valid(): bool { return $this->offsetExists($this->position); } - /** - * @return void - */ - public function rewind() + public function rewind(): void { $this->position = 0; } diff --git a/src/Esendex/Model/SentMessagesPage.php b/src/Esendex/Model/SentMessagesPage.php index 20faaea..fe93263 100644 --- a/src/Esendex/Model/SentMessagesPage.php +++ b/src/Esendex/Model/SentMessagesPage.php @@ -52,57 +52,29 @@ public function __construct($startIndex, $totalCount) $this->messages = array(); } - /** - * @return int - */ - public function startIndex() + public function startIndex(): int { return $this->startIndex; } - /** - * @return int - */ - public function totalCount() + public function totalCount(): int { return $this->totalCount; } - /** - * @param int $offset

- * An offset to check for. - *

- * @return boolean true on success or false on failure. - *

- */ - public function offsetExists($offset) + public function offsetExists(mixed $offset): bool { return isset($this->messages[$offset]); } - /** - * @param int $offset

- * The offset to retrieve. - *

- * @return SentMessage - */ - public function offsetGet($offset) + public function offsetGet(mixed $offset): mixed { return isset($this->messages[$offset]) ? $this->messages[$offset] : null; } - /** - * @param int $offset

- * The offset to assign the value to. Cannot be explicitly set. - *

- * @param SentMessage $value

- * The value to set. - *

- * @return void - */ - public function offsetSet($offset, $value) + public function offsetSet(mixed $offset,mixed $value): void { if (!is_null($offset)) { throw new \Esendex\Exceptions\ArgumentException("SentMessagesPage does not support explicitly set offsets"); @@ -111,61 +83,37 @@ public function offsetSet($offset, $value) $this->messages[] = $value; } - /** - * @param int $offset

- * The offset to unset. - *

- * @return void - */ - public function offsetUnset($offset) + public function offsetUnset(mixed $offset): void { unset($this->messages[$offset]); } - /** - * @return int - */ - public function count() + public function count(): int { return count($this->messages); } - /** - * @return SentMessage - */ - public function current() + public function current(): mixed { return $this->offsetGet($this->position); } - /** - * @return void - */ - public function next() + public function next(): void { ++$this->position; } - /** - * @return int - */ - public function key() + public function key(): int { return $this->position; } - /** - * @return boolean true on success or false on failure. - */ - public function valid() + public function valid(): bool { return $this->offsetExists($this->position); } - /** - * @return void - */ - public function rewind() + public function rewind(): void { $this->position = 0; } diff --git a/src/Esendex/OptOutsService.php b/src/Esendex/OptOutsService.php index dd9829b..78abf8f 100644 --- a/src/Esendex/OptOutsService.php +++ b/src/Esendex/OptOutsService.php @@ -49,8 +49,8 @@ class OptOutsService */ public function __construct( Authentication\IAuthentication $authentication, - Http\IHttp $httpClient = null, - Parser\OptOutXmlParser $parser = null + ?Http\IHttp $httpClient = null, + ?Parser\OptOutXmlParser $parser = null ) { $this->authentication = $authentication; $this->httpClient = (isset($httpClient)) diff --git a/src/Esendex/Parser/DispatchXmlParser.php b/src/Esendex/Parser/DispatchXmlParser.php index 76975cf..d305a13 100644 --- a/src/Esendex/Parser/DispatchXmlParser.php +++ b/src/Esendex/Parser/DispatchXmlParser.php @@ -94,15 +94,18 @@ public function addMessage(\SimpleXMLElement $doc, \Esendex\Model\DispatchMessag throw new ArgumentException("Alphanumeric originator contains invalid character(s)"); } } - if (strlen($message->recipient()) < 1) + $recipient = $message->recipient(); + + if ($recipient === null || $recipient === '') { throw new ArgumentException("Recipient is invalid"); + } if ($message->validityPeriod() > 72) throw new ArgumentException("Validity too long, must be less or equal to than 72"); $child = $doc->addChild("message"); if ($message->originator() != null) $child->from = $message->originator(); - $child->to = $message->recipient(); + $child->to = $recipient; $child->body = $message->body(); $child->type = $message->type(); if ($message->validityPeriod() > 0) diff --git a/src/Esendex/SentMessagesService.php b/src/Esendex/SentMessagesService.php index 2737cd9..d7c6009 100644 --- a/src/Esendex/SentMessagesService.php +++ b/src/Esendex/SentMessagesService.php @@ -50,8 +50,8 @@ class SentMessagesService */ public function __construct( Authentication\IAuthentication $authentication, - Http\IHttp $httpClient = null, - Parser\SentMessagesXmlParser $parser = null + ?Http\IHttp $httpClient = null, + ?Parser\SentMessagesXmlParser $parser = null ) { $this->authentication = $authentication; $this->httpClient = (isset($httpClient)) diff --git a/src/Esendex/SessionService.php b/src/Esendex/SessionService.php index e1adc7e..fac7261 100644 --- a/src/Esendex/SessionService.php +++ b/src/Esendex/SessionService.php @@ -38,8 +38,9 @@ class SessionService { const SERVICE = 'session'; const SERVICE_VERSION = 'v1.0'; + private $httpUtil; - function __construct(Http\IHttp $httpClient = null) + function __construct(?Http\IHttp $httpClient = null) { $this->httpUtil = (isset($httpClient)) ? $httpClient diff --git a/src/Esendex/SurveyReportService.php b/src/Esendex/SurveyReportService.php index 289b87b..488fe8c 100644 --- a/src/Esendex/SurveyReportService.php +++ b/src/Esendex/SurveyReportService.php @@ -40,6 +40,7 @@ class SurveyReportService { private $authentication; private $httpClient; + private $parser; /** * @param Authentication\IAuthentication $authentication @@ -48,8 +49,8 @@ class SurveyReportService */ public function __construct( Authentication\IAuthentication $authentication, - Http\IHttp $httpClient = null, - Parser\SurveyReportXmlParser $parser = null + ?Http\IHttp $httpClient = null, + ?Parser\SurveyReportXmlParser $parser = null, ) { $this->authentication = $authentication; $this->httpClient = (isset($httpClient)) diff --git a/src/Esendex/SurveySendService.php b/src/Esendex/SurveySendService.php index 3d7c4bc..315563e 100644 --- a/src/Esendex/SurveySendService.php +++ b/src/Esendex/SurveySendService.php @@ -45,7 +45,7 @@ class SurveySendService */ public function __construct( Authentication\IAuthentication $authentication, - Http\IHttp $httpClient = null + ?Http\IHttp $httpClient = null ) { $this->authentication = $authentication; $this->httpClient = (isset($httpClient)) diff --git a/test/Esendex/Authentication/LoginAuthenticationTest.php b/test/Esendex/Authentication/LoginAuthenticationTest.php index 09858f5..30ed827 100644 --- a/test/Esendex/Authentication/LoginAuthenticationTest.php +++ b/test/Esendex/Authentication/LoginAuthenticationTest.php @@ -34,11 +34,9 @@ */ namespace Esendex\Authentication; -class LoginAuthenticationTest extends \PHPUnit_Framework_TestCase +class LoginAuthenticationTest extends \PHPUnit\Framework\TestCase { - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function serialiseReturnsExpectedValue() { $reference = "EX000999"; diff --git a/test/Esendex/Authentication/SessionAuthenticationTest.php b/test/Esendex/Authentication/SessionAuthenticationTest.php index 8958912..6bd68b2 100644 --- a/test/Esendex/Authentication/SessionAuthenticationTest.php +++ b/test/Esendex/Authentication/SessionAuthenticationTest.php @@ -34,11 +34,9 @@ */ namespace Esendex\Authentication; -class SessionAuthenticationTest extends \PHPUnit_Framework_TestCase +class SessionAuthenticationTest extends \PHPUnit\Framework\TestCase { - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function serialiseReturnsExpectedValue() { $reference = "EX000999"; diff --git a/test/Esendex/Http/UriBuilderTest.php b/test/Esendex/Http/UriBuilderTest.php index ea557a1..32c6260 100644 --- a/test/Esendex/Http/UriBuilderTest.php +++ b/test/Esendex/Http/UriBuilderTest.php @@ -34,11 +34,9 @@ */ namespace Esendex\Http; -class UriBuilderTest extends \PHPUnit_Framework_TestCase +class UriBuilderTest extends \PHPUnit\Framework\TestCase { - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function serviceUriReturnsExpectedUri() { $version = "v1.0"; @@ -49,12 +47,10 @@ function serviceUriReturnsExpectedUri() $this->assertEquals($expected, $result); } - - /** - * @test - * @runInSeparateProcess - */ - function serviceUriWithOverrideHostReturnsExpectedUri() + + #[\PHPUnit\Framework\Attributes\Test] + #[\PHPUnit\Framework\Attributes\RunInSeparateProcess] + function serviceUriWithOverrideHostReturnsExpectedUri(): void { define("ESENDEX_API_HOST", "api.myfakeesendex.com"); @@ -67,9 +63,7 @@ function serviceUriWithOverrideHostReturnsExpectedUri() $this->assertEquals($expected, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function serviceUriReturnsExpectedUriWhenUnsecured() { $version = "v1.0"; @@ -81,9 +75,7 @@ function serviceUriReturnsExpectedUriWhenUnsecured() $this->assertEquals($expected, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function serviceUriReturnsExpectedUriWithIdentifier() { $version = "v1.0"; @@ -96,9 +88,7 @@ function serviceUriReturnsExpectedUriWithIdentifier() $this->assertEquals($expected, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function serviceUriReturnsExpectedUriWithIdentifierAndSubResource() { $version = "v1.0"; @@ -112,9 +102,7 @@ function serviceUriReturnsExpectedUriWithIdentifierAndSubResource() $this->assertEquals($expected, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function serviceUriReturnsExpectedUriWithIdentifierRequiringEncoding() { $version = "v1.0"; @@ -128,9 +116,7 @@ function serviceUriReturnsExpectedUriWithIdentifierRequiringEncoding() $this->assertEquals($expected, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function buildQueryReturnsExpectedQueryString() { $params = array( @@ -144,9 +130,7 @@ function buildQueryReturnsExpectedQueryString() $this->assertEquals($expected, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function buildQueryWithNonUriCharsInValuesReturnsExpectedQueryString() { $params = array( @@ -160,9 +144,7 @@ function buildQueryWithNonUriCharsInValuesReturnsExpectedQueryString() $this->assertEquals($expected, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function buildQueryWithNonUriCharsInKeysReturnsExpectedQueryString() { $params = array( @@ -176,9 +158,7 @@ function buildQueryWithNonUriCharsInKeysReturnsExpectedQueryString() $this->assertEquals($expected, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function buildQueryWithDateTimeValueReturnsExpectedQueryString() { $params = array( diff --git a/test/Esendex/Parser/AccountXmlParserTest.php b/test/Esendex/Parser/AccountXmlParserTest.php index b497956..04d8894 100644 --- a/test/Esendex/Parser/AccountXmlParserTest.php +++ b/test/Esendex/Parser/AccountXmlParserTest.php @@ -36,7 +36,7 @@ use Esendex\Model\Account; -class AccountXmlParserTest extends \PHPUnit_Framework_TestCase +class AccountXmlParserTest extends \PHPUnit\Framework\TestCase { const RESPONSE_XML = << @@ -70,9 +70,7 @@ class AccountXmlParserTest extends \PHPUnit_Framework_TestCase XML; - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parseAccountsResponse() { $parser = new AccountXmlParser(); diff --git a/test/Esendex/Parser/DispatchXmlParserTest.php b/test/Esendex/Parser/DispatchXmlParserTest.php index 27c3f42..bf8d232 100644 --- a/test/Esendex/Parser/DispatchXmlParserTest.php +++ b/test/Esendex/Parser/DispatchXmlParserTest.php @@ -38,7 +38,7 @@ use Esendex\Model\MessageBody; use Esendex\Model\DispatchMessage; -class DispatchXmlParserTest extends \PHPUnit_Framework_TestCase +class DispatchXmlParserTest extends \PHPUnit\Framework\TestCase { const DISPATCHER_RESPONSE_XML = << @@ -53,9 +53,7 @@ class DispatchXmlParserTest extends \PHPUnit_Framework_TestCase XML; - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function encodeMessage() { $reference = "EX123456"; @@ -85,9 +83,7 @@ function encodeMessage() $this->assertEquals($expected, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function encodeVoiceMessage() { $reference = "EX123456"; @@ -119,18 +115,16 @@ function encodeVoiceMessage() $this->assertEquals($expected, $result); } - function characterSets() + public static function characterSets(): array { return array(array(MessageBody::CharsetGSM), array(MessageBody::CharsetUnicode), array(MessageBody::CharsetAuto)); } - - /** - * @test - * @dataProvider characterSets - */ - function encodeCharacterSetMessage($charset) + + #[\PHPUnit\Framework\Attributes\Test] + #[\PHPUnit\Framework\Attributes\DataProvider('characterSets')] + function encodeCharacterSetMessage($charset): void { $reference = "EX123456"; $message = new DispatchMessage( @@ -159,17 +153,16 @@ function encodeCharacterSetMessage($charset) $this->assertEquals($expected, $result); } - function invalidOriginators() + public static function invalidOriginators(): array { return array(array("TooLongForAlpha", "Alphanumeric originator must <= 11 characters"), array("BadChars{}", "Alphanumeric originator contains invalid character(s)"), array("012345678901234567890", "Numeric originator must be <= 20 digits")); } - - /** - * @test - * @dataProvider invalidOriginators - */ + + #[\PHPUnit\Framework\Attributes\Test] + #[\PHPUnit\Framework\Attributes\DataProvider('invalidOriginators')] + function encodeMessageInvalidOriginator($originator, $expectedMessage) { $reference = "EX123456"; @@ -181,13 +174,12 @@ function encodeMessageInvalidOriginator($originator, $expectedMessage) ); $parser = new DispatchXmlParser($reference); - $this->setExpectedException("\\Esendex\\Exceptions\\ArgumentException", $expectedMessage); + $this->expectException(\Esendex\Exceptions\ArgumentException::class); + $this->expectExceptionMessage($expectedMessage); $parser->encode($message); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function encodeMessageInvalidRecipient() { $reference = "EX123456"; @@ -199,13 +191,12 @@ function encodeMessageInvalidRecipient() ); $parser = new DispatchXmlParser($reference); - $this->setExpectedException("\\Esendex\\Exceptions\\ArgumentException", "Recipient is invalid"); + $this->expectException(\Esendex\Exceptions\ArgumentException::class); + $this->expectExceptionMessage("Recipient is invalid"); $parser->encode($message); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function encodeMessageInvalidValidity() { $reference = "EX123456"; @@ -218,16 +209,13 @@ function encodeMessageInvalidValidity() ); $parser = new DispatchXmlParser($reference); - $this->setExpectedException( - "\\Esendex\\Exceptions\\ArgumentException", - "Validity too long, must be less or equal to than 72" - ); + $this->expectException(\Esendex\Exceptions\ArgumentException::class); + $this->expectExceptionMessage("Validity too long, must be less or equal to than 72"); + $parser->encode($message); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function encodeMessageBodyContainsAmpersand() { $reference = "EX123456"; @@ -244,9 +232,7 @@ function encodeMessageBodyContainsAmpersand() $this->assertThat($result, $this->stringContains("This & That")); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parseMessageResults() { $parser = new DispatchXmlParser("reference"); @@ -264,9 +250,7 @@ function parseMessageResults() ); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parseMessageResultsWithoutHeaders() { $parser = new DispatchXmlParser("reference"); @@ -276,14 +260,12 @@ function parseMessageResultsWithoutHeaders() $this->assertEquals(0, count($result)); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parseMessageResultsUnexpectedXml() { $parser = new DispatchXmlParser("reference"); - $this->setExpectedException("\\Esendex\\Exceptions\\XmlException"); + $this->expectException(\Esendex\Exceptions\XmlException::class); $parser->parse(""); } } diff --git a/test/Esendex/Parser/InboxXmlParserTest.php b/test/Esendex/Parser/InboxXmlParserTest.php index 476ed96..019dbdb 100644 --- a/test/Esendex/Parser/InboxXmlParserTest.php +++ b/test/Esendex/Parser/InboxXmlParserTest.php @@ -34,12 +34,12 @@ */ namespace Esendex\Parser; -class InboxXmlParserTest extends \PHPUnit_Framework_TestCase +class InboxXmlParserTest extends \PHPUnit\Framework\TestCase { private $headerParser; private $parser; - function setUp() + function setUp(): void { $this->headerParser = $this->getMockBuilder("\\Esendex\\Parser\\MessageHeaderXmlParser") ->disableOriginalConstructor() @@ -114,15 +114,13 @@ function setUp() XML; - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parseXmlWithResults() { $this->headerParser ->expects($this->exactly(3)) ->method("parseHeader") - ->will($this->returnValue(new \Esendex\Model\InboxMessage())); + ->willReturn(new \Esendex\Model\InboxMessage()); $result = $this->parser->parse(self::INBOX_RESPONSE_XML); @@ -142,9 +140,7 @@ function parseXmlWithResults() xmlns="http://api.esendex.com/ns/" /> XML; - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parseXmlWithNoResults() { $this->headerParser diff --git a/test/Esendex/Parser/MessageHeaderXmlParserTest.php b/test/Esendex/Parser/MessageHeaderXmlParserTest.php index 361710b..cd45b41 100644 --- a/test/Esendex/Parser/MessageHeaderXmlParserTest.php +++ b/test/Esendex/Parser/MessageHeaderXmlParserTest.php @@ -36,7 +36,7 @@ use Esendex\Model\Message; -class MessageHeaderXmlParserTest extends \PHPUnit_Framework_TestCase +class MessageHeaderXmlParserTest extends \PHPUnit\Framework\TestCase { const OUTBOUND_RESPONSE_XML = << @@ -66,9 +66,7 @@ class MessageHeaderXmlParserTest extends \PHPUnit_Framework_TestCase XML; - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parseOutboundMessage() { $parser = new MessageHeaderXmlParser(); @@ -144,9 +142,7 @@ function parseOutboundMessage() XML; - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parseFailedOutboundMessage() { $parser = new MessageHeaderXmlParser(); @@ -220,9 +216,7 @@ function parseFailedOutboundMessage() XML; - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parseInboundMessage() { $parser = new MessageHeaderXmlParser(); @@ -257,9 +251,7 @@ function parseInboundMessage() $this->assertEquals("e84ccbdc-732f-1485-0b03-0aa56519e001", $result->batchId()); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parseReadInboundMessage() { $readAt = "2013-03-07T15:20:12Z"; diff --git a/test/Esendex/Parser/MessageInformationXmlParserTest.php b/test/Esendex/Parser/MessageInformationXmlParserTest.php index 1d248a4..5517555 100644 --- a/test/Esendex/Parser/MessageInformationXmlParserTest.php +++ b/test/Esendex/Parser/MessageInformationXmlParserTest.php @@ -38,9 +38,9 @@ use Esendex\Model\MessageBody; use Esendex\Model\MessageInformation; -class MessageInformationXmlParserTest extends \PHPUnit_Framework_TestCase +class MessageInformationXmlParserTest extends \PHPUnit\Framework\TestCase { - function characterSets() + public static function characterSets(): array { return array( array(MessageBody::CharsetGSM), @@ -49,11 +49,9 @@ function characterSets() ); } - /** - * @test - * @dataProvider characterSets - */ - function encodeRequest($characterSet) + #[\PHPUnit\Framework\Attributes\Test] + #[\PHPUnit\Framework\Attributes\DataProvider('characterSets')] + function encodeRequest($characterSet): void { $message = "the message"; $parser = new MessageInformationXmlParser(); @@ -69,15 +67,13 @@ function encodeRequest($characterSet) $this->assertEquals($expected, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function encodeRequestInvalidCharacterSet() { $parser = new MessageInformationXmlParser(); - $this->setExpectedException( - "\\Esendex\\Exceptions\\ArgumentException", + $this->expectException(\Esendex\Exceptions\ArgumentException::class); + $this->expectExceptionMessage( "characterSet value was 'Latin1' and must be one of 'GSM', " . "'Unicode' or 'Auto'" ); @@ -85,9 +81,7 @@ function encodeRequestInvalidCharacterSet() $result = $parser->encode("a message", "Latin1"); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function encodeMessageBodyContainingXmlEntities() { $parser = new MessageInformationXmlParser(); @@ -114,9 +108,7 @@ function encodeMessageBodyContainingXmlEntities() XML; - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parseResponse() { $parser = new MessageInformationXmlParser(); diff --git a/test/Esendex/Parser/OptOutXmlParserTest.php b/test/Esendex/Parser/OptOutXmlParserTest.php index 25eca81..b16833d 100644 --- a/test/Esendex/Parser/OptOutXmlParserTest.php +++ b/test/Esendex/Parser/OptOutXmlParserTest.php @@ -36,7 +36,7 @@ use Esendex\Model\OptOut; -class OptOutXmlParserTest extends \PHPUnit_Framework_TestCase +class OptOutXmlParserTest extends \PHPUnit\Framework\TestCase { const OPTOUT_RESPONSE_XML = " EX0012345 @@ -72,9 +72,7 @@ class OptOutXmlParserTest extends \PHPUnit_Framework_TestCase "; - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function encodePostRequest() { $parser = new OptOutXmlParser(); @@ -85,9 +83,7 @@ function encodePostRequest() $this->assertSame($formattedExpectedResult, $formattedResult); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parseOptOut() { $parser = new OptOutXmlParser(); @@ -100,14 +96,12 @@ function parseOptOut() $this->assertEquals("EX0012345", $result->accountReference()); $this->assertEquals("44712345678", $result->from()->phoneNumber()); $this->assertEquals( - \DateTime::createFromFormat(\DateTime::ISO8601, "2016-10-10T13:00:00.1234567Z"), + new \DateTime("2016-10-10T13:00:00.123Z"), $result->receivedAt() ); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parsePostResponse() { $parser = new OptOutXmlParser(); @@ -122,14 +116,12 @@ function parsePostResponse() $this->assertEquals("EX0012345", $result->accountReference()); $this->assertEquals("44712345678", $result->from()->phoneNumber()); $this->assertEquals( - \DateTime::createFromFormat(\DateTime::ISO8601, "2016-10-10T13:00:00.1234567Z"), + new \DateTime("2016-10-10T13:00:00.123Z"), $result->receivedAt() ); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parseMultipleResult() { $parser = new OptOutXmlParser(); @@ -145,7 +137,7 @@ function parseMultipleResult() $this->assertEquals("47a1144b-8a68-4608-9360-d4a52aaf90d2", $optOuts[0]->id()); $this->assertEquals("EX0012345", $optOuts[0]->accountReference()); $this->assertEquals("447728693893", $optOuts[0]->from()->phoneNumber()); - $expectedDate = \DateTime::createFromFormat(\DateTime::ISO8601, "2016-10-10T13:00:00.1234567Z"); + $expectedDate = new \DateTime("2015-11-09T15:18:19.033333Z"); $this->assertEquals($expectedDate, $optOuts[0]->receivedAt() ); } diff --git a/test/Esendex/Parser/SentMessagesXmlParserTest.php b/test/Esendex/Parser/SentMessagesXmlParserTest.php index 408d757..82a835b 100644 --- a/test/Esendex/Parser/SentMessagesXmlParserTest.php +++ b/test/Esendex/Parser/SentMessagesXmlParserTest.php @@ -34,12 +34,12 @@ */ namespace Esendex\Parser; -class SentMessagesXmlParserTest extends \PHPUnit_Framework_TestCase +class SentMessagesXmlParserTest extends \PHPUnit\Framework\TestCase { private $headerParser; private $parser; - function setUp() + function setUp(): void { $this->headerParser = $this->getMockBuilder("\\Esendex\\Parser\\MessageHeaderXmlParser") ->disableOriginalConstructor() @@ -119,15 +119,13 @@ function setUp() XML; - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parseXmlWithResults() { $this->headerParser ->expects($this->exactly(3)) ->method("parseHeader") - ->will($this->returnValue(new \Esendex\Model\SentMessage())); + ->willReturn(new \Esendex\Model\SentMessage()); $result = $this->parser->parse(self::SENT_MESSAGE_RESPONSE_XML); @@ -147,9 +145,7 @@ function parseXmlWithResults() xmlns="http://api.esendex.com/ns/" /> XML; - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function parseXmlWithNoResults() { $this->headerParser diff --git a/test/Esendex/Services/AccountServiceTest.php b/test/Esendex/Services/AccountServiceTest.php index 1eb6ea8..c613be2 100644 --- a/test/Esendex/Services/AccountServiceTest.php +++ b/test/Esendex/Services/AccountServiceTest.php @@ -34,7 +34,7 @@ */ namespace Esendex; -class AccountServiceTest extends \PHPUnit_Framework_TestCase +class AccountServiceTest extends \PHPUnit\Framework\TestCase { private $reference; private $username; @@ -44,17 +44,17 @@ class AccountServiceTest extends \PHPUnit_Framework_TestCase private $parser; private $service; - function setUp() + function setUp(): void { $this->reference = "asjkdhlajksdhla"; $this->username = "jhdkfjh"; $this->password = "dklfjlsdjkf"; $this->authentication = new Authentication\LoginAuthentication($this->reference, $this->username, $this->password); - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->httpUtil->expects($this->any()) ->method("isSecure") - ->will($this->returnValue(true)); + ->willReturn(true); $this->parser = $this->getMockBuilder("\\Esendex\\Parser\\AccountXmlParser") ->disableOriginalConstructor() @@ -63,9 +63,7 @@ function setUp() $this->service = new AccountService($this->authentication, $this->httpUtil, $this->parser); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getAccount() { $response = "xml response"; @@ -81,21 +79,19 @@ function getAccount() ), $this->equalTo($this->authentication) ) - ->will($this->returnValue($response)); + ->willReturn($response); $this->parser ->expects($this->once()) ->method("parse") ->with($this->equalTo($response)) - ->will($this->returnValue(array($account))); + ->willReturn(array($account)); $result = $this->service->getAccount(); $this->assertSame($account, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getAccountNoMatchingAccountReference() { $response = "xml response"; @@ -111,21 +107,19 @@ function getAccountNoMatchingAccountReference() ), $this->equalTo($this->authentication) ) - ->will($this->returnValue($response)); + ->willReturn($response); $this->parser ->expects($this->once()) ->method("parse") ->with($this->equalTo($response)) - ->will($this->returnValue(array($account))); + ->willReturn(array($account)); $result = $this->service->getAccount(); $this->assertNull($result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getAccountWithSpecificReference() { $response = "xml response"; @@ -144,21 +138,19 @@ function getAccountWithSpecificReference() ), $this->equalTo($this->authentication) ) - ->will($this->returnValue($response)); + ->willReturn($response); $this->parser ->expects($this->once()) ->method("parse") ->with($this->equalTo($response)) - ->will($this->returnValue(array($defaultAccount,$requiredAccount))); + ->willReturn(array($defaultAccount,$requiredAccount)); $result = $this->service->getAccount($specificReference); $this->assertSame($requiredAccount, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getAccounts() { $response = "xml response"; @@ -174,12 +166,12 @@ function getAccounts() ), $this->equalTo($this->authentication) ) - ->will($this->returnValue($response)); + ->willReturn($response); $this->parser ->expects($this->once()) ->method("parse") ->with($this->equalTo($response)) - ->will($this->returnValue(array($accountOne, $accountTwo))); + ->willReturn(array($accountOne, $accountTwo)); $result = $this->service->getAccounts(); diff --git a/test/Esendex/Services/CheckAccessServiceTest.php b/test/Esendex/Services/CheckAccessServiceTest.php index 382f201..88b3947 100644 --- a/test/Esendex/Services/CheckAccessServiceTest.php +++ b/test/Esendex/Services/CheckAccessServiceTest.php @@ -34,7 +34,7 @@ */ namespace Esendex; -class CheckAccessServiceTest extends \PHPUnit_Framework_TestCase +class CheckAccessServiceTest extends \PHPUnit\Framework\TestCase { const ACCOUNTS_RESPONSE_XML = << @@ -61,7 +61,7 @@ class CheckAccessServiceTest extends \PHPUnit_Framework_TestCase private $httpUtil; private $service; - function setUp() + function setUp(): void { $this->reference = "EX123456"; $this->username = "jhdkfjh"; @@ -72,17 +72,15 @@ function setUp() $this->password ); - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->httpUtil->expects($this->any()) ->method("isSecure") - ->will($this->returnValue(true)); + ->willReturn(true); $this->service = new CheckAccessService($this->httpUtil); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function checkAccess() { $this->httpUtil @@ -94,16 +92,14 @@ function checkAccess() ), $this->isInstanceOf("\\Esendex\\Authentication\\LoginAuthentication") ) - ->will($this->returnValue(self::ACCOUNTS_RESPONSE_XML)); + ->willReturn(self::ACCOUNTS_RESPONSE_XML); $result = $this->service->checkAccess($this->reference, $this->username, $this->password); $this->assertTrue($result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function checkAccessInputCaseMismatchWithResponseCase() { $this->httpUtil @@ -115,31 +111,27 @@ function checkAccessInputCaseMismatchWithResponseCase() ), $this->isInstanceOf("\\Esendex\\Authentication\\LoginAuthentication") ) - ->will($this->returnValue(self::ACCOUNTS_RESPONSE_XML)); + ->willReturn(self::ACCOUNTS_RESPONSE_XML); $result = $this->service->checkAccess(strtolower($this->reference), $this->username, $this->password); $this->assertTrue($result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function checkAccessAccountReferenceNotAccessible() { $this->httpUtil ->expects($this->once()) ->method("get") - ->will($this->returnValue(self::ACCOUNTS_RESPONSE_XML)); + ->willReturn(self::ACCOUNTS_RESPONSE_XML); $result = $this->service->checkAccess("Wrong", $this->username, $this->password); $this->assertFalse($result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function checkSessionAccess() { $session = new Authentication\SessionAuthentication($this->reference, uniqid()); @@ -150,16 +142,14 @@ function checkSessionAccess() $this->anything(), $this->equalTo($session) ) - ->will($this->returnValue(self::ACCOUNTS_RESPONSE_XML)); + ->willReturn(self::ACCOUNTS_RESPONSE_XML); $result = $this->service->checkSessionAccess($session); $this->assertTrue($result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function checkAuthenticationAccess() { $this->httpUtil @@ -169,16 +159,14 @@ function checkAuthenticationAccess() $this->anything(), $this->equalTo($this->authentication) ) - ->will($this->returnValue(self::ACCOUNTS_RESPONSE_XML)); + ->willReturn(self::ACCOUNTS_RESPONSE_XML); $result = $this->service->checkAuthenticationAccess($this->authentication); $this->assertTrue($result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function checkAuthenticationAccessUnexpectedResponse() { $this->httpUtil diff --git a/test/Esendex/Services/DispatchServiceTest.php b/test/Esendex/Services/DispatchServiceTest.php index ab4be85..03d3697 100644 --- a/test/Esendex/Services/DispatchServiceTest.php +++ b/test/Esendex/Services/DispatchServiceTest.php @@ -34,7 +34,7 @@ */ namespace Esendex; -class DispatchServiceTest extends \PHPUnit_Framework_TestCase +class DispatchServiceTest extends \PHPUnit\Framework\TestCase { private $reference; private $username; @@ -45,7 +45,7 @@ class DispatchServiceTest extends \PHPUnit_Framework_TestCase public $parser; - function setUp() + function setUp(): void { $this->reference = "EX123456"; $this->username = "jhdkfjh"; @@ -56,10 +56,10 @@ function setUp() $this->password ); - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->httpUtil->expects($this->any()) ->method("isSecure") - ->will($this->returnValue(true)); + ->willReturn(true); $this->parser = $this->getMockBuilder("\\Esendex\\Parser\\DispatchXmlParser") ->disableOriginalConstructor() @@ -68,9 +68,7 @@ function setUp() $this->service = new DispatchService($this->authentication, $this->httpUtil, $this->parser); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function sendMultipleSuccess() { $messages = array( @@ -88,7 +86,7 @@ function sendMultipleSuccess() ->expects($this->once()) ->method("encodeMultiple") ->with($this->equalTo($messages)) - ->will($this->returnValue($request)); + ->willReturn($request); $this->httpUtil ->expects($this->once()) ->method("post") @@ -99,21 +97,19 @@ function sendMultipleSuccess() $this->equalTo($this->authentication), $this->equalTo($request) ) - ->will($this->returnValue($response)); + ->willReturn($response); $this->parser ->expects($this->once()) ->method("parse") ->with($this->equalTo($response)) - ->will($this->returnValue(array($resultItem))); + ->willReturn(array($resultItem)); $result = $this->service->sendMultiple($messages); $this->assertSame(array($resultItem), $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function sendSuccess() { $message = new Model\DispatchMessage("DispatcherTest", "447712345678", "Message Body", Model\Message::SmsType); @@ -128,7 +124,7 @@ function sendSuccess() ->expects($this->once()) ->method("encode") ->with($this->equalTo($message)) - ->will($this->returnValue($request)); + ->willReturn($request); $this->httpUtil ->expects($this->once()) ->method("post") @@ -139,34 +135,29 @@ function sendSuccess() $this->equalTo($this->authentication), $this->equalTo($request) ) - ->will($this->returnValue($response)); + ->willReturn($response); $this->parser ->expects($this->once()) ->method("parse") ->with($this->equalTo($response)) - ->will($this->returnValue(array($resultItem))); + ->willReturn(array($resultItem)); $result = $this->service->send($message); $this->assertSame($resultItem, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function sendFailure() { $message = new Model\DispatchMessage("DispatcherTest", "447712345678", "Message Body", Model\Message::SmsType); $this->parser ->expects($this->any()) ->method("parse") - ->will($this->returnValue(array())); + ->willReturn(array()); - $this->setExpectedException( - "\\Esendex\\Exceptions\\EsendexException", - "Error parsing the dispatch result", - null - ); + $this->expectException(\Esendex\Exceptions\EsendexException::class); + $this->expectExceptionMessage("Error parsing the dispatch result"); $this->service->send($message); } @@ -189,9 +180,7 @@ function sendFailure() XML; - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getCredits() { $this->httpUtil @@ -203,7 +192,7 @@ function getCredits() ), $this->isInstanceOf("\\Esendex\\Authentication\\LoginAuthentication") ) - ->will($this->returnValue(self::ACCOUNTS_RESPONSE_XML)); + ->willReturn(self::ACCOUNTS_RESPONSE_XML); $result = $this->service->getCredits(); @@ -227,9 +216,7 @@ function getCredits() XML; - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getCreditsNoCredits() { $this->httpUtil @@ -241,7 +228,7 @@ function getCreditsNoCredits() ), $this->isInstanceOf("\\Esendex\\Authentication\\LoginAuthentication") ) - ->will($this->returnValue(self::ACCOUNTS_NOCREDITS_RESPONSE_XML)); + ->willReturn(self::ACCOUNTS_NOCREDITS_RESPONSE_XML); $result = $this->service->getCredits(); diff --git a/test/Esendex/Services/InboxServiceTest.php b/test/Esendex/Services/InboxServiceTest.php index 6d80b30..629e977 100644 --- a/test/Esendex/Services/InboxServiceTest.php +++ b/test/Esendex/Services/InboxServiceTest.php @@ -34,7 +34,7 @@ */ namespace Esendex; -class InboxServiceTest extends \PHPUnit_Framework_TestCase +class InboxServiceTest extends \PHPUnit\Framework\TestCase { private $reference; private $username; @@ -44,17 +44,17 @@ class InboxServiceTest extends \PHPUnit_Framework_TestCase private $parser; private $service; - function setUp() + function setUp(): void { $this->reference = "asjkdhlajksdhla"; $this->username = "jhdkfjh"; $this->password = "dklfjlsdjkf"; $this->authentication = new Authentication\LoginAuthentication($this->reference, $this->username, $this->password); - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->httpUtil->expects($this->any()) ->method("isSecure") - ->will($this->returnValue(true)); + ->willReturn(true); $this->parser = $this->getMockBuilder("\\Esendex\\Parser\\InboxXmlParser") ->disableOriginalConstructor() @@ -63,9 +63,7 @@ function setUp() $this->service = new InboxService($this->authentication, $this->httpUtil, $this->parser); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function latestReturnsInboxPage() { $response = "xml response"; @@ -80,21 +78,19 @@ function latestReturnsInboxPage() ), $this->equalTo($this->authentication) ) - ->will($this->returnValue($response)); + ->willReturn($response); $this->parser ->expects($this->once()) ->method("parse") ->with($this->equalTo($response)) - ->will($this->returnValue($inboxPage)); + ->willReturn($inboxPage); $result = $this->service->latest(); $this->assertSame($inboxPage, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function latestWithStartIndexForPageStart() { $startIndex = 2; @@ -112,9 +108,7 @@ function latestWithStartIndexForPageStart() $this->service->latest($startIndex); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function latestWithStartIndexAndCountToPage() { $startIndex = 11; @@ -134,9 +128,7 @@ function latestWithStartIndexAndCountToPage() $this->service->latest($startIndex, $count); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function latestWithCountAloneLimitsReturnedResults() { $count = 2; @@ -154,9 +146,7 @@ function latestWithCountAloneLimitsReturnedResults() $this->service->latest(null, $count); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function deleteInboxMessageSuccess() { $messageId = uniqid(); @@ -170,14 +160,12 @@ function deleteInboxMessageSuccess() ), $this->equalTo($this->authentication) ) - ->will($this->returnValue(200)); + ->willReturn(200); $this->assertTrue($this->service->deleteInboxMessage($messageId)); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function deleteInboxMessageFailure() { $messageId = uniqid(); @@ -185,49 +173,55 @@ function deleteInboxMessageFailure() $this->httpUtil ->expects($this->once()) ->method("delete") - ->will($this->returnValue(404)); + ->willReturn(404); $this->assertFalse($this->service->deleteInboxMessage($messageId)); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function updateInboxMessageReadStatusSuccess() { $messageId = uniqid(); - $readParameters = array( - $this->equalTo( - "https://api.esendex.com/v1.0/inbox/messages/{$messageId}?action=read" - ), - $this->equalTo($this->authentication) - ); - $unreadParameters = array( - $this->equalTo( - "https://api.esendex.com/v1.0/inbox/messages/{$messageId}?action=unread" - ), - $this->equalTo($this->authentication) - ); + $expectedParameters = [ + [ + "https://api.esendex.com/v1.0/inbox/messages/{$messageId}?action=read", + $this->authentication, + ], + [ + "https://api.esendex.com/v1.0/inbox/messages/{$messageId}?action=read", + $this->authentication, + ], + [ + "https://api.esendex.com/v1.0/inbox/messages/{$messageId}?action=unread", + $this->authentication, + ], + ]; + + $callIndex = 0; $this->httpUtil ->expects($this->exactly(3)) ->method("put") - ->withConsecutive( - $readParameters, - $readParameters, - $unreadParameters + ->with( + $this->callback(function (string $url) use (&$callIndex, $expectedParameters): bool { + return $url === $expectedParameters[$callIndex][0]; + }), + $this->callback(function ($authentication) use (&$callIndex, $expectedParameters): bool { + $matches = $authentication === $expectedParameters[$callIndex][1]; + $callIndex++; + + return $matches; + }) ) - ->will($this->returnValue(200)); + ->willReturn(200); $this->assertTrue($this->service->updateReadStatus($messageId)); $this->assertTrue($this->service->updateReadStatus($messageId, true)); $this->assertTrue($this->service->updateReadStatus($messageId, false)); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function updateInboxMessageReadStatusFailure() { $messageId = uniqid(); @@ -235,7 +229,7 @@ function updateInboxMessageReadStatusFailure() $this->httpUtil ->expects($this->exactly(3)) ->method("put") - ->will($this->returnValue(404)); + ->willReturn(404); $this->assertFalse($this->service->updateReadStatus($messageId)); $this->assertFalse($this->service->updateReadStatus($messageId, true)); diff --git a/test/Esendex/Services/MessageBodyServiceTest.php b/test/Esendex/Services/MessageBodyServiceTest.php index b2f51e7..cc9995a 100644 --- a/test/Esendex/Services/MessageBodyServiceTest.php +++ b/test/Esendex/Services/MessageBodyServiceTest.php @@ -35,7 +35,7 @@ namespace Esendex; use Esendex\Model\MessageBody; -class MessageBodyServiceTest extends \PHPUnit_Framework_TestCase +class MessageBodyServiceTest extends \PHPUnit\Framework\TestCase { const MESSAGEBODY_RESPONSE_XML = << @@ -60,7 +60,7 @@ class MessageBodyServiceTest extends \PHPUnit_Framework_TestCase private $httpUtil; private $service; - function setUp() + function setUp(): void { $this->messageId = uniqid(); $this->accountReference = "asjkdhlajksdhla"; @@ -68,17 +68,15 @@ function setUp() $this->password = "dklfjlsdjkf"; $this->authentication = new Authentication\LoginAuthentication($this->accountReference, $this->username, $this->password); - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->httpUtil->expects($this->any()) ->method("isSecure") - ->will($this->returnValue(true)); + ->willReturn(true); $this->service = new MessageBodyService($this->authentication, $this->httpUtil); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getMessageBodyById() { $this->httpUtil @@ -90,7 +88,7 @@ function getMessageBodyById() ), $this->equalTo($this->authentication) ) - ->will($this->returnValue(self::MESSAGEBODY_RESPONSE_XML)); + ->willReturn(self::MESSAGEBODY_RESPONSE_XML); $messageBody = $this->service->getMessageBodyById($this->messageId); @@ -100,29 +98,25 @@ function getMessageBodyById() $this->assertEquals(MessageBody::CharsetGSM, $messageBody->characterSet()); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getMessageBodyByIdWhenNullId() { - $this->setExpectedException("\\Esendex\\Exceptions\\ArgumentException", "messageId is null"); + $this->expectException(\Esendex\Exceptions\ArgumentException::class); + $this->expectExceptionMessage("messageId is null"); $this->service->getMessageBodyById(null); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getMessageBodyByIdWhenNotString() { - $this->setExpectedException("\\Esendex\\Exceptions\\ArgumentException", "messageId is not a string"); + $this->expectException(\Esendex\Exceptions\ArgumentException::class); + $this->expectExceptionMessage("messageId is not a string"); $this->service->getMessageBodyById(99); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getMessageBodyWithMessageBodyUri() { $bodyUri = "https://api.esendex.com/v1.0/messageheaders/{$this->messageId}/body"; @@ -130,16 +124,14 @@ function getMessageBodyWithMessageBodyUri() ->expects($this->once()) ->method("get") ->with($this->equalTo($bodyUri)) - ->will($this->returnValue(self::MESSAGEBODY_RESPONSE_XML)); + ->willReturn(self::MESSAGEBODY_RESPONSE_XML); $messageBody = $this->service->getMessageBody($bodyUri); $this->assertEquals("Merci", $messageBody); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getSmartMessageBodyWithMessageBodyUri() { $bodyUri = "https://api.esendex.com/v1.0/messageheaders/{$this->messageId}/body"; @@ -147,7 +139,7 @@ function getSmartMessageBodyWithMessageBodyUri() ->expects($this->once()) ->method("get") ->with($this->equalTo($bodyUri)) - ->will($this->returnValue(self::SMART_MESSAGEBODY_XML)); + ->willReturn(self::SMART_MESSAGEBODY_XML); $messageBody = $this->service->getMessageBody($bodyUri); @@ -155,9 +147,7 @@ function getSmartMessageBodyWithMessageBodyUri() $this->assertEquals("None", $messageBody->characterSet()); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getMessageBodyWithMessageHeader() { $bodyUri = "https://api.esendex.com/v1.0/messageheaders/{$this->messageId}/body"; @@ -165,7 +155,7 @@ function getMessageBodyWithMessageHeader() ->expects($this->once()) ->method("get") ->with($this->equalTo($bodyUri)) - ->will($this->returnValue(self::MESSAGEBODY_RESPONSE_XML)); + ->willReturn(self::MESSAGEBODY_RESPONSE_XML); $messageHeader = new Model\SentMessage(); $messageHeader->bodyUri($bodyUri); @@ -174,15 +164,12 @@ function getMessageBodyWithMessageHeader() $this->assertEquals("Merci", $messageBody); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getMessageBodyWhenInvalidInput() { - $this->setExpectedException( - "\\Esendex\\Exceptions\\ArgumentException", - "Should be either MessageBody Uri or ResultMessage" - ); + + $this->expectException(\Esendex\Exceptions\ArgumentException::class); + $this->expectExceptionMessage("Should be either MessageBody Uri or ResultMessage"); $this->service->getMessageBody(99); } diff --git a/test/Esendex/Services/MessageHeaderServiceTest.php b/test/Esendex/Services/MessageHeaderServiceTest.php index d2e1456..18dad23 100644 --- a/test/Esendex/Services/MessageHeaderServiceTest.php +++ b/test/Esendex/Services/MessageHeaderServiceTest.php @@ -34,7 +34,7 @@ */ namespace Esendex; -class MessageHeaderServiceTest extends \PHPUnit_Framework_TestCase +class MessageHeaderServiceTest extends \PHPUnit\Framework\TestCase { private $messageId; private $reference; @@ -45,7 +45,7 @@ class MessageHeaderServiceTest extends \PHPUnit_Framework_TestCase private $parser; private $service; - function setUp() + function setUp(): void { $this->messageId = uniqid(); $this->reference = "asjkdhlajksdhla"; @@ -57,10 +57,10 @@ function setUp() $this->password ); - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->httpUtil->expects($this->any()) ->method("isSecure") - ->will($this->returnValue(true)); + ->willReturn(true); $this->parser = $this->getMockBuilder("\\Esendex\\Parser\\MessageHeaderXmlParser") ->disableOriginalConstructor() @@ -69,9 +69,7 @@ function setUp() $this->service = new MessageHeaderService($this->authentication, $this->httpUtil, $this->parser); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function messageWithValidMessageHeaderId() { $response = "xml response"; @@ -86,12 +84,12 @@ function messageWithValidMessageHeaderId() ), $this->equalTo($this->authentication) ) - ->will($this->returnValue($response)); + ->willReturn($response); $this->parser ->expects($this->once()) ->method("parse") ->with($this->equalTo($response)) - ->will($this->returnValue($messageHeader)); + ->willReturn($messageHeader); $result = $this->service->message($this->messageId); diff --git a/test/Esendex/Services/MessageInformationServiceTest.php b/test/Esendex/Services/MessageInformationServiceTest.php index e7735d7..b90bcae 100644 --- a/test/Esendex/Services/MessageInformationServiceTest.php +++ b/test/Esendex/Services/MessageInformationServiceTest.php @@ -37,7 +37,7 @@ use Esendex\Model\MessageBody; use Esendex\Model\MessageInformation; -class MessageInformationServiceTest extends \PHPUnit_Framework_TestCase +class MessageInformationServiceTest extends \PHPUnit\Framework\TestCase { private $reference; private $username; @@ -47,7 +47,7 @@ class MessageInformationServiceTest extends \PHPUnit_Framework_TestCase private $parser; private $service; - function setUp() + function setUp(): void { $this->reference = "EX123456"; $this->username = "jhdkfjh"; @@ -58,10 +58,10 @@ function setUp() $this->password ); - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->httpUtil->expects($this->any()) ->method("isSecure") - ->will($this->returnValue(true)); + ->willReturn(true); $this->parser = $this->getMockBuilder("\\Esendex\\Parser\\MessageInformationXmlParser") ->disableOriginalConstructor() @@ -74,9 +74,7 @@ function setUp() ); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getMessageInformationWithDefaults() { $message = "the message"; @@ -91,7 +89,7 @@ function getMessageInformationWithDefaults() $this->equalTo($message), $this->equalTo(MessageBody::CharsetGSM) ) - ->will($this->returnValue($request)); + ->willReturn($request); $this->httpUtil ->expects($this->once()) ->method("post") @@ -102,21 +100,19 @@ function getMessageInformationWithDefaults() $this->equalTo($this->authentication), $this->equalTo($request) ) - ->will($this->returnValue($response)); + ->willReturn($response); $this->parser ->expects($this->once()) ->method("parse") ->with($this->equalTo($response)) - ->will($this->returnValue(array($messageInformation))); + ->willReturn(array($messageInformation)); $result = $this->service->getInformation($message); $this->assertSame($messageInformation, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getMessageInformationWithSpecificCharset() { $message = "the message"; @@ -131,7 +127,7 @@ function getMessageInformationWithSpecificCharset() $this->equalTo($message), $this->equalTo(MessageBody::CharsetAuto) ) - ->will($this->returnValue($request)); + ->willReturn($request); $this->httpUtil ->expects($this->once()) ->method("post") @@ -142,19 +138,19 @@ function getMessageInformationWithSpecificCharset() $this->equalTo($this->authentication), $this->equalTo($request) ) - ->will($this->returnValue($response)); + ->willReturn($response); $this->parser ->expects($this->once()) ->method("parse") ->with($this->equalTo($response)) - ->will($this->returnValue(array($messageInformation))); + ->willReturn(array($messageInformation)); $result = $this->service->getInformation($message, MessageBody::CharsetAuto); $this->assertSame($messageInformation, $result); } - function unexpectedResponses() + public static function unexpectedResponses(): array { return array( array(array()), @@ -165,22 +161,17 @@ function unexpectedResponses() ); } - /** - * @test - * @dataProvider unexpectedResponses - */ + #[\PHPUnit\Framework\Attributes\Test] + #[\PHPUnit\Framework\Attributes\DataProvider('unexpectedResponses')] function getMessageInformationWithUnexpectedResponse($response) { $this->parser ->expects($this->once()) ->method("parse") - ->will($this->returnValue($response)); + ->willReturn($response); - $this->setExpectedException( - "\\Esendex\\Exceptions\\EsendexException", - "Error parsing the result", - null - ); + $this->expectException(\Esendex\Exceptions\EsendexException::class); + $this->expectExceptionMessage("Error parsing the result"); $result = $this->service->getInformation("a message"); } diff --git a/test/Esendex/Services/OptOutsServiceTest.php b/test/Esendex/Services/OptOutsServiceTest.php index 18ad033..b0e72e9 100644 --- a/test/Esendex/Services/OptOutsServiceTest.php +++ b/test/Esendex/Services/OptOutsServiceTest.php @@ -36,7 +36,7 @@ use Esendex\Model\OptOut; -class OptOutsServiceTest extends \PHPUnit_Framework_TestCase +class OptOutsServiceTest extends \PHPUnit\Framework\TestCase { const OPTOUT_XML_RESPONSE = " EX0012345 @@ -55,7 +55,7 @@ class OptOutsServiceTest extends \PHPUnit_Framework_TestCase public $parser; - function setUp() + function setUp(): void { $this->optOutId = "47a1144b-8a68-4608-9360-d4a52aaf90d2"; $this->username = "jhdkfjh"; @@ -67,10 +67,10 @@ function setUp() $this->password ); - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->httpUtil->expects($this->any()) ->method("isSecure") - ->will($this->returnValue(true)); + ->willReturn(true); $this->parser = $this->getMockBuilder("\\Esendex\\Parser\\OptOutXmlParser") ->disableOriginalConstructor() @@ -79,9 +79,7 @@ function setUp() $this->service = new OptOutsService($this->authentication, $this->httpUtil, $this->parser); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getById() { $expectedOptOut = new OptOut(); @@ -94,20 +92,18 @@ function getById() ), $this->equalTo($this->authentication) ) - ->will($this->returnValue(true)); + ->willReturn(true); $this->parser->expects($this->any()) ->method("parse") - ->will($this->returnValue($expectedOptOut)); + ->willReturn($expectedOptOut); $result = $this->service->getById($this->optOutId); $this->assertSame($expectedOptOut, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function add() { $expectedRequest = "EX123456447712345678"; @@ -115,7 +111,7 @@ function add() $mobileNumber = "447712345678"; $this->parser->expects($this->any()) ->method("encodePostRequest") - ->will($this->returnValue($expectedRequest)); + ->willReturn($expectedRequest); $this->httpUtil ->expects($this->once()) @@ -127,20 +123,18 @@ function add() $this->equalTo($this->authentication), $this->equalTo($expectedRequest) ) - ->will($this->returnValue(true)); + ->willReturn(true); $this->parser->expects($this->any()) ->method("parsePostResponse") - ->will($this->returnValue($expectedOptOut)); + ->willReturn($expectedOptOut); $result = $this->service->add($this->reference, $mobileNumber); $this->assertSame($expectedOptOut, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function get() { $expectedOptOuts = array(); @@ -154,11 +148,11 @@ function get() ), $this->equalTo($this->authentication) ) - ->will($this->returnValue(true)); + ->willReturn(true); $this->parser->expects($this->any()) ->method("parseMultipleResult") - ->will($this->returnValue($expectedOptOuts)); + ->willReturn($expectedOptOuts); $result = $this->service->get(1, 20); diff --git a/test/Esendex/Services/SentMessagesServiceTest.php b/test/Esendex/Services/SentMessagesServiceTest.php index 76b4179..952cd14 100644 --- a/test/Esendex/Services/SentMessagesServiceTest.php +++ b/test/Esendex/Services/SentMessagesServiceTest.php @@ -34,7 +34,7 @@ */ namespace Esendex; -class SentMessagesServiceTest extends \PHPUnit_Framework_TestCase +class SentMessagesServiceTest extends \PHPUnit\Framework\TestCase { private $reference; private $username; @@ -44,17 +44,17 @@ class SentMessagesServiceTest extends \PHPUnit_Framework_TestCase private $parser; private $service; - function setUp() + function setUp(): void { $this->reference = "asjkdhlajksdhla"; $this->username = "jhdkfjh"; $this->password = "dklfjlsdjkf"; $this->authentication = new Authentication\LoginAuthentication($this->reference, $this->username, $this->password); - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->httpUtil->expects($this->any()) ->method("isSecure") - ->will($this->returnValue(true)); + ->willReturn(true); $this->parser = $this->getMockBuilder("\\Esendex\\Parser\\SentMessagesXmlParser") ->disableOriginalConstructor() @@ -63,9 +63,7 @@ function setUp() $this->service = new SentMessagesService($this->authentication, $this->httpUtil, $this->parser); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function latestReturnsSentMessagesPage() { $response = "xml response"; @@ -80,21 +78,19 @@ function latestReturnsSentMessagesPage() ), $this->equalTo($this->authentication) ) - ->will($this->returnValue($response)); + ->willReturn($response); $this->parser ->expects($this->once()) ->method("parse") ->with($this->equalTo($response)) - ->will($this->returnValue($sentMessagesPage)); + ->willReturn($sentMessagesPage); $result = $this->service->latest(); $this->assertSame($sentMessagesPage, $result); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function latestWithStartIndexForPageStart() { $startIndex = 2; @@ -112,9 +108,7 @@ function latestWithStartIndexForPageStart() $this->service->latest($startIndex); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function latestWithStartIndexAndCountToPage() { $startIndex = 11; @@ -133,9 +127,7 @@ function latestWithStartIndexAndCountToPage() $this->service->latest($startIndex, $count); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function latestWithCountAloneLimitsReturnedResults() { $count = 2; @@ -153,9 +145,7 @@ function latestWithCountAloneLimitsReturnedResults() $this->service->latest(null, $count); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function loadMessagesWithStartAndFinishReturnsSentMessagesPage() { $start = new \DateTime(); @@ -178,13 +168,13 @@ function loadMessagesWithStartAndFinishReturnsSentMessagesPage() ), $this->equalTo($this->authentication) ) - ->will($this->returnValue($response)); + ->willReturn($response); $this->parser ->expects($this->once()) ->method("parse") ->with($this->equalTo($response)) - ->will($this->returnValue($sentMessagesPage)); + ->willReturn($sentMessagesPage); $options = array('start' => $start, 'finish' => $finish); $result = $this->service->loadMessages($options); diff --git a/test/Esendex/Services/SessionServiceTest.php b/test/Esendex/Services/SessionServiceTest.php index c0e60b7..4058c7a 100644 --- a/test/Esendex/Services/SessionServiceTest.php +++ b/test/Esendex/Services/SessionServiceTest.php @@ -34,7 +34,7 @@ */ namespace Esendex; -class SessionServiceTest extends \PHPUnit_Framework_TestCase +class SessionServiceTest extends \PHPUnit\Framework\TestCase { private $httpUtil; private $service; @@ -46,18 +46,16 @@ class SessionServiceTest extends \PHPUnit_Framework_TestCase XML; - function setUp() + function setUp(): void { - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->httpUtil->expects($this->any()) ->method("isSecure") - ->will($this->returnValue(true)); + ->willReturn(true); $this->service = new SessionService($this->httpUtil); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function startSessionWithUsernameAndPassword() { $this->httpUtil @@ -68,7 +66,7 @@ function startSessionWithUsernameAndPassword() $this->isInstanceOf("\\Esendex\\Authentication\\LoginAuthentication"), $this->isEmpty() ) - ->will($this->returnValue(self::SESSION_RESPONSE_XML)); + ->willReturn(self::SESSION_RESPONSE_XML); $result = $this->service->startSession("reference", "user", "password"); diff --git a/test/Esendex/Services/SurveyReportServiceTests/GetStandardReportForDateRangeTest.php b/test/Esendex/Services/SurveyReportServiceTests/GetStandardReportForDateRangeTest.php index cd3c9d5..900bcba 100644 --- a/test/Esendex/Services/SurveyReportServiceTests/GetStandardReportForDateRangeTest.php +++ b/test/Esendex/Services/SurveyReportServiceTests/GetStandardReportForDateRangeTest.php @@ -36,7 +36,7 @@ use Esendex\Model\Surveys\DateRangeType; -class GetStandardReportForDateRangeTest extends \PHPUnit_Framework_TestCase +class GetStandardReportForDateRangeTest extends \PHPUnit\Framework\TestCase { private $expectedRecipient = "447538414622"; private $expectedStatus = "Delivered"; @@ -56,7 +56,7 @@ class GetStandardReportForDateRangeTest extends \PHPUnit_Framework_TestCase private $httpUtil; private $surveyId; - function setUp() + function setUp(): void { $response = " @@ -82,7 +82,7 @@ function setUp() $this->authentication = new Authentication\LoginAuthentication("SV0000001", "someone@esendex.com", "hunter2"); $this->surveyId = "e6ea4f5e-4d41-4b1e-8912-6c3131978a77"; - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->httpUtil ->expects($this->once()) ->method("get") @@ -90,14 +90,12 @@ function setUp() $this->equalTo("https://surveys.api.esendex.com/v1.0/surveys/{$this->surveyId}/report/standard?answerReceivedAfter=2016-12-01T00%3A00%3A00&answerReceivedBefore=2016-12-02T00%3A00%3A00"), $this->equalTo($this->authentication) ) - ->will($this->returnValue($response)); + ->willReturn($response); $this->service = new SurveyReportService($this->authentication, $this->httpUtil); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getStandardReport() { $result = $this->service->getStandardReport($this->surveyId, $this->startDate, $this->endDate, DateRangeType::AnswerReceived); diff --git a/test/Esendex/Services/SurveyReportServiceTests/GetStandardReportTest.php b/test/Esendex/Services/SurveyReportServiceTests/GetStandardReportTest.php index 64df6f8..5a3e248 100644 --- a/test/Esendex/Services/SurveyReportServiceTests/GetStandardReportTest.php +++ b/test/Esendex/Services/SurveyReportServiceTests/GetStandardReportTest.php @@ -34,7 +34,7 @@ */ namespace Esendex; -class GetStandardReportTest extends \PHPUnit_Framework_TestCase +class GetStandardReportTest extends \PHPUnit\Framework\TestCase { private $expectedRecipient = "447538414622"; private $expectedStatus = "Delivered"; @@ -51,7 +51,7 @@ class GetStandardReportTest extends \PHPUnit_Framework_TestCase private $httpUtil; private $surveyId; - function setUp() + function setUp(): void { $response = " @@ -74,7 +74,7 @@ function setUp() $this->authentication = new Authentication\LoginAuthentication("SV0000001", "someone@esendex.com", "hunter2"); $this->surveyId = "e6ea4f5e-4d41-4b1e-8912-6c3131978a77"; - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->httpUtil ->expects($this->once()) ->method("get") @@ -82,14 +82,12 @@ function setUp() $this->equalTo("https://surveys.api.esendex.com/v1.0/surveys/{$this->surveyId}/report/standard"), $this->equalTo($this->authentication) ) - ->will($this->returnValue($response)); + ->willReturn($response); $this->service = new SurveyReportService($this->authentication, $this->httpUtil); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getStandardReport() { $result = $this->service->getStandardReport($this->surveyId); diff --git a/test/Esendex/Services/SurveyReportServiceTests/GetStandardReportWithInvalidDateRangeTypeTest.php b/test/Esendex/Services/SurveyReportServiceTests/GetStandardReportWithInvalidDateRangeTypeTest.php index 7193003..0c2f3c4 100644 --- a/test/Esendex/Services/SurveyReportServiceTests/GetStandardReportWithInvalidDateRangeTypeTest.php +++ b/test/Esendex/Services/SurveyReportServiceTests/GetStandardReportWithInvalidDateRangeTypeTest.php @@ -34,7 +34,7 @@ */ namespace Esendex; -class GetStandardReportWithInvalidDateRangeTypeTest extends \PHPUnit_Framework_TestCase +class GetStandardReportWithInvalidDateRangeTypeTest extends \PHPUnit\Framework\TestCase { private $startDate; private $endDate; @@ -44,7 +44,7 @@ class GetStandardReportWithInvalidDateRangeTypeTest extends \PHPUnit_Framework_T private $httpUtil; private $surveyId; - function setUp() + function setUp(): void { $this->startDate = new \DateTime("2016-12-01T00:00:00"); $this->endDate = new \DateTime("2016-12-02T00:00:00"); @@ -52,13 +52,11 @@ function setUp() $this->authentication = new Authentication\LoginAuthentication("SV0000001", "someone@esendex.com", "hunter2"); $this->surveyId = "e6ea4f5e-4d41-4b1e-8912-6c3131978a77"; - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->service = new SurveyReportService($this->authentication, $this->httpUtil); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function getStandardReport() { try { diff --git a/test/Esendex/Services/SurveySendServiceTests/SendTests.php b/test/Esendex/Services/SurveySendServiceTests/SendTests.php index a0efa89..412845b 100644 --- a/test/Esendex/Services/SurveySendServiceTests/SendTests.php +++ b/test/Esendex/Services/SurveySendServiceTests/SendTests.php @@ -34,7 +34,7 @@ */ namespace Esendex; -class SendTests extends \PHPUnit_Framework_TestCase +class SendTests extends \PHPUnit\Framework\TestCase { private $reference; private $username; @@ -43,7 +43,7 @@ class SendTests extends \PHPUnit_Framework_TestCase private $httpUtil; private $service; - function setUp() + function setUp(): void { $this->reference = "EX123456"; $this->username = "jhdkfjh"; @@ -54,17 +54,15 @@ function setUp() $this->password ); - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->httpUtil->expects($this->any()) ->method("isSecure") - ->will($this->returnValue("")); + ->willReturn(""); $this->service = new SurveySendService($this->authentication, $this->httpUtil); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function sendSurvey() { $surveyId = "586918CE-FC15-4204-9701-7DE5F975F9D6"; @@ -79,7 +77,7 @@ function sendSurvey() $this->equalTo($this->authentication), $this->equalTo("{\"recipients\":[{\"phonenumber\":\"{$recipient}\",\"templatefields\":null,\"metadata\":null}]}") ) - ->will($this->returnValue(true)); + ->willReturn(true); $this->service->send($surveyId, $recipient); } diff --git a/test/Esendex/Services/SurveySendServiceTests/SendWithMetadataTests.php b/test/Esendex/Services/SurveySendServiceTests/SendWithMetadataTests.php index 7f55a98..a8989fc 100644 --- a/test/Esendex/Services/SurveySendServiceTests/SendWithMetadataTests.php +++ b/test/Esendex/Services/SurveySendServiceTests/SendWithMetadataTests.php @@ -34,7 +34,7 @@ */ namespace Esendex; -class SendWithMetadataTests extends \PHPUnit_Framework_TestCase +class SendWithMetadataTests extends \PHPUnit\Framework\TestCase { private $reference; private $username; @@ -43,7 +43,7 @@ class SendWithMetadataTests extends \PHPUnit_Framework_TestCase private $httpUtil; private $service; - function setUp() + function setUp(): void { $this->reference = "EX123456"; $this->username = "jhdkfjh"; @@ -54,17 +54,15 @@ function setUp() $this->password ); - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->httpUtil->expects($this->any()) ->method("isSecure") - ->will($this->returnValue("")); + ->willReturn(""); $this->service = new SurveySendService($this->authentication, $this->httpUtil); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function sendSurveyWithMetaData() { $surveyId = "586918CE-FC15-4204-9701-7DE5F975F9D6"; @@ -82,7 +80,7 @@ function sendSurveyWithMetaData() $this->equalTo($this->authentication), $this->equalTo("{\"recipients\":[{\"phonenumber\":\"{$recipient}\",\"templatefields\":null,\"metadata\":{\"{$metaDataKey}\":\"{$metaDataValue}\"}}]}") ) - ->will($this->returnValue(true)); + ->willReturn(true); $this->service->send($surveyId, $recipient, null, array($metaDataKey=>$metaDataValue)); } diff --git a/test/Esendex/Services/SurveySendServiceTests/SendWithTemplateDataTests.php b/test/Esendex/Services/SurveySendServiceTests/SendWithTemplateDataTests.php index f6e1c08..f880d93 100644 --- a/test/Esendex/Services/SurveySendServiceTests/SendWithTemplateDataTests.php +++ b/test/Esendex/Services/SurveySendServiceTests/SendWithTemplateDataTests.php @@ -34,7 +34,7 @@ */ namespace Esendex; -class SendWithTemplateDataTests extends \PHPUnit_Framework_TestCase +class SendWithTemplateDataTests extends \PHPUnit\Framework\TestCase { private $reference; private $username; @@ -43,7 +43,7 @@ class SendWithTemplateDataTests extends \PHPUnit_Framework_TestCase private $httpUtil; private $service; - function setUp() + function setUp(): void { $this->reference = "EX123456"; $this->username = "jhdkfjh"; @@ -54,17 +54,15 @@ function setUp() $this->password ); - $this->httpUtil = $this->getMock("\\Esendex\\Http\\IHttp"); + $this->httpUtil = $this->createMock(\Esendex\Http\IHttp::class); $this->httpUtil->expects($this->any()) ->method("isSecure") - ->will($this->returnValue("")); + ->willReturn(""); $this->service = new SurveySendService($this->authentication, $this->httpUtil); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] function sendSurveyWithTemplateData() { $surveyId = "586918CE-FC15-4204-9701-7DE5F975F9D6"; @@ -84,7 +82,7 @@ function sendSurveyWithTemplateData() $this->equalTo($this->authentication), $this->equalTo("{\"recipients\":[{\"phonenumber\":\"{$recipient}\",\"templatefields\":{\"{$fieldName}\":\"{$fieldValue}\",\"{$fieldName2}\":\"{$fieldValue2}\"},\"metadata\":null}]}") ) - ->will($this->returnValue(true)); + ->willReturn(true); $this->service->send($surveyId, $recipient, array($fieldName=>$fieldValue,$fieldName2=>$fieldValue2)); }