From 33e9ccb3b7e768eb2b697dd683b9606307f707c7 Mon Sep 17 00:00:00 2001 From: Wim De Meester Date: Tue, 6 Feb 2024 14:21:00 +0100 Subject: [PATCH 1/2] Update delta t for January 2024. --- changelog.md | 7 + composer.json | 2 +- composer.lock | 1961 ++++++++++++++++++++++++++-------------------- data/deltat.csv | 1 + data/deltat.xlsx | Bin 23748 -> 23775 bytes docs/deltat.png | Bin 57996 -> 58520 bytes 6 files changed, 1125 insertions(+), 846 deletions(-) diff --git a/changelog.md b/changelog.md index 61bbb23..58b5082 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,13 @@ All notable changes to `laravel-astronomy-library` will be documented in this file. +## Version 6.1.2 + +Changed: + +- Added delta t value for 2024 +- Update to use laravel 11 + ## Version 6.1.1 Changed: diff --git a/composer.json b/composer.json index 8a6bb41..70b21c2 100644 --- a/composer.json +++ b/composer.json @@ -13,7 +13,7 @@ "keywords": ["Laravel", "laravel-astronomylibrary"], "require": { "php": ">=8.0", - "laravel/framework": "^8.0|^9.0|^10.0", + "laravel/framework": "^8.0|^9.0|^10.0|^11.0", "maatwebsite/excel": "^3.1" }, "require-dev": { diff --git a/composer.lock b/composer.lock index c6fa490..6cee51a 100644 --- a/composer.lock +++ b/composer.lock @@ -4,30 +4,29 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f1265be4439657651bbc610ade08da6c", + "content-hash": "52c23ac9044968bde89a568d8ea15ab3", "packages": [ { "name": "brick/math", - "version": "0.10.2", + "version": "0.11.0", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f" + "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/459f2781e1a08d52ee56b0b1444086e038561e3f", - "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f", + "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478", + "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478", "shasum": "" }, "require": { - "ext-json": "*", - "php": "^7.4 || ^8.0" + "php": "^8.0" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", "phpunit/phpunit": "^9.0", - "vimeo/psalm": "4.25.0" + "vimeo/psalm": "5.0.0" }, "type": "library", "autoload": { @@ -52,7 +51,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.10.2" + "source": "https://github.com/brick/math/tree/0.11.0" }, "funding": [ { @@ -60,20 +59,89 @@ "type": "github" } ], - "time": "2022-08-10T22:54:19+00:00" + "time": "2023-01-15T23:15:59+00:00" + }, + { + "name": "carbonphp/carbon-doctrine-types", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git", + "reference": "a31d3358a2a5d6ae947df1691d1f321418a5f3d5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/a31d3358a2a5d6ae947df1691d1f321418a5f3d5", + "reference": "a31d3358a2a5d6ae947df1691d1f321418a5f3d5", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "conflict": { + "doctrine/dbal": "<4.0.0 || >=5.0.0" + }, + "require-dev": { + "doctrine/dbal": "^4.0.0", + "nesbot/carbon": "^2.71.0 || ^3.0.0", + "phpunit/phpunit": "^10.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Carbon\\Doctrine\\": "src/Carbon/Doctrine/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "KyleKatarn", + "email": "kylekatarnls@gmail.com" + } + ], + "description": "Types to use Carbon in Doctrine", + "keywords": [ + "carbon", + "date", + "datetime", + "doctrine", + "time" + ], + "support": { + "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", + "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.1.0" + }, + "funding": [ + { + "url": "https://github.com/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", + "type": "tidelift" + } + ], + "time": "2023-12-10T15:33:53+00:00" }, { "name": "composer/semver", - "version": "3.3.2", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", "shasum": "" }, "require": { @@ -123,9 +191,9 @@ "versioning" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" + "source": "https://github.com/composer/semver/tree/3.4.0" }, "funding": [ { @@ -141,7 +209,7 @@ "type": "tidelift" } ], - "time": "2022-04-01T19:23:25+00:00" + "time": "2023-08-31T09:50:34+00:00" }, { "name": "dflydev/dot-access-data", @@ -220,28 +288,28 @@ }, { "name": "doctrine/inflector", - "version": "2.0.6", + "version": "2.0.9", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" + "reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", - "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/2930cd5ef353871c821d5c43ed030d39ac8cfe65", + "reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^10", + "doctrine/coding-standard": "^11.0", "phpstan/phpstan": "^1.8", "phpstan/phpstan-phpunit": "^1.1", "phpstan/phpstan-strict-rules": "^1.3", "phpunit/phpunit": "^8.5 || ^9.5", - "vimeo/psalm": "^4.25" + "vimeo/psalm": "^4.25 || ^5.4" }, "type": "library", "autoload": { @@ -291,7 +359,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.6" + "source": "https://github.com/doctrine/inflector/tree/2.0.9" }, "funding": [ { @@ -307,31 +375,31 @@ "type": "tidelift" } ], - "time": "2022-10-20T09:10:12+00:00" + "time": "2024-01-15T18:05:13+00:00" }, { "name": "doctrine/lexer", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "84a527db05647743d50373e0ec53a152f2cde568" + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/84a527db05647743d50373e0ec53a152f2cde568", - "reference": "84a527db05647743d50373e0ec53a152f2cde568", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", "shasum": "" }, "require": { "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^10", - "phpstan/phpstan": "^1.9", - "phpunit/phpunit": "^9.5", + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", "psalm/plugin-phpunit": "^0.18.3", - "vimeo/psalm": "^5.0" + "vimeo/psalm": "^5.21" }, "type": "library", "autoload": { @@ -368,7 +436,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/3.0.0" + "source": "https://github.com/doctrine/lexer/tree/3.0.1" }, "funding": [ { @@ -384,20 +452,20 @@ "type": "tidelift" } ], - "time": "2022-12-15T16:57:16+00:00" + "time": "2024-02-05T11:56:58+00:00" }, { "name": "dragonmantank/cron-expression", - "version": "v3.3.2", + "version": "v3.3.3", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8" + "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8", - "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", "shasum": "" }, "require": { @@ -437,7 +505,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3" }, "funding": [ { @@ -445,20 +513,20 @@ "type": "github" } ], - "time": "2022-09-10T18:51:20+00:00" + "time": "2023-08-10T19:36:49+00:00" }, { "name": "egulias/email-validator", - "version": "4.0.1", + "version": "4.0.2", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff" + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/3a85486b709bc384dae8eb78fb2eec649bdb64ff", - "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", "shasum": "" }, "require": { @@ -467,8 +535,8 @@ "symfony/polyfill-intl-idn": "^1.26" }, "require-dev": { - "phpunit/phpunit": "^9.5.27", - "vimeo/psalm": "^4.30" + "phpunit/phpunit": "^10.2", + "vimeo/psalm": "^5.12" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -504,7 +572,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/4.0.1" + "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" }, "funding": [ { @@ -512,24 +580,24 @@ "type": "github" } ], - "time": "2023-01-14T14:17:03+00:00" + "time": "2023-10-06T06:47:41+00:00" }, { "name": "ezyang/htmlpurifier", - "version": "v4.16.0", + "version": "v4.17.0", "source": { "type": "git", "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8" + "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/523407fb06eb9e5f3d59889b3978d5bfe94299c8", - "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/bbc513d79acf6691fa9cf10f192c90dd2957f18c", + "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c", "shasum": "" }, "require": { - "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0" + "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" }, "require-dev": { "cerdic/css-tidy": "^1.7 || ^2.0", @@ -571,27 +639,27 @@ ], "support": { "issues": "https://github.com/ezyang/htmlpurifier/issues", - "source": "https://github.com/ezyang/htmlpurifier/tree/v4.16.0" + "source": "https://github.com/ezyang/htmlpurifier/tree/v4.17.0" }, - "time": "2022-09-18T07:06:19+00:00" + "time": "2023-11-17T15:01:25+00:00" }, { "name": "fruitcake/php-cors", - "version": "v1.2.0", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/fruitcake/php-cors.git", - "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e" + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/58571acbaa5f9f462c9c77e911700ac66f446d4e", - "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b", "shasum": "" }, "require": { "php": "^7.4|^8.0", - "symfony/http-foundation": "^4.4|^5.4|^6" + "symfony/http-foundation": "^4.4|^5.4|^6|^7" }, "require-dev": { "phpstan/phpstan": "^1.4", @@ -601,7 +669,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.1-dev" + "dev-master": "1.2-dev" } }, "autoload": { @@ -632,7 +700,7 @@ ], "support": { "issues": "https://github.com/fruitcake/php-cors/issues", - "source": "https://github.com/fruitcake/php-cors/tree/v1.2.0" + "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" }, "funding": [ { @@ -644,28 +712,28 @@ "type": "github" } ], - "time": "2022-02-20T15:07:15+00:00" + "time": "2023-10-12T05:21:21+00:00" }, { "name": "graham-campbell/result-type", - "version": "v1.1.0", + "version": "v1.1.2", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8" + "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/a878d45c1914464426dc94da61c9e1d36ae262a8", - "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862", + "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9" + "phpoption/phpoption": "^1.9.2" }, "require-dev": { - "phpunit/phpunit": "^8.5.28 || ^9.5.21" + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" }, "type": "library", "autoload": { @@ -694,7 +762,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.0" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2" }, "funding": [ { @@ -706,20 +774,106 @@ "type": "tidelift" } ], - "time": "2022-07-30T15:56:11+00:00" + "time": "2023-11-12T22:16:48+00:00" + }, + { + "name": "guzzlehttp/uri-template", + "version": "v1.0.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/uri-template.git", + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c", + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-php80": "^1.24" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "uri-template/tests": "1.0.0" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\UriTemplate\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + } + ], + "description": "A polyfill class for uri_template of PHP", + "keywords": [ + "guzzlehttp", + "uri-template" + ], + "support": { + "issues": "https://github.com/guzzle/uri-template/issues", + "source": "https://github.com/guzzle/uri-template/tree/v1.0.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template", + "type": "tidelift" + } + ], + "time": "2023-12-03T19:50:20+00:00" }, { "name": "laravel/framework", - "version": "v9.50.2", + "version": "v9.52.16", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "39932773c09658ddea9045958f305e67f9304995" + "reference": "082345d76fc6a55b649572efe10b11b03e279d24" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/39932773c09658ddea9045958f305e67f9304995", - "reference": "39932773c09658ddea9045958f305e67f9304995", + "url": "https://api.github.com/repos/laravel/framework/zipball/082345d76fc6a55b649572efe10b11b03e279d24", + "reference": "082345d76fc6a55b649572efe10b11b03e279d24", "shasum": "" }, "require": { @@ -727,9 +881,15 @@ "doctrine/inflector": "^2.0.5", "dragonmantank/cron-expression": "^3.3.2", "egulias/email-validator": "^3.2.1|^4.0", + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", "ext-mbstring": "*", "ext-openssl": "*", + "ext-session": "*", + "ext-tokenizer": "*", "fruitcake/php-cors": "^1.2", + "guzzlehttp/uri-template": "^1.0", "laravel/serializable-closure": "^1.2.2", "league/commonmark": "^2.2.1", "league/flysystem": "^3.8.0", @@ -801,6 +961,7 @@ "ably/ably-php": "^1.0", "aws/aws-sdk-php": "^3.235.5", "doctrine/dbal": "^2.13.3|^3.1.4", + "ext-gmp": "*", "fakerphp/faker": "^1.21", "guzzlehttp/guzzle": "^7.5", "league/flysystem-aws-s3-v3": "^3.0", @@ -809,7 +970,7 @@ "league/flysystem-read-only": "^3.3", "league/flysystem-sftp-v3": "^3.0", "mockery/mockery": "^1.5.1", - "orchestra/testbench-core": "^7.16", + "orchestra/testbench-core": "^7.24", "pda/pheanstalk": "^4.0", "phpstan/phpdoc-parser": "^1.15", "phpstan/phpstan": "^1.4.7", @@ -823,10 +984,13 @@ "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).", "brianium/paratest": "Required to run tests in parallel (^6.0).", "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).", + "ext-apcu": "Required to use the APC cache driver.", + "ext-fileinfo": "Required to use the Filesystem class.", "ext-ftp": "Required to use the Flysystem FTP driver.", "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", "ext-memcached": "Required to use the memcache cache driver.", - "ext-pcntl": "Required to use all features of the queue worker.", + "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", + "ext-pdo": "Required to use all database features.", "ext-posix": "Required to use all features of the queue worker.", "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", @@ -894,20 +1058,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2023-02-02T20:52:46+00:00" + "time": "2023-10-03T13:02:30+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.3.0", + "version": "v1.3.3", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37" + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/f23fe9d4e95255dacee1bf3525e0810d1a1b0f37", - "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754", + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754", "shasum": "" }, "require": { @@ -954,20 +1118,20 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2023-01-30T18:31:20+00:00" + "time": "2023-11-08T14:08:06+00:00" }, { "name": "league/commonmark", - "version": "2.3.8", + "version": "2.4.2", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "c493585c130544c4e91d2e0e131e6d35cb0cbc47" + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/c493585c130544c4e91d2e0e131e6d35cb0cbc47", - "reference": "c493585c130544c4e91d2e0e131e6d35cb0cbc47", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/91c24291965bd6d7c46c46a12ba7492f83b1cadf", + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf", "shasum": "" }, "require": { @@ -980,7 +1144,7 @@ }, "require-dev": { "cebe/markdown": "^1.0", - "commonmark/cmark": "0.30.0", + "commonmark/cmark": "0.30.3", "commonmark/commonmark.js": "0.30.0", "composer/package-versions-deprecated": "^1.8", "embed/embed": "^4.4", @@ -990,10 +1154,10 @@ "michelf/php-markdown": "^1.4 || ^2.0", "nyholm/psr7": "^1.5", "phpstan/phpstan": "^1.8.2", - "phpunit/phpunit": "^9.5.21", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", "scrutinizer/ocular": "^1.8.1", - "symfony/finder": "^5.3 | ^6.0", - "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", + "symfony/finder": "^5.3 | ^6.0 || ^7.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0", "unleashedtech/php-coding-standard": "^3.1.1", "vimeo/psalm": "^4.24.0 || ^5.0.0" }, @@ -1003,7 +1167,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "2.5-dev" } }, "autoload": { @@ -1060,7 +1224,7 @@ "type": "tidelift" } ], - "time": "2022-12-10T16:02:17+00:00" + "time": "2024-02-02T11:59:32+00:00" }, { "name": "league/config", @@ -1146,23 +1310,26 @@ }, { "name": "league/flysystem", - "version": "3.12.2", + "version": "3.24.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "f6377c709d2275ed6feaf63e44be7a7162b0e77f" + "reference": "b25a361508c407563b34fac6f64a8a17a8819675" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/f6377c709d2275ed6feaf63e44be7a7162b0e77f", - "reference": "f6377c709d2275ed6feaf63e44be7a7162b0e77f", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/b25a361508c407563b34fac6f64a8a17a8819675", + "reference": "b25a361508c407563b34fac6f64a8a17a8819675", "shasum": "" }, "require": { + "league/flysystem-local": "^3.0.0", "league/mime-type-detection": "^1.0.0", "php": "^8.0.2" }, "conflict": { + "async-aws/core": "<1.19.0", + "async-aws/s3": "<1.14.0", "aws/aws-sdk-php": "3.209.31 || 3.210.0", "guzzlehttp/guzzle": "<7.0", "guzzlehttp/ringphp": "<1.1.1", @@ -1170,9 +1337,9 @@ "symfony/http-client": "<5.2" }, "require-dev": { - "async-aws/s3": "^1.5", - "async-aws/simple-s3": "^1.1", - "aws/aws-sdk-php": "^3.220.0", + "async-aws/s3": "^1.5 || ^2.0", + "async-aws/simple-s3": "^1.1 || ^2.0", + "aws/aws-sdk-php": "^3.295.10", "composer/semver": "^3.0", "ext-fileinfo": "*", "ext-ftp": "*", @@ -1180,10 +1347,10 @@ "friendsofphp/php-cs-fixer": "^3.5", "google/cloud-storage": "^1.23", "microsoft/azure-storage-blob": "^1.1", - "phpseclib/phpseclib": "^3.0.14", - "phpstan/phpstan": "^0.12.26", - "phpunit/phpunit": "^9.5.11", - "sabre/dav": "^4.3.1" + "phpseclib/phpseclib": "^3.0.34", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5.11|^10.0", + "sabre/dav": "^4.6.0" }, "type": "library", "autoload": { @@ -1217,7 +1384,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.12.2" + "source": "https://github.com/thephpleague/flysystem/tree/3.24.0" }, "funding": [ { @@ -1227,36 +1394,92 @@ { "url": "https://github.com/frankdejonge", "type": "github" + } + ], + "time": "2024-02-04T12:10:17+00:00" + }, + { + "name": "league/flysystem-local", + "version": "3.23.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-local.git", + "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/b884d2bf9b53bb4804a56d2df4902bb51e253f00", + "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "league/flysystem": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Local\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Local filesystem adapter for Flysystem.", + "keywords": [ + "Flysystem", + "file", + "files", + "filesystem", + "local" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem-local/issues", + "source": "https://github.com/thephpleague/flysystem-local/tree/3.23.1" + }, + "funding": [ + { + "url": "https://ecologi.com/frankdejonge", + "type": "custom" }, { - "url": "https://tidelift.com/funding/github/packagist/league/flysystem", - "type": "tidelift" + "url": "https://github.com/frankdejonge", + "type": "github" } ], - "time": "2023-01-19T12:02:19+00:00" + "time": "2024-01-26T18:25:23+00:00" }, { "name": "league/mime-type-detection", - "version": "1.11.0", + "version": "1.15.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd" + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd", - "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", "shasum": "" }, "require": { "ext-fileinfo": "*", - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.2", "phpstan/phpstan": "^0.12.68", - "phpunit/phpunit": "^8.5.8 || ^9.3" + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" }, "type": "library", "autoload": { @@ -1277,7 +1500,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.11.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0" }, "funding": [ { @@ -1289,32 +1512,33 @@ "type": "tidelift" } ], - "time": "2022-04-17T13:12:02+00:00" + "time": "2024-01-28T23:22:08+00:00" }, { "name": "maatwebsite/excel", - "version": "3.1.46", + "version": "3.1.52", "source": { "type": "git", "url": "https://github.com/SpartnerNL/Laravel-Excel.git", - "reference": "ba0b9b9305d5b603c3938d4d1d4a13025c92c241" + "reference": "4471416045dbb869d0a218d2e88441adc362e2b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/ba0b9b9305d5b603c3938d4d1d4a13025c92c241", - "reference": "ba0b9b9305d5b603c3938d4d1d4a13025c92c241", + "url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/4471416045dbb869d0a218d2e88441adc362e2b0", + "reference": "4471416045dbb869d0a218d2e88441adc362e2b0", "shasum": "" }, "require": { "composer/semver": "^3.3", "ext-json": "*", - "illuminate/support": "5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0", - "php": "^7.0|^8.0", + "illuminate/support": "5.8.*||^6.0||^7.0||^8.0||^9.0||^10.0", + "php": "^7.0||^8.0", "phpoffice/phpspreadsheet": "^1.18", - "psr/simple-cache": "^1.0|^2.0|^3.0" + "psr/simple-cache": "^1.0||^2.0||^3.0" }, "require-dev": { - "orchestra/testbench": "^6.0|^7.0|^8.0", + "laravel/scout": "^7.0||^8.0||^9.0||^10.0", + "orchestra/testbench": "^6.0||^7.0||^8.0", "predis/predis": "^1.1" }, "type": "library", @@ -1357,7 +1581,7 @@ ], "support": { "issues": "https://github.com/SpartnerNL/Laravel-Excel/issues", - "source": "https://github.com/SpartnerNL/Laravel-Excel/tree/3.1.46" + "source": "https://github.com/SpartnerNL/Laravel-Excel/tree/3.1.52" }, "funding": [ { @@ -1369,37 +1593,40 @@ "type": "github" } ], - "time": "2023-01-26T20:40:09+00:00" + "time": "2024-01-16T10:41:30+00:00" }, { "name": "maennchen/zipstream-php", - "version": "v2.4.0", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/maennchen/ZipStream-PHP.git", - "reference": "3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3" + "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3", - "reference": "3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3", + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/b8174494eda667f7d13876b4a7bfef0f62a7c0d1", + "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1", "shasum": "" }, "require": { "ext-mbstring": "*", - "myclabs/php-enum": "^1.5", - "php": "^8.0", - "psr/http-message": "^1.0" + "ext-zlib": "*", + "php-64bit": "^8.1" }, "require-dev": { "ext-zip": "*", - "friendsofphp/php-cs-fixer": "^3.9", - "guzzlehttp/guzzle": "^6.5.3 || ^7.2.0", + "friendsofphp/php-cs-fixer": "^3.16", + "guzzlehttp/guzzle": "^7.5", "mikey179/vfsstream": "^1.6", - "php-coveralls/php-coveralls": "^2.4", - "phpunit/phpunit": "^8.5.8 || ^9.4.2", + "php-coveralls/php-coveralls": "^2.5", + "phpunit/phpunit": "^10.0", "vimeo/psalm": "^5.0" }, + "suggest": { + "guzzlehttp/psr7": "^2.4", + "psr/http-message": "^2.0" + }, "type": "library", "autoload": { "psr-4": { @@ -1435,7 +1662,7 @@ ], "support": { "issues": "https://github.com/maennchen/ZipStream-PHP/issues", - "source": "https://github.com/maennchen/ZipStream-PHP/tree/v2.4.0" + "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.0" }, "funding": [ { @@ -1447,7 +1674,7 @@ "type": "open_collective" } ], - "time": "2022-12-08T12:29:14+00:00" + "time": "2023-06-21T14:59:35+00:00" }, { "name": "markbaker/complex", @@ -1558,16 +1785,16 @@ }, { "name": "monolog/monolog", - "version": "2.9.1", + "version": "2.9.2", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1" + "reference": "437cb3628f4cf6042cc10ae97fc2b8472e48ca1f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f259e2b15fb95494c83f52d3caad003bbf5ffaa1", - "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/437cb3628f4cf6042cc10ae97fc2b8472e48ca1f", + "reference": "437cb3628f4cf6042cc10ae97fc2b8472e48ca1f", "shasum": "" }, "require": { @@ -1644,7 +1871,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.9.1" + "source": "https://github.com/Seldaek/monolog/tree/2.9.2" }, "funding": [ { @@ -1656,95 +1883,37 @@ "type": "tidelift" } ], - "time": "2023-02-06T13:44:46+00:00" - }, - { - "name": "myclabs/php-enum", - "version": "1.8.4", - "source": { - "type": "git", - "url": "https://github.com/myclabs/php-enum.git", - "reference": "a867478eae49c9f59ece437ae7f9506bfaa27483" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/php-enum/zipball/a867478eae49c9f59ece437ae7f9506bfaa27483", - "reference": "a867478eae49c9f59ece437ae7f9506bfaa27483", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": "^7.3 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.5", - "squizlabs/php_codesniffer": "1.*", - "vimeo/psalm": "^4.6.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "MyCLabs\\Enum\\": "src/" - }, - "classmap": [ - "stubs/Stringable.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP Enum contributors", - "homepage": "https://github.com/myclabs/php-enum/graphs/contributors" - } - ], - "description": "PHP Enum implementation", - "homepage": "http://github.com/myclabs/php-enum", - "keywords": [ - "enum" - ], - "support": { - "issues": "https://github.com/myclabs/php-enum/issues", - "source": "https://github.com/myclabs/php-enum/tree/1.8.4" - }, - "funding": [ - { - "url": "https://github.com/mnapoli", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum", - "type": "tidelift" - } - ], - "time": "2022-08-04T09:53:51+00:00" + "time": "2023-10-27T15:25:26+00:00" }, { "name": "nesbot/carbon", - "version": "2.66.0", + "version": "2.72.3", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "496712849902241f04902033b0441b269effe001" + "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/496712849902241f04902033b0441b269effe001", - "reference": "496712849902241f04902033b0441b269effe001", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83", + "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83", "shasum": "" }, "require": { + "carbonphp/carbon-doctrine-types": "*", "ext-json": "*", "php": "^7.1.8 || ^8.0", + "psr/clock": "^1.0", "symfony/polyfill-mbstring": "^1.0", "symfony/polyfill-php80": "^1.16", "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" }, + "provide": { + "psr/clock-implementation": "1.0" + }, "require-dev": { - "doctrine/dbal": "^2.0 || ^3.1.4", - "doctrine/orm": "^2.7", + "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0", + "doctrine/orm": "^2.7 || ^3.0", "friendsofphp/php-cs-fixer": "^3.0", "kylekatarnls/multi-tester": "^2.0", "ondrejmirtes/better-reflection": "*", @@ -1821,35 +1990,35 @@ "type": "tidelift" } ], - "time": "2023-01-29T18:53:47+00:00" + "time": "2024-01-25T10:35:09+00:00" }, { "name": "nette/schema", - "version": "v1.2.3", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f" + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", - "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", + "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", "shasum": "" }, "require": { - "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", - "php": ">=7.1 <8.3" + "nette/utils": "^4.0", + "php": "8.1 - 8.3" }, "require-dev": { - "nette/tester": "^2.3 || ^2.4", + "nette/tester": "^2.4", "phpstan/phpstan-nette": "^1.0", - "tracy/tracy": "^2.7" + "tracy/tracy": "^2.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -1881,26 +2050,26 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.3" + "source": "https://github.com/nette/schema/tree/v1.3.0" }, - "time": "2022-10-13T01:24:26+00:00" + "time": "2023-12-11T11:54:22+00:00" }, { "name": "nette/utils", - "version": "v4.0.0", + "version": "v4.0.4", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e" + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/cacdbf5a91a657ede665c541eda28941d4b09c1e", - "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e", + "url": "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218", + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218", "shasum": "" }, "require": { - "php": ">=8.0 <8.3" + "php": ">=8.0 <8.4" }, "conflict": { "nette/finder": "<3", @@ -1908,7 +2077,7 @@ }, "require-dev": { "jetbrains/phpstorm-attributes": "dev-master", - "nette/tester": "^2.4", + "nette/tester": "^2.5", "phpstan/phpstan": "^1.0", "tracy/tracy": "^2.9" }, @@ -1918,8 +2087,7 @@ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", "ext-json": "to use Nette\\Utils\\Json", "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", - "ext-xml": "to use Strings::length() etc. when mbstring is not available" + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" }, "type": "library", "extra": { @@ -1968,22 +2136,22 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.0" + "source": "https://github.com/nette/utils/tree/v4.0.4" }, - "time": "2023-02-02T10:41:53+00:00" + "time": "2024-01-17T16:50:36+00:00" }, { "name": "nunomaduro/termwind", - "version": "v1.15.0", + "version": "v1.15.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "594ab862396c16ead000de0c3c38f4a5cbe1938d" + "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/594ab862396c16ead000de0c3c38f4a5cbe1938d", - "reference": "594ab862396c16ead000de0c3c38f4a5cbe1938d", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc", + "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc", "shasum": "" }, "require": { @@ -2040,7 +2208,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v1.15.0" + "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1" }, "funding": [ { @@ -2056,20 +2224,20 @@ "type": "github" } ], - "time": "2022-12-20T19:00:15+00:00" + "time": "2023-02-08T01:06:31+00:00" }, { "name": "phpoffice/phpspreadsheet", - "version": "1.27.0", + "version": "1.29.0", "source": { "type": "git", "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", - "reference": "eeb8582f9cabf5a7f4ef78015691163233a1834f" + "reference": "fde2ccf55eaef7e86021ff1acce26479160a0fa0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/eeb8582f9cabf5a7f4ef78015691163233a1834f", - "reference": "eeb8582f9cabf5a7f4ef78015691163233a1834f", + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/fde2ccf55eaef7e86021ff1acce26479160a0fa0", + "reference": "fde2ccf55eaef7e86021ff1acce26479160a0fa0", "shasum": "" }, "require": { @@ -2087,7 +2255,7 @@ "ext-zip": "*", "ext-zlib": "*", "ezyang/htmlpurifier": "^4.15", - "maennchen/zipstream-php": "^2.1", + "maennchen/zipstream-php": "^2.1 || ^3.0", "markbaker/complex": "^3.0", "markbaker/matrix": "^3.0", "php": "^7.4 || ^8.0", @@ -2096,15 +2264,15 @@ "psr/simple-cache": "^1.0 || ^2.0 || ^3.0" }, "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "dev-master", + "dealerdirect/phpcodesniffer-composer-installer": "dev-main", "dompdf/dompdf": "^1.0 || ^2.0", "friendsofphp/php-cs-fixer": "^3.2", - "mitoteam/jpgraph": "^10.2.4", + "mitoteam/jpgraph": "^10.3", "mpdf/mpdf": "^8.1.1", "phpcompatibility/php-compatibility": "^9.3", "phpstan/phpstan": "^1.1", "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^8.5 || ^9.0", + "phpunit/phpunit": "^8.5 || ^9.0 || ^10.0", "squizlabs/php_codesniffer": "^3.7", "tecnickcom/tcpdf": "^6.5" }, @@ -2159,30 +2327,30 @@ ], "support": { "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", - "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.27.0" + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.29.0" }, - "time": "2023-01-24T20:07:45+00:00" + "time": "2023-06-14T22:48:31+00:00" }, { "name": "phpoption/phpoption", - "version": "1.9.0", + "version": "1.9.2", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab" + "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", - "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820", + "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8", - "phpunit/phpunit": "^8.5.28 || ^9.5.21" + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" }, "type": "library", "extra": { @@ -2224,7 +2392,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.0" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.2" }, "funding": [ { @@ -2236,7 +2404,55 @@ "type": "tidelift" } ], - "time": "2022-07-30T15:51:26+00:00" + "time": "2023-11-12T21:59:55+00:00" + }, + { + "name": "psr/clock", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Clock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], + "support": { + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" + }, + "time": "2022-11-25T14:36:26+00:00" }, { "name": "psr/container", @@ -2343,21 +2559,21 @@ }, { "name": "psr/http-client", - "version": "1.0.1", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/php-fig/http-client.git", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", "shasum": "" }, "require": { "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0" + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { @@ -2377,7 +2593,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP clients", @@ -2389,27 +2605,27 @@ "psr-18" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/master" + "source": "https://github.com/php-fig/http-client" }, - "time": "2020-06-29T06:28:15+00:00" + "time": "2023-09-23T14:17:50+00:00" }, { "name": "psr/http-factory", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + "reference": "e616d01114759c4c489f93b099585439f795fe35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", + "reference": "e616d01114759c4c489f93b099585439f795fe35", "shasum": "" }, "require": { "php": ">=7.0.0", - "psr/http-message": "^1.0" + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { @@ -2429,7 +2645,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interfaces for PSR-7 HTTP message factories", @@ -2444,31 +2660,31 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/master" + "source": "https://github.com/php-fig/http-factory/tree/1.0.2" }, - "time": "2019-04-30T12:38:16+00:00" + "time": "2023-04-10T20:10:41+00:00" }, { "name": "psr/http-message", - "version": "1.0.1", + "version": "2.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -2483,7 +2699,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP messages", @@ -2497,9 +2713,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/master" + "source": "https://github.com/php-fig/http-message/tree/2.0" }, - "time": "2016-08-06T14:39:51+00:00" + "time": "2023-04-04T09:54:51+00:00" }, { "name": "psr/log", @@ -2693,20 +2909,20 @@ }, { "name": "ramsey/uuid", - "version": "4.7.3", + "version": "4.7.5", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "433b2014e3979047db08a17a205f410ba3869cf2" + "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/433b2014e3979047db08a17a205f410ba3869cf2", - "reference": "433b2014e3979047db08a17a205f410ba3869cf2", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", + "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10", + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11", "ext-json": "*", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" @@ -2769,7 +2985,7 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.7.3" + "source": "https://github.com/ramsey/uuid/tree/4.7.5" }, "funding": [ { @@ -2781,28 +2997,28 @@ "type": "tidelift" } ], - "time": "2023-01-12T18:13:24+00:00" + "time": "2023-11-08T05:53:05+00:00" }, { "name": "symfony/console", - "version": "v6.2.5", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "3e294254f2191762c1d137aed4b94e966965e985" + "reference": "2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3e294254f2191762c1d137aed4b94e966965e985", - "reference": "3e294254f2191762c1d137aed4b94e966965e985", + "url": "https://api.github.com/repos/symfony/console/zipball/2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e", + "reference": "2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e", "shasum": "" }, "require": { "php": ">=8.1", - "symfony/deprecation-contracts": "^2.1|^3", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.4|^6.0" + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0|^7.0" }, "conflict": { "symfony/dependency-injection": "<5.4", @@ -2816,18 +3032,16 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/lock": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -2856,12 +3070,12 @@ "homepage": "https://symfony.com", "keywords": [ "cli", - "command line", + "command-line", "console", "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.2.5" + "source": "https://github.com/symfony/console/tree/v6.4.3" }, "funding": [ { @@ -2877,24 +3091,24 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:38:09+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/css-selector", - "version": "v6.2.5", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "bf1b9d4ad8b1cf0dbde8b08e0135a2f6259b9ba1" + "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/bf1b9d4ad8b1cf0dbde8b08e0135a2f6259b9ba1", - "reference": "bf1b9d4ad8b1cf0dbde8b08e0135a2f6259b9ba1", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ec60a4edf94e63b0556b6a0888548bb400a3a3be", + "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "type": "library", "autoload": { @@ -2926,7 +3140,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.2.5" + "source": "https://github.com/symfony/css-selector/tree/v7.0.3" }, "funding": [ { @@ -2942,20 +3156,20 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:38:09+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.2.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3" + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/1ee04c65529dea5d8744774d474e7cbd2f1206d3", - "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", "shasum": "" }, "require": { @@ -2964,7 +3178,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.3-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -2993,7 +3207,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" }, "funding": [ { @@ -3009,31 +3223,35 @@ "type": "tidelift" } ], - "time": "2022-11-25T10:21:52+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/error-handler", - "version": "v6.2.5", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "0092696af0be8e6124b042fbe2890ca1788d7b28" + "reference": "6dc3c76a278b77f01d864a6005d640822c6f26a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/0092696af0be8e6124b042fbe2890ca1788d7b28", - "reference": "0092696af0be8e6124b042fbe2890ca1788d7b28", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/6dc3c76a278b77f01d864a6005d640822c6f26a6", + "reference": "6dc3c76a278b77f01d864a6005d640822c6f26a6", "shasum": "" }, "require": { "php": ">=8.1", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "conflict": { + "symfony/deprecation-contracts": "<2.5", + "symfony/http-kernel": "<6.4" }, "require-dev": { - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/serializer": "^5.4|^6.0" + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/serializer": "^5.4|^6.0|^7.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -3064,7 +3282,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.2.5" + "source": "https://github.com/symfony/error-handler/tree/v6.4.3" }, "funding": [ { @@ -3080,28 +3298,29 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:38:09+00:00" + "time": "2024-01-29T15:40:36+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.2.5", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "f02d108b5e9fd4a6245aa73a9d2df2ec060c3e68" + "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f02d108b5e9fd4a6245aa73a9d2df2ec060c3e68", - "reference": "f02d108b5e9fd4a6245aa73a9d2df2ec060c3e68", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/834c28d533dd0636f910909d01b9ff45cc094b5e", + "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/event-dispatcher-contracts": "^2|^3" + "php": ">=8.2", + "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<5.4" + "symfony/dependency-injection": "<6.4", + "symfony/service-contracts": "<2.5" }, "provide": { "psr/event-dispatcher-implementation": "1.0", @@ -3109,17 +3328,13 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/error-handler": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/stopwatch": "^5.4|^6.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/error-handler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -3147,7 +3362,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.2.5" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.3" }, "funding": [ { @@ -3163,33 +3378,30 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:38:09+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.2.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "0782b0b52a737a05b4383d0df35a474303cabdae" + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0782b0b52a737a05b4383d0df35a474303cabdae", - "reference": "0782b0b52a737a05b4383d0df35a474303cabdae", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", "shasum": "" }, "require": { "php": ">=8.1", "psr/event-dispatcher": "^1" }, - "suggest": { - "symfony/event-dispatcher-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.3-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -3226,7 +3438,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.2.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0" }, "funding": [ { @@ -3242,27 +3454,27 @@ "type": "tidelift" } ], - "time": "2022-11-25T10:21:52+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/finder", - "version": "v6.2.5", + "version": "v6.4.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "c90dc446976a612e3312a97a6ec0069ab0c2099c" + "reference": "11d736e97f116ac375a81f96e662911a34cd50ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/c90dc446976a612e3312a97a6ec0069ab0c2099c", - "reference": "c90dc446976a612e3312a97a6ec0069ab0c2099c", + "url": "https://api.github.com/repos/symfony/finder/zipball/11d736e97f116ac375a81f96e662911a34cd50ce", + "reference": "11d736e97f116ac375a81f96e662911a34cd50ce", "shasum": "" }, "require": { "php": ">=8.1" }, "require-dev": { - "symfony/filesystem": "^6.0" + "symfony/filesystem": "^6.0|^7.0" }, "type": "library", "autoload": { @@ -3290,7 +3502,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.2.5" + "source": "https://github.com/symfony/finder/tree/v6.4.0" }, "funding": [ { @@ -3306,41 +3518,40 @@ "type": "tidelift" } ], - "time": "2023-01-20T17:45:48+00:00" + "time": "2023-10-31T17:30:12+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.2.6", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "e8dd1f502bc2b3371d05092aa233b064b03ce7ed" + "reference": "5677bdf7cade4619cb17fc9e1e7b31ec392244a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e8dd1f502bc2b3371d05092aa233b064b03ce7ed", - "reference": "e8dd1f502bc2b3371d05092aa233b064b03ce7ed", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5677bdf7cade4619cb17fc9e1e7b31ec392244a9", + "reference": "5677bdf7cade4619cb17fc9e1e7b31ec392244a9", "shasum": "" }, "require": { "php": ">=8.1", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-mbstring": "~1.1" + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php83": "^1.27" }, "conflict": { - "symfony/cache": "<6.2" + "symfony/cache": "<6.3" }, "require-dev": { - "predis/predis": "~1.0", - "symfony/cache": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", - "symfony/mime": "^5.4|^6.0", - "symfony/rate-limiter": "^5.2|^6.0" - }, - "suggest": { - "symfony/mime": "To use the file extension guesser" + "doctrine/dbal": "^2.13.1|^3|^4", + "predis/predis": "^1.1|^2.0", + "symfony/cache": "^6.3|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", + "symfony/mime": "^5.4|^6.0|^7.0", + "symfony/rate-limiter": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -3368,7 +3579,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.2.6" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.3" }, "funding": [ { @@ -3384,29 +3595,29 @@ "type": "tidelift" } ], - "time": "2023-01-30T15:46:28+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.2.6", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "7122db07b0d8dbf0de682267c84217573aee3ea7" + "reference": "9c6ec4e543044f7568a53a76ab1484ecd30637a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/7122db07b0d8dbf0de682267c84217573aee3ea7", - "reference": "7122db07b0d8dbf0de682267c84217573aee3ea7", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/9c6ec4e543044f7568a53a76ab1484ecd30637a2", + "reference": "9c6ec4e543044f7568a53a76ab1484ecd30637a2", "shasum": "" }, "require": { "php": ">=8.1", "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/error-handler": "^6.1", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.4|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { @@ -3414,15 +3625,18 @@ "symfony/cache": "<5.4", "symfony/config": "<6.1", "symfony/console": "<5.4", - "symfony/dependency-injection": "<6.2", + "symfony/dependency-injection": "<6.4", "symfony/doctrine-bridge": "<5.4", "symfony/form": "<5.4", "symfony/http-client": "<5.4", + "symfony/http-client-contracts": "<2.5", "symfony/mailer": "<5.4", "symfony/messenger": "<5.4", "symfony/translation": "<5.4", + "symfony/translation-contracts": "<2.5", "symfony/twig-bridge": "<5.4", - "symfony/validator": "<5.4", + "symfony/validator": "<6.4", + "symfony/var-dumper": "<6.3", "twig/twig": "<2.13" }, "provide": { @@ -3430,29 +3644,28 @@ }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^5.4|^6.0", - "symfony/config": "^6.1", - "symfony/console": "^5.4|^6.0", - "symfony/css-selector": "^5.4|^6.0", - "symfony/dependency-injection": "^6.2", - "symfony/dom-crawler": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/http-client-contracts": "^1.1|^2|^3", - "symfony/process": "^5.4|^6.0", - "symfony/routing": "^5.4|^6.0", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", - "symfony/translation-contracts": "^1.1|^2|^3", - "symfony/uid": "^5.4|^6.0", + "symfony/browser-kit": "^5.4|^6.0|^7.0", + "symfony/clock": "^6.2|^7.0", + "symfony/config": "^6.1|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/css-selector": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dom-crawler": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/http-client-contracts": "^2.5|^3", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/property-access": "^5.4.5|^6.0.5|^7.0", + "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.3|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/translation": "^5.4|^6.0|^7.0", + "symfony/translation-contracts": "^2.5|^3", + "symfony/uid": "^5.4|^6.0|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-exporter": "^6.2|^7.0", "twig/twig": "^2.13|^3.0.4" }, - "suggest": { - "symfony/browser-kit": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "" - }, "type": "library", "autoload": { "psr-4": { @@ -3479,7 +3692,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.2.6" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.3" }, "funding": [ { @@ -3495,20 +3708,20 @@ "type": "tidelift" } ], - "time": "2023-02-01T08:32:25+00:00" + "time": "2024-01-31T07:21:29+00:00" }, { "name": "symfony/mailer", - "version": "v6.2.5", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "29729ac0b4e5113f24c39c46746bd6afb79e0aaa" + "reference": "74412c62f88a85a41b61f0b71ab0afcaad6f03ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/29729ac0b4e5113f24c39c46746bd6afb79e0aaa", - "reference": "29729ac0b4e5113f24c39c46746bd6afb79e0aaa", + "url": "https://api.github.com/repos/symfony/mailer/zipball/74412c62f88a85a41b61f0b71ab0afcaad6f03ee", + "reference": "74412c62f88a85a41b61f0b71ab0afcaad6f03ee", "shasum": "" }, "require": { @@ -3516,21 +3729,22 @@ "php": ">=8.1", "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/mime": "^6.2", - "symfony/service-contracts": "^1.1|^2|^3" + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/mime": "^6.2|^7.0", + "symfony/service-contracts": "^2.5|^3" }, "conflict": { + "symfony/http-client-contracts": "<2.5", "symfony/http-kernel": "<5.4", "symfony/messenger": "<6.2", "symfony/mime": "<6.2", "symfony/twig-bridge": "<6.2.1" }, "require-dev": { - "symfony/console": "^5.4|^6.0", - "symfony/http-client-contracts": "^1.1|^2|^3", - "symfony/messenger": "^6.2", - "symfony/twig-bridge": "^6.2" + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/messenger": "^6.2|^7.0", + "symfony/twig-bridge": "^6.2|^7.0" }, "type": "library", "autoload": { @@ -3558,7 +3772,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.2.5" + "source": "https://github.com/symfony/mailer/tree/v6.4.3" }, "funding": [ { @@ -3574,24 +3788,25 @@ "type": "tidelift" } ], - "time": "2023-01-10T18:53:53+00:00" + "time": "2024-01-29T15:01:07+00:00" }, { "name": "symfony/mime", - "version": "v6.2.5", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "4b7b349f67d15cd0639955c8179a76c89f6fd610" + "reference": "5017e0a9398c77090b7694be46f20eb796262a34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/4b7b349f67d15cd0639955c8179a76c89f6fd610", - "reference": "4b7b349f67d15cd0639955c8179a76c89f6fd610", + "url": "https://api.github.com/repos/symfony/mime/zipball/5017e0a9398c77090b7694be46f20eb796262a34", + "reference": "5017e0a9398c77090b7694be46f20eb796262a34", "shasum": "" }, "require": { "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, @@ -3600,16 +3815,16 @@ "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "symfony/mailer": "<5.4", - "symfony/serializer": "<6.2" + "symfony/serializer": "<6.3.2" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/property-info": "^5.4|^6.0", - "symfony/serializer": "^6.2" + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/property-access": "^5.4|^6.0|^7.0", + "symfony/property-info": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.3.2|^7.0" }, "type": "library", "autoload": { @@ -3641,7 +3856,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.2.5" + "source": "https://github.com/symfony/mime/tree/v6.4.3" }, "funding": [ { @@ -3657,20 +3872,20 @@ "type": "tidelift" } ], - "time": "2023-01-10T18:53:53+00:00" + "time": "2024-01-30T08:32:12+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", "shasum": "" }, "require": { @@ -3684,9 +3899,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -3723,7 +3935,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" }, "funding": [ { @@ -3739,20 +3951,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", "shasum": "" }, "require": { @@ -3763,9 +3975,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -3804,7 +4013,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" }, "funding": [ { @@ -3820,20 +4029,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "639084e360537a19f9ee352433b84ce831f3d2da" + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da", - "reference": "639084e360537a19f9ee352433b84ce831f3d2da", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919", "shasum": "" }, "require": { @@ -3846,9 +4055,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -3891,7 +4097,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0" }, "funding": [ { @@ -3907,20 +4113,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", "shasum": "" }, "require": { @@ -3931,9 +4137,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -3975,7 +4178,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" }, "funding": [ { @@ -3991,20 +4194,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", "shasum": "" }, "require": { @@ -4018,9 +4221,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -4058,7 +4258,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" }, "funding": [ { @@ -4074,20 +4274,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "869329b1e9894268a8a61dabb69153029b7a8c97" + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", - "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25", + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25", "shasum": "" }, "require": { @@ -4095,9 +4295,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -4134,7 +4331,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0" }, "funding": [ { @@ -4150,20 +4347,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", "shasum": "" }, "require": { @@ -4171,9 +4368,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -4217,7 +4411,84 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-php83", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-php80": "^1.14" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php83\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0" }, "funding": [ { @@ -4233,20 +4504,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-uuid", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166" + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/f3cf1a645c2734236ed1e2e671e273eeb3586166", - "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/3abdd21b0ceaa3000ee950097bc3cf9efc137853", + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853", "shasum": "" }, "require": { @@ -4260,9 +4531,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -4299,7 +4567,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.29.0" }, "funding": [ { @@ -4315,20 +4583,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/process", - "version": "v6.2.5", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "9ead139f63dfa38c4e4a9049cc64a8b2748c83b7" + "reference": "31642b0818bfcff85930344ef93193f8c607e0a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/9ead139f63dfa38c4e4a9049cc64a8b2748c83b7", - "reference": "9ead139f63dfa38c4e4a9049cc64a8b2748c83b7", + "url": "https://api.github.com/repos/symfony/process/zipball/31642b0818bfcff85930344ef93193f8c607e0a3", + "reference": "31642b0818bfcff85930344ef93193f8c607e0a3", "shasum": "" }, "require": { @@ -4360,7 +4628,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.2.5" + "source": "https://github.com/symfony/process/tree/v6.4.3" }, "funding": [ { @@ -4376,24 +4644,25 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:38:09+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/routing", - "version": "v6.2.5", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "589bd742d5d03c192c8521911680fe88f61712fe" + "reference": "3b2957ad54902f0f544df83e3d58b38d7e8e5842" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/589bd742d5d03c192c8521911680fe88f61712fe", - "reference": "589bd742d5d03c192c8521911680fe88f61712fe", + "url": "https://api.github.com/repos/symfony/routing/zipball/3b2957ad54902f0f544df83e3d58b38d7e8e5842", + "reference": "3b2957ad54902f0f544df83e3d58b38d7e8e5842", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { "doctrine/annotations": "<1.12", @@ -4404,17 +4673,11 @@ "require-dev": { "doctrine/annotations": "^1.12|^2", "psr/log": "^1|^2|^3", - "symfony/config": "^6.2", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0" - }, - "suggest": { - "symfony/config": "For using the all-in-one router or any loader", - "symfony/expression-language": "For using expression matching", - "symfony/http-foundation": "For using a Symfony Request object", - "symfony/yaml": "For using the YAML loader" + "symfony/config": "^6.2|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/yaml": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -4448,7 +4711,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.2.5" + "source": "https://github.com/symfony/routing/tree/v6.4.3" }, "funding": [ { @@ -4464,36 +4727,33 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:38:09+00:00" + "time": "2024-01-30T13:55:02+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.2.0", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75" + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/aac98028c69df04ee77eb69b96b86ee51fbf4b75", - "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0", + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", "shasum": "" }, "require": { "php": ">=8.1", - "psr/container": "^2.0" + "psr/container": "^1.1|^2.0" }, "conflict": { "ext-psr": "<1.1|>=2" }, - "suggest": { - "symfony/service-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.3-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -4533,7 +4793,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.2.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.4.1" }, "funding": [ { @@ -4549,38 +4809,38 @@ "type": "tidelift" } ], - "time": "2022-11-25T10:21:52+00:00" + "time": "2023-12-26T14:02:43+00:00" }, { "name": "symfony/string", - "version": "v6.2.5", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "b2dac0fa27b1ac0f9c0c0b23b43977f12308d0b0" + "reference": "524aac4a280b90a4420d8d6a040718d0586505ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/b2dac0fa27b1ac0f9c0c0b23b43977f12308d0b0", - "reference": "b2dac0fa27b1ac0f9c0c0b23b43977f12308d0b0", + "url": "https://api.github.com/repos/symfony/string/zipball/524aac4a280b90a4420d8d6a040718d0586505ac", + "reference": "524aac4a280b90a4420d8d6a040718d0586505ac", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/translation-contracts": "<2.0" + "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/error-handler": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/intl": "^6.2", - "symfony/translation-contracts": "^2.0|^3.0", - "symfony/var-exporter": "^5.4|^6.0" + "symfony/error-handler": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -4619,7 +4879,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.2.5" + "source": "https://github.com/symfony/string/tree/v7.0.3" }, "funding": [ { @@ -4635,32 +4895,35 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:38:09+00:00" + "time": "2024-01-29T15:41:16+00:00" }, { "name": "symfony/translation", - "version": "v6.2.5", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "60556925a703cfbc1581cde3b3f35b0bb0ea904c" + "reference": "637c51191b6b184184bbf98937702bcf554f7d04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/60556925a703cfbc1581cde3b3f35b0bb0ea904c", - "reference": "60556925a703cfbc1581cde3b3f35b0bb0ea904c", + "url": "https://api.github.com/repos/symfony/translation/zipball/637c51191b6b184184bbf98937702bcf554f7d04", + "reference": "637c51191b6b184184bbf98937702bcf554f7d04", "shasum": "" }, "require": { "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^2.3|^3.0" + "symfony/translation-contracts": "^2.5|^3.0" }, "conflict": { "symfony/config": "<5.4", "symfony/console": "<5.4", "symfony/dependency-injection": "<5.4", + "symfony/http-client-contracts": "<2.5", "symfony/http-kernel": "<5.4", + "symfony/service-contracts": "<2.5", "symfony/twig-bundle": "<5.4", "symfony/yaml": "<5.4" }, @@ -4668,25 +4931,19 @@ "symfony/translation-implementation": "2.3|3.0" }, "require-dev": { - "nikic/php-parser": "^4.13", + "nikic/php-parser": "^4.18|^5.0", "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/http-client-contracts": "^1.1|^2.0|^3.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/intl": "^5.4|^6.0", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/http-client-contracts": "^2.5|^3.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/intl": "^5.4|^6.0|^7.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/routing": "^5.4|^6.0", - "symfony/service-contracts": "^1.1.2|^2|^3", - "symfony/yaml": "^5.4|^6.0" - }, - "suggest": { - "nikic/php-parser": "To use PhpAstExtractor", - "psr/log-implementation": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" + "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -4717,7 +4974,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.2.5" + "source": "https://github.com/symfony/translation/tree/v6.4.3" }, "funding": [ { @@ -4733,32 +4990,29 @@ "type": "tidelift" } ], - "time": "2023-01-05T07:00:27+00:00" + "time": "2024-01-29T13:11:52+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.2.0", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "68cce71402305a015f8c1589bfada1280dc64fe7" + "reference": "06450585bf65e978026bda220cdebca3f867fde7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/68cce71402305a015f8c1589bfada1280dc64fe7", - "reference": "68cce71402305a015f8c1589bfada1280dc64fe7", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7", + "reference": "06450585bf65e978026bda220cdebca3f867fde7", "shasum": "" }, "require": { "php": ">=8.1" }, - "suggest": { - "symfony/translation-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.3-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -4798,7 +5052,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.2.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.4.1" }, "funding": [ { @@ -4814,20 +5068,20 @@ "type": "tidelift" } ], - "time": "2022-11-25T10:21:52+00:00" + "time": "2023-12-26T14:02:43+00:00" }, { "name": "symfony/uid", - "version": "v6.2.5", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "8ace895bded57d6496638c9b2d3b788e05b7395b" + "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/8ace895bded57d6496638c9b2d3b788e05b7395b", - "reference": "8ace895bded57d6496638c9b2d3b788e05b7395b", + "url": "https://api.github.com/repos/symfony/uid/zipball/1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", + "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", "shasum": "" }, "require": { @@ -4835,7 +5089,7 @@ "symfony/polyfill-uuid": "^1.15" }, "require-dev": { - "symfony/console": "^5.4|^6.0" + "symfony/console": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -4872,7 +5126,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v6.2.5" + "source": "https://github.com/symfony/uid/tree/v6.4.3" }, "funding": [ { @@ -4888,42 +5142,39 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:38:09+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.2.5", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "44b7b81749fd20c1bdf4946c041050e22bc8da27" + "reference": "0435a08f69125535336177c29d56af3abc1f69da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/44b7b81749fd20c1bdf4946c041050e22bc8da27", - "reference": "44b7b81749fd20c1bdf4946c041050e22bc8da27", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0435a08f69125535336177c29d56af3abc1f69da", + "reference": "0435a08f69125535336177c29d56af3abc1f69da", "shasum": "" }, "require": { "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "phpunit/phpunit": "<5.4.3", "symfony/console": "<5.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/uid": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^6.3|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/uid": "^5.4|^6.0|^7.0", "twig/twig": "^2.13|^3.0.4" }, - "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" - }, "bin": [ "Resources/bin/var-dump-server" ], @@ -4960,7 +5211,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.2.5" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.3" }, "funding": [ { @@ -4976,27 +5227,27 @@ "type": "tidelift" } ], - "time": "2023-01-20T17:45:48+00:00" + "time": "2024-01-23T14:53:30+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.6", + "version": "v2.2.7", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c" + "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/c42125b83a4fa63b187fdf29f9c93cb7733da30c", - "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb", + "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "php": "^5.5 || ^7.0 || ^8.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0" + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" }, "require-dev": { "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" @@ -5027,37 +5278,37 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.6" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7" }, - "time": "2023-01-03T09:29:04+00:00" + "time": "2023-12-08T13:03:43+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v5.5.0", + "version": "v5.6.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7" + "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", - "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", + "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.0.2", - "php": "^7.1.3 || ^8.0", - "phpoption/phpoption": "^1.8", - "symfony/polyfill-ctype": "^1.23", - "symfony/polyfill-mbstring": "^1.23.1", - "symfony/polyfill-php80": "^1.23.1" + "graham-campbell/result-type": "^1.1.2", + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.2", + "symfony/polyfill-ctype": "^1.24", + "symfony/polyfill-mbstring": "^1.24", + "symfony/polyfill-php80": "^1.24" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", + "bamarni/composer-bin-plugin": "^1.8.2", "ext-filter": "*", - "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25" + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" }, "suggest": { "ext-filter": "Required to use the boolean validator." @@ -5069,7 +5320,7 @@ "forward-command": true }, "branch-alias": { - "dev-master": "5.5-dev" + "dev-master": "5.6-dev" } }, "autoload": { @@ -5101,7 +5352,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0" }, "funding": [ { @@ -5113,7 +5364,7 @@ "type": "tidelift" } ], - "time": "2022-10-16T01:01:54+00:00" + "time": "2023-11-12T22:43:29+00:00" }, { "name": "voku/portable-ascii", @@ -5251,22 +5502,22 @@ "packages-dev": [ { "name": "guzzlehttp/guzzle", - "version": "7.5.0", + "version": "7.8.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba" + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba", - "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5", - "guzzlehttp/psr7": "^1.9 || ^2.4", + "guzzlehttp/promises": "^1.5.3 || ^2.0.1", + "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -5275,10 +5526,11 @@ "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "php-http/client-integration-tests": "^3.0", - "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -5291,9 +5543,6 @@ "bamarni-bin": { "bin-links": true, "forward-command": false - }, - "branch-alias": { - "dev-master": "7.5-dev" } }, "autoload": { @@ -5359,7 +5608,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.5.0" + "source": "https://github.com/guzzle/guzzle/tree/7.8.1" }, "funding": [ { @@ -5375,38 +5624,37 @@ "type": "tidelift" } ], - "time": "2022-08-28T15:39:27+00:00" + "time": "2023-12-03T20:35:24+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.5.2", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "b94b2807d85443f9719887892882d0329d1e2598" + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", - "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", "shasum": "" }, "require": { - "php": ">=5.5" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.5-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\Promise\\": "src/" } @@ -5443,7 +5691,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.2" + "source": "https://github.com/guzzle/promises/tree/2.0.2" }, "funding": [ { @@ -5459,26 +5707,26 @@ "type": "tidelift" } ], - "time": "2022-08-28T14:55:35+00:00" + "time": "2023-12-03T20:19:20+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.4.3", + "version": "2.6.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "67c26b443f348a51926030c83481b85718457d3d" + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d", - "reference": "67c26b443f348a51926030c83481b85718457d3d", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", "psr/http-factory": "^1.0", - "psr/http-message": "^1.0", + "psr/http-message": "^1.1 || ^2.0", "ralouphie/getallheaders": "^3.0" }, "provide": { @@ -5486,9 +5734,9 @@ "psr/http-message-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.8.2", "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" + "phpunit/phpunit": "^8.5.36 || ^9.6.15" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -5498,9 +5746,6 @@ "bamarni-bin": { "bin-links": true, "forward-command": false - }, - "branch-alias": { - "dev-master": "2.4-dev" } }, "autoload": { @@ -5562,7 +5807,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.4.3" + "source": "https://github.com/guzzle/psr7/tree/2.6.2" }, "funding": [ { @@ -5578,7 +5823,7 @@ "type": "tidelift" } ], - "time": "2022-10-26T14:07:24+00:00" + "time": "2023-12-03T20:05:35+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -5690,16 +5935,16 @@ }, { "name": "laravel/sanctum", - "version": "v3.2.1", + "version": "v3.3.3", "source": { "type": "git", "url": "https://github.com/laravel/sanctum.git", - "reference": "d09d69bac55708fcd4a3b305d760e673d888baf9" + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/d09d69bac55708fcd4a3b305d760e673d888baf9", - "reference": "d09d69bac55708fcd4a3b305d760e673d888baf9", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/8c104366459739f3ada0e994bcd3e6fd681ce3d5", + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5", "shasum": "" }, "require": { @@ -5712,8 +5957,9 @@ }, "require-dev": { "mockery/mockery": "^1.0", - "orchestra/testbench": "^7.0|^8.0", - "phpunit/phpunit": "^9.3" + "orchestra/testbench": "^7.28.2|^8.8.3", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.6" }, "type": "library", "extra": { @@ -5751,42 +5997,40 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2023-01-13T15:41:49+00:00" + "time": "2023-12-19T18:44:48+00:00" }, { "name": "laravel/tinker", - "version": "v2.8.0", + "version": "v2.9.0", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "74d0b287cc4ae65d15c368dd697aae71d62a73ad" + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/74d0b287cc4ae65d15c368dd697aae71d62a73ad", - "reference": "74d0b287cc4ae65d15c368dd697aae71d62a73ad", + "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", "php": "^7.2.5|^8.0", - "psy/psysh": "^0.10.4|^0.11.1", - "symfony/var-dumper": "^4.3.4|^5.0|^6.0" + "psy/psysh": "^0.11.1|^0.12.0", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" }, "require-dev": { "mockery/mockery": "~1.3.3|^1.4.2", + "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^8.5.8|^9.3.3" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0)." + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, "laravel": { "providers": [ "Laravel\\Tinker\\TinkerServiceProvider" @@ -5817,44 +6061,44 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.8.0" + "source": "https://github.com/laravel/tinker/tree/v2.9.0" }, - "time": "2023-01-10T18:03:30+00:00" + "time": "2024-01-04T16:10:04+00:00" }, { "name": "mockery/mockery", - "version": "1.5.1", + "version": "1.6.7", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e" + "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/e92dcc83d5a51851baf5f5591d32cb2b16e3684e", - "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e", + "url": "https://api.github.com/repos/mockery/mockery/zipball/0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", + "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", "shasum": "" }, "require": { "hamcrest/hamcrest-php": "^2.0.1", "lib-pcre": ">=7.0", - "php": "^7.3 || ^8.0" + "php": ">=7.3" }, "conflict": { "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.3" + "phpunit/phpunit": "^8.5 || ^9.6.10", + "symplify/easy-coding-standard": "^12.0.8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, "autoload": { - "psr-0": { - "Mockery": "library/" + "files": [ + "library/helpers.php", + "library/Mockery.php" + ], + "psr-4": { + "Mockery\\": "library/Mockery" } }, "notification-url": "https://packagist.org/downloads/", @@ -5865,12 +6109,20 @@ { "name": "Pádraic Brady", "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" + "homepage": "https://github.com/padraic", + "role": "Author" }, { "name": "Dave Marshall", "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "http://davedevelopment.co.uk" + "homepage": "https://davedevelopment.co.uk", + "role": "Developer" + }, + { + "name": "Nathanael Esayeas", + "email": "nathanael.esayeas@protonmail.com", + "homepage": "https://github.com/ghostwriter", + "role": "Lead Developer" } ], "description": "Mockery is a simple yet flexible PHP mock object framework", @@ -5888,23 +6140,26 @@ "testing" ], "support": { + "docs": "https://docs.mockery.io/", "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/1.5.1" + "rss": "https://github.com/mockery/mockery/releases.atom", + "security": "https://github.com/mockery/mockery/security/advisories", + "source": "https://github.com/mockery/mockery" }, - "time": "2022-09-07T15:32:08+00:00" + "time": "2023-12-10T02:24:34+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.11.0", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", "shasum": "" }, "require": { @@ -5942,7 +6197,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" }, "funding": [ { @@ -5950,29 +6205,31 @@ "type": "tidelift" } ], - "time": "2022-03-03T13:19:32+00:00" + "time": "2023-03-08T13:26:56+00:00" }, { "name": "nikic/php-parser", - "version": "v4.15.3", + "version": "v5.0.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039" + "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/570e980a201d8ed0236b0a62ddf2c9cbb2034039", - "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc", + "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.4" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "bin": [ "bin/php-parse" @@ -5980,7 +6237,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -6004,9 +6261,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.3" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0" }, - "time": "2023-01-16T22:05:37+00:00" + "time": "2024-01-07T17:17:35+00:00" }, { "name": "phar-io/manifest", @@ -6121,23 +6378,23 @@ }, { "name": "phpunit/php-code-coverage", - "version": "10.0.0", + "version": "10.1.11", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "bf4fbc9c13af7da12b3ea807574fb460f255daba" + "reference": "78c3b7625965c2513ee96569a4dbb62601784145" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/bf4fbc9c13af7da12b3ea807574fb460f255daba", - "reference": "bf4fbc9c13af7da12b3ea807574fb460f255daba", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145", + "reference": "78c3b7625965c2513ee96569a4dbb62601784145", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.14", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1", "phpunit/php-file-iterator": "^4.0", "phpunit/php-text-template": "^3.0", @@ -6149,16 +6406,16 @@ "theseer/tokenizer": "^1.2.0" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^10.1" }, "suggest": { - "ext-pcov": "*", - "ext-xdebug": "*" + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "10.0-dev" + "dev-main": "10.1-dev" } }, "autoload": { @@ -6186,7 +6443,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.0.0" + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.11" }, "funding": [ { @@ -6194,20 +6452,20 @@ "type": "github" } ], - "time": "2023-02-03T07:14:34+00:00" + "time": "2023-12-21T15:38:30+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "4.0.0", + "version": "4.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "7d66d4e816d34e90acec9db9d8d94b5cfbfe926f" + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/7d66d4e816d34e90acec9db9d8d94b5cfbfe926f", - "reference": "7d66d4e816d34e90acec9db9d8d94b5cfbfe926f", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", "shasum": "" }, "require": { @@ -6246,7 +6504,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.0.0" + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0" }, "funding": [ { @@ -6254,7 +6513,7 @@ "type": "github" } ], - "time": "2023-02-03T06:55:11+00:00" + "time": "2023-08-31T06:24:48+00:00" }, { "name": "phpunit/php-invoker", @@ -6321,16 +6580,16 @@ }, { "name": "phpunit/php-text-template", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "9f3d3709577a527025f55bcf0f7ab8052c8bb37d" + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/9f3d3709577a527025f55bcf0f7ab8052c8bb37d", - "reference": "9f3d3709577a527025f55bcf0f7ab8052c8bb37d", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", "shasum": "" }, "require": { @@ -6368,7 +6627,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.0" + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1" }, "funding": [ { @@ -6376,7 +6636,7 @@ "type": "github" } ], - "time": "2023-02-03T06:56:46+00:00" + "time": "2023-08-31T14:07:24+00:00" }, { "name": "phpunit/php-timer", @@ -6439,16 +6699,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.0.5", + "version": "10.5.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "5f4a775285c6401693cee39876f3ba764d42cb24" + "reference": "50b8e314b6d0dd06521dc31d1abffa73f25f850c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5f4a775285c6401693cee39876f3ba764d42cb24", - "reference": "5f4a775285c6401693cee39876f3ba764d42cb24", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/50b8e314b6d0dd06521dc31d1abffa73f25f850c", + "reference": "50b8e314b6d0dd06521dc31d1abffa73f25f850c", "shasum": "" }, "require": { @@ -6462,7 +6722,7 @@ "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=8.1", - "phpunit/php-code-coverage": "^10.0", + "phpunit/php-code-coverage": "^10.1.5", "phpunit/php-file-iterator": "^4.0", "phpunit/php-invoker": "^4.0", "phpunit/php-text-template": "^3.0", @@ -6472,15 +6732,15 @@ "sebastian/comparator": "^5.0", "sebastian/diff": "^5.0", "sebastian/environment": "^6.0", - "sebastian/exporter": "^5.0", - "sebastian/global-state": "^6.0", + "sebastian/exporter": "^5.1", + "sebastian/global-state": "^6.0.1", "sebastian/object-enumerator": "^5.0", "sebastian/recursion-context": "^5.0", "sebastian/type": "^4.0", "sebastian/version": "^4.0" }, "suggest": { - "ext-soap": "*" + "ext-soap": "To be able to generate mocks based on WSDL files" }, "bin": [ "phpunit" @@ -6488,7 +6748,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.0-dev" + "dev-main": "10.5-dev" } }, "autoload": { @@ -6519,7 +6779,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.0.5" + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.10" }, "funding": [ { @@ -6535,29 +6796,29 @@ "type": "tidelift" } ], - "time": "2023-02-07T06:06:01+00:00" + "time": "2024-02-04T09:07:51+00:00" }, { "name": "psy/psysh", - "version": "v0.11.12", + "version": "v0.12.0", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "52cb7c47d403c31c0adc9bf7710fc355f93c20f7" + "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/52cb7c47d403c31c0adc9bf7710fc355f93c20f7", - "reference": "52cb7c47d403c31c0adc9bf7710fc355f93c20f7", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/750bf031a48fd07c673dbe3f11f72362ea306d0d", + "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d", "shasum": "" }, "require": { "ext-json": "*", "ext-tokenizer": "*", - "nikic/php-parser": "^4.0 || ^3.1", - "php": "^8.0 || ^7.0.8", - "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4" + "nikic/php-parser": "^5.0 || ^4.0", + "php": "^8.0 || ^7.4", + "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" }, "conflict": { "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" @@ -6568,8 +6829,7 @@ "suggest": { "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", "ext-pdo-sqlite": "The doc command requires SQLite to work.", - "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." }, "bin": [ "bin/psysh" @@ -6577,7 +6837,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "0.11.x-dev" + "dev-main": "0.12.x-dev" + }, + "bamarni-bin": { + "bin-links": false, + "forward-command": false } }, "autoload": { @@ -6609,9 +6873,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.12" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.0" }, - "time": "2023-01-29T21:24:40+00:00" + "time": "2023-12-20T15:28:09+00:00" }, { "name": "ralouphie/getallheaders", @@ -6826,16 +7090,16 @@ }, { "name": "sebastian/comparator", - "version": "5.0.0", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "72f01e6586e0caf6af81297897bd112eb7e9627c" + "reference": "2db5010a484d53ebf536087a70b4a5423c102372" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/72f01e6586e0caf6af81297897bd112eb7e9627c", - "reference": "72f01e6586e0caf6af81297897bd112eb7e9627c", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372", + "reference": "2db5010a484d53ebf536087a70b4a5423c102372", "shasum": "" }, "require": { @@ -6846,7 +7110,7 @@ "sebastian/exporter": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^10.3" }, "type": "library", "extra": { @@ -6890,7 +7154,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.0" + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1" }, "funding": [ { @@ -6898,24 +7163,24 @@ "type": "github" } ], - "time": "2023-02-03T07:07:16+00:00" + "time": "2023-08-14T13:18:12+00:00" }, { "name": "sebastian/complexity", - "version": "3.0.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "e67d240970c9dc7ea7b2123a6d520e334dd61dc6" + "reference": "68ff824baeae169ec9f2137158ee529584553799" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/e67d240970c9dc7ea7b2123a6d520e334dd61dc6", - "reference": "e67d240970c9dc7ea7b2123a6d520e334dd61dc6", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", + "reference": "68ff824baeae169ec9f2137158ee529584553799", "shasum": "" }, "require": { - "nikic/php-parser": "^4.10", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1" }, "require-dev": { @@ -6924,7 +7189,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "3.2-dev" } }, "autoload": { @@ -6947,7 +7212,8 @@ "homepage": "https://github.com/sebastianbergmann/complexity", "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/3.0.0" + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" }, "funding": [ { @@ -6955,20 +7221,20 @@ "type": "github" } ], - "time": "2023-02-03T06:59:47+00:00" + "time": "2023-12-21T08:37:17+00:00" }, { "name": "sebastian/diff", - "version": "5.0.0", + "version": "5.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "70dd1b20bc198da394ad542e988381b44e64e39f" + "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/70dd1b20bc198da394ad542e988381b44e64e39f", - "reference": "70dd1b20bc198da394ad542e988381b44e64e39f", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f", + "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f", "shasum": "" }, "require": { @@ -6981,7 +7247,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -7013,7 +7279,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/5.0.0" + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0" }, "funding": [ { @@ -7021,20 +7288,20 @@ "type": "github" } ], - "time": "2023-02-03T07:00:31+00:00" + "time": "2023-12-22T10:55:06+00:00" }, { "name": "sebastian/environment", - "version": "6.0.0", + "version": "6.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "b6f3694c6386c7959915a0037652e0c40f6f69cc" + "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/b6f3694c6386c7959915a0037652e0c40f6f69cc", - "reference": "b6f3694c6386c7959915a0037652e0c40f6f69cc", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951", + "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951", "shasum": "" }, "require": { @@ -7076,7 +7343,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/6.0.0" + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1" }, "funding": [ { @@ -7084,20 +7352,20 @@ "type": "github" } ], - "time": "2023-02-03T07:03:04+00:00" + "time": "2023-04-11T05:39:26+00:00" }, { "name": "sebastian/exporter", - "version": "5.0.0", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0" + "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0", - "reference": "f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc", + "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc", "shasum": "" }, "require": { @@ -7111,7 +7379,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -7153,7 +7421,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/5.0.0" + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1" }, "funding": [ { @@ -7161,20 +7430,20 @@ "type": "github" } ], - "time": "2023-02-03T07:06:49+00:00" + "time": "2023-09-24T13:22:09+00:00" }, { "name": "sebastian/global-state", - "version": "6.0.0", + "version": "6.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "aab257c712de87b90194febd52e4d184551c2d44" + "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/aab257c712de87b90194febd52e4d184551c2d44", - "reference": "aab257c712de87b90194febd52e4d184551c2d44", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4", + "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4", "shasum": "" }, "require": { @@ -7214,7 +7483,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.0" + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1" }, "funding": [ { @@ -7222,24 +7492,24 @@ "type": "github" } ], - "time": "2023-02-03T07:07:38+00:00" + "time": "2023-07-19T07:19:23+00:00" }, { "name": "sebastian/lines-of-code", - "version": "2.0.0", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "17c4d940ecafb3d15d2cf916f4108f664e28b130" + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/17c4d940ecafb3d15d2cf916f4108f664e28b130", - "reference": "17c4d940ecafb3d15d2cf916f4108f664e28b130", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", "shasum": "" }, "require": { - "nikic/php-parser": "^4.10", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1" }, "require-dev": { @@ -7271,7 +7541,8 @@ "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.0" + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" }, "funding": [ { @@ -7279,7 +7550,7 @@ "type": "github" } ], - "time": "2023-02-03T07:08:02+00:00" + "time": "2023-12-21T08:38:20+00:00" }, { "name": "sebastian/object-enumerator", @@ -7567,16 +7838,16 @@ }, { "name": "theseer/tokenizer", - "version": "1.2.1", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", "shasum": "" }, "require": { @@ -7605,7 +7876,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + "source": "https://github.com/theseer/tokenizer/tree/1.2.2" }, "funding": [ { @@ -7613,7 +7884,7 @@ "type": "github" } ], - "time": "2021-07-28T10:34:58+00:00" + "time": "2023-11-20T00:12:19+00:00" } ], "aliases": [], @@ -7625,5 +7896,5 @@ "php": ">=8.0" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } diff --git a/data/deltat.csv b/data/deltat.csv index e0a860f..f4d1bcc 100644 --- a/data/deltat.csv +++ b/data/deltat.csv @@ -1,3 +1,4 @@ +2024,69.18 2023,69.20 2022,69.29 2021,69.36 diff --git a/data/deltat.xlsx b/data/deltat.xlsx index ac50371e962efdcb0316a6d02d6d9928cc982668..7a1bc5455a181e78100aa2110a5fbebf7989c408 100644 GIT binary patch delta 14999 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 diff --git a/docs/deltat.png b/docs/deltat.png index 7e20742a485277780959df53db27773b99baae21..f1d196c8b9f6d6e3af7fd0483b33d87045f3b56c 100644 GIT binary patch literal 58520 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 G-G2g#%PGeI From c3c207df10673c94859fee2ce1b9cb168f806fac Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Tue, 6 Feb 2024 13:21:45 +0000 Subject: [PATCH 2/2] Apply fixes from StyleCI --- .../AstronomyLibrary/AstronomyLibrary.php | 79 +++--- .../Commands/UpdateOrbitalElements.php | 44 +-- .../AstronomyLibrary/Console/Kernel.php | 2 +- .../Coordinates/Coordinate.php | 19 +- .../Coordinates/EclipticalCoordinates.php | 25 +- .../Coordinates/EquatorialCoordinates.php | 214 +++++++-------- .../Coordinates/GalacticCoordinates.php | 14 +- .../Coordinates/GeographicalCoordinates.php | 17 +- .../Coordinates/HorizontalCoordinates.php | 29 +- .../Coordinates/RectangularCoordinates.php | 15 +- .../Imports/ConstellationBoundariesImport.php | 3 +- .../AstronomyLibrary/Imports/DeltaTImport.php | 3 +- src/deepskylog/AstronomyLibrary/Magnitude.php | 36 ++- .../AstronomyLibrary/Targets/Earth.php | 19 +- .../AstronomyLibrary/Targets/Elliptic.php | 60 ++-- .../AstronomyLibrary/Targets/Jupiter.php | 35 +-- .../AstronomyLibrary/Targets/Mars.php | 35 +-- .../AstronomyLibrary/Targets/Mercury.php | 53 ++-- .../AstronomyLibrary/Targets/Moon.php | 38 ++- .../Targets/NearParabolic.php | 18 +- .../AstronomyLibrary/Targets/Neptune.php | 35 +-- .../AstronomyLibrary/Targets/Parabolic.php | 20 +- .../AstronomyLibrary/Targets/Planet.php | 27 +- .../AstronomyLibrary/Targets/Saturn.php | 43 ++- .../AstronomyLibrary/Targets/Sun.php | 54 ++-- .../AstronomyLibrary/Targets/Target.php | 256 ++++++++---------- .../AstronomyLibrary/Targets/Uranus.php | 35 +-- .../AstronomyLibrary/Targets/Venus.php | 45 ++- src/deepskylog/AstronomyLibrary/Time.php | 124 ++++----- tests/Unit/ContrastTest.php | 4 + tests/Unit/EclipticalCoordinatesTest.php | 4 + tests/Unit/GalacticCoordinatesTest.php | 4 + tests/Unit/GeographicalCoordinatesTest.php | 4 + tests/Unit/HorizontalCoordinatesTest.php | 4 + tests/Unit/MagnitudeTest.php | 4 + tests/Unit/TargetTest.php | 4 + tests/Unit/TimeTest.php | 4 + 37 files changed, 680 insertions(+), 749 deletions(-) diff --git a/src/deepskylog/AstronomyLibrary/AstronomyLibrary.php b/src/deepskylog/AstronomyLibrary/AstronomyLibrary.php index f59504b..0ff218f 100644 --- a/src/deepskylog/AstronomyLibrary/AstronomyLibrary.php +++ b/src/deepskylog/AstronomyLibrary/AstronomyLibrary.php @@ -5,8 +5,10 @@ * PHP Version 8 * * @category AstronomyLibrary + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -26,8 +28,10 @@ * PHP Version 8 * * @category AstronomyLibrary + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class AstronomyLibrary @@ -45,9 +49,9 @@ class AstronomyLibrary /** * The constructor. * - * @param Carbon $carbonDate The date - * @param GeographicalCoordinates $coordinates The geographical coordinates - * @param float $height The height of the location + * @param Carbon $carbonDate The date + * @param GeographicalCoordinates $coordinates The geographical coordinates + * @param float $height The height of the location */ public function __construct( Carbon $carbonDate, @@ -79,8 +83,7 @@ public function getDate(): Carbon /** * Sets the date and time. * - * @param Carbon $date The new Carbon date - * + * @param Carbon $date The new Carbon date * @return None */ public function setDate(Carbon $date): void @@ -109,8 +112,7 @@ public function getGeographicalCoordinates(): GeographicalCoordinates /** * Sets the date and time. * - * @param GeographicalCoordinates $coordinates The new geographical coordinates - * + * @param GeographicalCoordinates $coordinates The new geographical coordinates * @return None */ public function setGeographicalCoordinates( @@ -138,8 +140,7 @@ public function getHeight(): float /** * Sets the height of the location in meters. * - * @param float $height The height of the location in meters - * + * @param float $height The height of the location in meters * @return None */ public function setHeight( @@ -162,8 +163,7 @@ public function getJd(): float /** * Sets the julian day and adapt the date. * - * @param float $jd The julian day - * + * @param float $jd The julian day * @return None */ public function setJd(float $jd): void @@ -238,8 +238,7 @@ public function getNutation(): array /** * Converts from Equatorial coordinates to ecliptical coordinates. * - * @param EquatorialCoordinates $coords the equatorial coordinates to convert - * + * @param EquatorialCoordinates $coords the equatorial coordinates to convert * @return EclipticalCoordinates the ecliptical coordinates for J2000 */ public function equatorialToEcliptical( @@ -251,8 +250,7 @@ public function equatorialToEcliptical( /** * Converts from Ecliptical coordinates to Equatorial coordinates. * - * @param EclipticalCoordinates $coords the ecliptical coordinates to convert - * + * @param EclipticalCoordinates $coords the ecliptical coordinates to convert * @return EquatorialCoordinates The equatorial coordinates in J2000 */ public function eclipticalToEquatorial( @@ -264,8 +262,7 @@ public function eclipticalToEquatorial( /** * Converts from Equatorial coordinates to horizontal coordinates. * - * @param EquatorialCoordinates $coords the equatorial coordinates to convert - * + * @param EquatorialCoordinates $coords the equatorial coordinates to convert * @return HorizontalCoordinates the horizontal coordinates for the date and * location */ @@ -283,8 +280,7 @@ public function equatorialToHorizontal( * negative before and positive after the passage throught the southern * meridian. This is the effect of the moon that is lying down at moonrise. * - * @param EquatorialCoordinates $coords The coordinates of the object - * + * @param EquatorialCoordinates $coords The coordinates of the object * @return float the parallactic angle in degrees */ public function parallacticAngle(EquatorialCoordinates $coords): float @@ -298,8 +294,7 @@ public function parallacticAngle(EquatorialCoordinates $coords): float /** * Converts from Horizontal coordinates to Equatorial coordinates. * - * @param HorizontalCoordinates $coords the horizontal coordinates to convert - * + * @param HorizontalCoordinates $coords the horizontal coordinates to convert * @return EquatorialCoordinates The equatorial coordinates */ public function horizontalToEquatorial( @@ -314,8 +309,7 @@ public function horizontalToEquatorial( /** * Converts from Equatorial coordinates to Galactic coordinates. * - * @param EquatorialCoordinates $coords the equatorial coordinates to convert - * + * @param EquatorialCoordinates $coords the equatorial coordinates to convert * @return GalacticCoordinates The galactic coordinates (J2000) */ public function equatorialToGalactic( @@ -327,8 +321,7 @@ public function equatorialToGalactic( /** * Converts from Galactic coordinates to Equatorial coordinates. * - * @param GalacticCoordinates $coords the galactic coordinates to convert - * + * @param GalacticCoordinates $coords the galactic coordinates to convert * @return EquatorialCoordinates The equatorial coordinates */ public function galacticToEquatorial( @@ -340,8 +333,7 @@ public function galacticToEquatorial( /** * Creates a chart with the length of the year during the year. * - * @param string $timezone the timezone to create the graph for - * + * @param string $timezone the timezone to create the graph for * @return string The chart with the length of the night */ public function getLengthOfNightPlot($timezone): string @@ -687,7 +679,7 @@ public function getLengthOfNightPlot($timezone): string } // Date line $red = imagecolorallocate($image, 255, 0, 0); - $datelocation = 2 * ($this->getDate()->dayOfYear); + $datelocation = 2 * $this->getDate()->dayOfYear; imageline($image, $datelocation + 70, 5, $datelocation + 70, 365, $red); imageline($image, 802, 365, 802, 355, $axiscolor); @@ -731,12 +723,11 @@ public function getLengthOfNightPlot($timezone): string * Returns true if the three bodies are in a straight line. * Chapter 19 of Astronomical Algorithms. * - * @param EquatorialCoordinates $coords1 The coordinates of the first object - * @param EquatorialCoordinates $coords2 The coordinates of the second object - * @param EquatorialCoordinates $coords3 The coordinates of the thirds object - * @param float $threshold The threshold for the method - * (default value is 10e-06) - * + * @param EquatorialCoordinates $coords1 The coordinates of the first object + * @param EquatorialCoordinates $coords2 The coordinates of the second object + * @param EquatorialCoordinates $coords3 The coordinates of the thirds object + * @param float $threshold The threshold for the method + * (default value is 10e-06) * @return bool True if the three bodies are in a straight line */ public function isInStraightLine( @@ -752,10 +743,9 @@ public function isInStraightLine( * Returns the deviation from a straight line. * Chapter 19 of Astronomical Algorithms. * - * @param EquatorialCoordinates $coords1 The coordinates of the first object - * @param EquatorialCoordinates $coords2 The coordinates of the first object - * @param EquatorialCoordinates $coords3 The coordinates of the second object - * + * @param EquatorialCoordinates $coords1 The coordinates of the first object + * @param EquatorialCoordinates $coords2 The coordinates of the first object + * @param EquatorialCoordinates $coords3 The coordinates of the second object * @return Coordinate the deviation from the straight line */ public function deviationFromStraightLine( @@ -770,10 +760,9 @@ public function deviationFromStraightLine( * Returns the smallest circle containing three celestial bodies. * Chapter 20 of Astronomical Algorithms. * - * @param EquatorialCoordinates $coords1 The coordinates of the first object - * @param EquatorialCoordinates $coords2 The coordinates of the second object - * @param EquatorialCoordinates $coords3 The coordinates of the third object - * + * @param EquatorialCoordinates $coords1 The coordinates of the first object + * @param EquatorialCoordinates $coords2 The coordinates of the second object + * @param EquatorialCoordinates $coords3 The coordinates of the third object * @return Coordinate the diameter of the smallest circle */ public function smallestCircle( @@ -787,8 +776,7 @@ public function smallestCircle( /** * Returns the apparent place of a star. * - * @param EquatorialCoordinates $coords The coordinates to start with - * + * @param EquatorialCoordinates $coords The coordinates to start with * @return EquatorialCoordinates The apparent place for the star */ public function apparentPlace( @@ -801,8 +789,7 @@ public function apparentPlace( * Returns rhoSinPhi and rhoCosPhi. * Needed for the calculation of the parallax. * - * @param float $height The height of the location - * + * @param float $height The height of the location * @return array with rhoSinPhi and rhoCosPhi * * See Chapter 11 of Astronomical Algorithms diff --git a/src/deepskylog/AstronomyLibrary/Commands/UpdateOrbitalElements.php b/src/deepskylog/AstronomyLibrary/Commands/UpdateOrbitalElements.php index cdd80bf..b1129a8 100644 --- a/src/deepskylog/AstronomyLibrary/Commands/UpdateOrbitalElements.php +++ b/src/deepskylog/AstronomyLibrary/Commands/UpdateOrbitalElements.php @@ -71,15 +71,15 @@ public function handle() if ($name != '') { CometsOrbitalElements::create( [ - 'name' => $name, - 'epoch' => $epoch, - 'q' => $q, - 'e' => $e, - 'i' => $i, - 'w' => $w, - 'node' => $node, - 'Tp' => $Tp, - 'ref' => $ref, + 'name' => $name, + 'epoch' => $epoch, + 'q' => $q, + 'e' => $e, + 'i' => $i, + 'w' => $w, + 'node' => $node, + 'Tp' => $Tp, + 'ref' => $ref, ] ); } @@ -127,19 +127,19 @@ public function handle() if ($name != '') { AsteroidsOrbitalElements::create( [ - 'number' => $number, - 'name' => $name, - 'epoch' => $epoch, - 'a' => $a, - 'e' => $e, - 'i' => $i, - 'w' => $w, - 'node' => $node, - 'M' => $M, - 'H' => $H, - 'G' => $G, - 'Tp' => $Tp, - 'ref' => $ref, + 'number' => $number, + 'name' => $name, + 'epoch' => $epoch, + 'a' => $a, + 'e' => $e, + 'i' => $i, + 'w' => $w, + 'node' => $node, + 'M' => $M, + 'H' => $H, + 'G' => $G, + 'Tp' => $Tp, + 'ref' => $ref, ] ); } diff --git a/src/deepskylog/AstronomyLibrary/Console/Kernel.php b/src/deepskylog/AstronomyLibrary/Console/Kernel.php index 1734835..e62dce0 100644 --- a/src/deepskylog/AstronomyLibrary/Console/Kernel.php +++ b/src/deepskylog/AstronomyLibrary/Console/Kernel.php @@ -10,7 +10,7 @@ class Kernel extends ConsoleKernel /** * Define laravel-astronomy-library's command schedule. * - * @param \Illuminate\Console\Scheduling\Schedule $schedule The schedule + * @param \Illuminate\Console\Scheduling\Schedule $schedule The schedule */ protected function schedule(Schedule $schedule) { diff --git a/src/deepskylog/AstronomyLibrary/Coordinates/Coordinate.php b/src/deepskylog/AstronomyLibrary/Coordinates/Coordinate.php index 285a3aa..2ea3a8b 100644 --- a/src/deepskylog/AstronomyLibrary/Coordinates/Coordinate.php +++ b/src/deepskylog/AstronomyLibrary/Coordinates/Coordinate.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Coordinates + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -19,8 +21,10 @@ * PHP Version 8 * * @category Coordinates + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class Coordinate @@ -32,9 +36,9 @@ class Coordinate /** * The constructor. * - * @param float $coordinate The coordinate - * @param float $minValue The minimum value for the coordinate - * @param float $maxValue The maximum value for the coordinate + * @param float $coordinate The coordinate + * @param float $minValue The minimum value for the coordinate + * @param float $maxValue The maximum value for the coordinate */ public function __construct( float $coordinate, @@ -50,8 +54,7 @@ public function __construct( /** * Set the coordinate. * - * @param float $coord the coordinate to set - * + * @param float $coord the coordinate to set * @return None */ public function setCoordinate(float $coord): void @@ -185,8 +188,7 @@ public function convertToShortHours(): string /** * Sets the minimum valid value for the coordinate. * - * @param float $minValue The minimum valid value - * + * @param float $minValue The minimum valid value * @return None */ public function setMinValue(float $minValue): void @@ -197,8 +199,7 @@ public function setMinValue(float $minValue): void /** * Sets the maximum valid value for the first coordinate. * - * @param float $maxValue The maximum valid value - * + * @param float $maxValue The maximum valid value * @return None */ public function setMaxValue(float $maxValue): void diff --git a/src/deepskylog/AstronomyLibrary/Coordinates/EclipticalCoordinates.php b/src/deepskylog/AstronomyLibrary/Coordinates/EclipticalCoordinates.php index 57bdd8f..b586427 100644 --- a/src/deepskylog/AstronomyLibrary/Coordinates/EclipticalCoordinates.php +++ b/src/deepskylog/AstronomyLibrary/Coordinates/EclipticalCoordinates.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Coordinates + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -22,8 +24,10 @@ * PHP Version 8 * * @category Coordinates + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class EclipticalCoordinates @@ -35,9 +39,9 @@ class EclipticalCoordinates /** * The constructor. * - * @param float $longitude The ecliptical longitude (0, 360) - * @param float $latitude The ecliptical latitude (-90, 90) - * @param float $epoch The epoch of the target (2000.0 is standard) + * @param float $longitude The ecliptical longitude (0, 360) + * @param float $latitude The ecliptical latitude (-90, 90) + * @param float $epoch The epoch of the target (2000.0 is standard) */ public function __construct( float $longitude, @@ -52,8 +56,7 @@ public function __construct( /** * Sets the ecliptical longitude. * - * @param float $longitude The ecliptical longitude - * + * @param float $longitude The ecliptical longitude * @return None */ public function setLongitude(float $longitude): void @@ -64,8 +67,7 @@ public function setLongitude(float $longitude): void /** * Sets the ecliptical latitude. * - * @param float $latitude The ecliptical latitude - * + * @param float $latitude The ecliptical latitude * @return None */ public function setLatitude(float $latitude): void @@ -76,8 +78,7 @@ public function setLatitude(float $latitude): void /** * Sets the epoch. * - * @param float $epoch The epoch - * + * @param float $epoch The epoch * @return None */ public function setEpoch(float $epoch): void @@ -141,8 +142,7 @@ public function printLatitude(): string * Converts the ecliptical coordinates to equatorial coordinates. * Chapter 13 of Astronomical Algorithms. * - * @param float $nutObliquity The nutation in obliquity - * + * @param float $nutObliquity The nutation in obliquity * @return EquatorialCoordinates The equatorial coordinates */ public function convertToEquatorial(float $nutObliquity): EquatorialCoordinates @@ -198,8 +198,7 @@ public function convertToEquatorialB1950(): EquatorialCoordinates * Returns the precession: the coordinates for another epoch and equinox. * Chapter 21 of Astronomical Algorithms. * - * @param Carbon $date The date for the new equinox - * + * @param Carbon $date The date for the new equinox * @return EclipticalCoordinates the precessed coordinates */ public function precessionHighAccuracy(Carbon $date): EclipticalCoordinates diff --git a/src/deepskylog/AstronomyLibrary/Coordinates/EquatorialCoordinates.php b/src/deepskylog/AstronomyLibrary/Coordinates/EquatorialCoordinates.php index 0eb6184..cb61e25 100644 --- a/src/deepskylog/AstronomyLibrary/Coordinates/EquatorialCoordinates.php +++ b/src/deepskylog/AstronomyLibrary/Coordinates/EquatorialCoordinates.php @@ -42,11 +42,11 @@ class EquatorialCoordinates /** * The constructor. * - * @param float $ra The right ascension (0, 24) + * @param float $ra The right ascension (0, 24) * @param float ination The declination (-90, 90) - * @param float $epoch The epoch of the target (2000.0 is standard) - * @param float $deltaRA The proper motion in Right Ascension in seconds/year - * @param float $deltaDec The proper motion in declination in ''/year + * @param float $epoch The epoch of the target (2000.0 is standard) + * @param float $deltaRA The proper motion in Right Ascension in seconds/year + * @param float $deltaDec The proper motion in declination in ''/year */ public function __construct( float $ra, @@ -65,8 +65,7 @@ public function __construct( /** * Sets the right ascension. * - * @param float $ra The right ascension - * + * @param float $ra The right ascension * @return None */ public function setRA(float $ra): void @@ -77,8 +76,7 @@ public function setRA(float $ra): void /** * Sets the declination. * - * @param float $declination The declination - * + * @param float $declination The declination * @return None */ public function setDeclination(float $declination): void @@ -89,8 +87,7 @@ public function setDeclination(float $declination): void /** * Sets the epoch. * - * @param float $epoch The epoch - * + * @param float $epoch The epoch * @return None */ public function setEpoch(float $epoch): void @@ -101,8 +98,7 @@ public function setEpoch(float $epoch): void /** * Sets the proper motion in RA. * - * @param float $deltaRA the proper motion in RA is seconds/year - * + * @param float $deltaRA the proper motion in RA is seconds/year * @return None */ public function setDeltaRA(float $deltaRA): void @@ -113,8 +109,7 @@ public function setDeltaRA(float $deltaRA): void /** * Sets the proper motion in declination. * - * @param float $deltaDec the proper motion in declination in ''/year - * + * @param float $deltaDec the proper motion in declination in ''/year * @return None */ public function setDeltaDec(float $deltaDec): void @@ -199,8 +194,7 @@ public function printRA(): string * the current equinox. * Chapter 13 of Astronomical Algorithms. * - * @param float $nutObliquity The nutation in obliquity - * + * @param float $nutObliquity The nutation in obliquity * @return EclipticalCoordinates The ecliptical coordinates */ public function convertToEcliptical(float $nutObliquity): EclipticalCoordinates @@ -256,10 +250,9 @@ public function convertToEclipticalB1950(): EclipticalCoordinates * Converts the equatorial coordinates to local horizontal coordinates. * Chapter 13 of Astronomical Algorithms. * - * @param GeographicalCoordinates $geo_coords the geographical + * @param GeographicalCoordinates $geo_coords the geographical * coordinates - * @param Carbon $siderial_time the local siderial time - * + * @param Carbon $siderial_time the local siderial time * @return HorizontalCoordinates The horizontal coordinates */ public function convertToHorizontal( @@ -329,10 +322,9 @@ public function convertToGalactic(): GalacticCoordinates * meridian. This is the effect of the moon that is lying down at moonrise. * Chapter 14 of Astronomical Algorithms. * - * @param GeographicalCoordinates $geo_coords the geographical + * @param GeographicalCoordinates $geo_coords the geographical * coordinates - * @param Carbon $siderial_time the local siderial time - * + * @param Carbon $siderial_time the local siderial time * @return float The parallactic angle q */ public function getParallacticAngle( @@ -358,8 +350,7 @@ public function getParallacticAngle( /** * Returns the local hour angle. * - * @param Carbon $siderial_time The siderial time - * + * @param Carbon $siderial_time The siderial time * @return float the local hour angle */ public function getHourAngle(Carbon $siderial_time): float @@ -377,8 +368,7 @@ public function getHourAngle(Carbon $siderial_time): float * equatorial coordinates. * Chapter 17 of Astronomical Algorithms. * - * @param EquatorialCoordinates $coords2 the coordinates of the second object - * + * @param EquatorialCoordinates $coords2 the coordinates of the second object * @return Coordinate The angular separation between the two objects */ public function angularSeparation( @@ -426,11 +416,10 @@ public function angularSeparation( * Returns true if the three bodies are in a straight line. * Chapter 19 of Astronomical Algorithms. * - * @param EquatorialCoordinates $coords2 The coordinates of the second object - * @param EquatorialCoordinates $coords3 The coordinates of the thirds object - * @param float $threshold The threshold for the method - * (default value is 10e-06) - * + * @param EquatorialCoordinates $coords2 The coordinates of the second object + * @param EquatorialCoordinates $coords3 The coordinates of the thirds object + * @param float $threshold The threshold for the method + * (default value is 10e-06) * @return bool True if the three bodies are in a straight line */ public function isInStraightLine( @@ -469,9 +458,8 @@ public function isInStraightLine( * Returns the deviation from a straight line. * Chapter 19 of Astronomical Algorithms. * - * @param EquatorialCoordinates $coords2 The coordinates of the first object - * @param EquatorialCoordinates $coords3 The coordinates of the second object - * + * @param EquatorialCoordinates $coords2 The coordinates of the first object + * @param EquatorialCoordinates $coords3 The coordinates of the second object * @return Coordinate the deviation from the straight line */ public function deviationFromStraightLine( @@ -514,9 +502,8 @@ public function deviationFromStraightLine( * Returns the smallest circle containing three celestial bodies. * Chapter 20 of Astronomical Algorithms. * - * @param EquatorialCoordinates $coords2 The coordinates of the second object - * @param EquatorialCoordinates $coords3 The coordinates of the third object - * + * @param EquatorialCoordinates $coords2 The coordinates of the second object + * @param EquatorialCoordinates $coords3 The coordinates of the third object * @return Coordinate the diameter of the smallest circle */ public function smallestCircle( @@ -550,8 +537,7 @@ public function smallestCircle( * Returns the precession: the coordinates for another epoch and equinox. * Chapter 21 of Astronomical Algorithms. * - * @param Carbon $date The date for the new equinox - * + * @param Carbon $date The date for the new equinox * @return EquatorialCoordinates the precessed coordinates */ public function precession(Carbon $date): EquatorialCoordinates @@ -593,8 +579,7 @@ public function precession(Carbon $date): EquatorialCoordinates /** * Calculate the coordinates including the proper motion. * - * @param Carbon $date The Carbon data - * + * @param Carbon $date The Carbon data * @return EquatorialCoordinates the coordinates including the proper motion for * the given date */ @@ -628,8 +613,7 @@ private function _coordinatesWithProperMotion( * Returns the precession: the coordinates for another epoch and equinox. * Chapter 21 of Astronomical Algorithms. * - * @param Carbon $date The date for the new equinox - * + * @param Carbon $date The date for the new equinox * @return EquatorialCoordinates the precessed coordinates */ public function precessionHighAccuracy( @@ -708,9 +692,8 @@ public function precessionHighAccuracy( * Returns the apparent place of a star. * Chapter 23 of Astronomical Algorithms. * - * @param Carbon $date The date for the new equinox - * @param array $nutation The nutation for the given data - * + * @param Carbon $date The date for the new equinox + * @param array $nutation The nutation for the given data * @return EquatorialCoordinates the precessed coordinates */ public function apparentPlace( @@ -744,26 +727,26 @@ public function apparentPlace( - 25 * cos($L3) + (6434 + 141 * $time_interval_starting_final) * sin(2 * $L3) + (28007 - 107 * $time_interval_starting_final) * cos(2 * $L3) - + (715) * sin($L5) - + (715) * sin($L_accent) + + 715 * sin($L5) + + 715 * sin($L_accent) + (486 - 5 * $time_interval_starting_final) * sin(3 * $L3) + (-236 - 4 * $time_interval_starting_final) * cos(3 * $L3) - + (159) * sin($L6) - + (39) * sin($L_accent + $M_accent) - + (33) * sin(2 * $L5) + + 159 * sin($L6) + + 39 * sin($L_accent + $M_accent) + + 33 * sin(2 * $L5) + (-10) * cos(2 * $L5) - + (31) * sin(2 * $L3 - $L5) - + (1) * cos(2 * $L3 - $L5) - + (8) * sin(3 * $L3 - 8 * $L4 + 3 * $L5) + + 31 * sin(2 * $L3 - $L5) + + 1 * cos(2 * $L3 - $L5) + + 8 * sin(3 * $L3 - 8 * $L4 + 3 * $L5) + (-28) * cos(3 * $L3 - 8 * $L4 + 3 * $L5) - + (8) * sin(5 * $L3 - 8 * $L4 + 3 * $L5) + + 8 * sin(5 * $L3 - 8 * $L4 + 3 * $L5) + (-28) * cos(5 * $L3 - 8 * $L4 + 3 * $L5) - + (21) * sin(2 * $L2 - $L3) + + 21 * sin(2 * $L2 - $L3) + (-19) * sin($L2) - + (17) * sin($L7) - + (16) * sin($L3 - 2 * $L5) - + (16) * sin($L8) - + (11) * sin($L3 + $L5) + + 17 * sin($L7) + + 16 * sin($L3 - 2 * $L5) + + 16 * sin($L8) + + 11 * sin($L3 + $L5) + (-1) * cos($L3 + $L5) + (-11) * cos(2 * $L2 - 2 * $L3) + (-11) * sin($L3 - $L5) @@ -775,8 +758,8 @@ public function apparentPlace( + (-9) * sin(2 * $L2 - 3 * $L3) + (-9) * cos(2 * $L6) + (-9) * cos(2 * $L2 - 4 * $L3) - + (8) * sin(3 * $L3 - 2 * $L4) - + (8) * sin($L_accent + 2 * $D - $M_accent) + + 8 * sin(3 * $L3 - 2 * $L4) + + 8 * sin($L_accent + 2 * $D - $M_accent) + (-4) * sin(8 * $L2 - 12 * $L3) + (-7) * cos(8 * $L2 - 12 * $L3) + (-4) * sin(8 * $L2 - 14 * $L3) @@ -785,60 +768,60 @@ public function apparentPlace( + (-5) * cos(2 * $L4) + (-1) * sin(3 * $L2 - 4 * $L3) + (-1) * cos(3 * $L2 - 4 * $L3) - + (4) * sin(2 * $L3 - 2 * $L5) + + 4 * sin(2 * $L3 - 2 * $L5) + (-6) * cos(2 * $L3 - 2 * $L5) + (-7) * cos(3 * $L2 - 3 * $L3) - + (5) * sin(2 * $L3 - 2 * $L4) + + 5 * sin(2 * $L3 - 2 * $L4) + (-5) * cos(2 * $L3 - 2 * $L4) - + (5) * sin($L_accent - 2 * $D); + + 5 * sin($L_accent - 2 * $D); $Y_accent = (25 - 13 * $time_interval_starting_final) * sin($L3) + (1578089 + 156 * $time_interval_starting_final) * cos($L3) + (25697 - 95 * $time_interval_starting_final) * sin(2 * $L3) + (-5904 - 130 * $time_interval_starting_final) * cos(2 * $L3) - + (6) * sin($L5) + + 6 * sin($L5) + (-657) * cos($L5) + (-656) * cos($L_accent) + (-216 - 4 * $time_interval_starting_final) * sin(3 * $L3) + (-446 - 5 * $time_interval_starting_final) * cos(3 * $L3) - + (2) * sin($L6) + + 2 * sin($L6) + (-147) * cos($L6) - + (26) * cos($F) + + 26 * cos($F) + (-36) * cos($L_accent + $M_accent) + (-9) * sin(2 * $L5) + (-30) * cos(2 * $L5) - + (1) * sin(2 * $L3 - $L5) + + 1 * sin(2 * $L3 - $L5) + (-28) * cos(2 * $L3 - $L5) - + (25) * sin(3 * $L3 - 8 * $L4 + 3 * $L5) - + (8) * cos(3 * $L3 - 8 * $L4 + 3 * $L5) + + 25 * sin(3 * $L3 - 8 * $L4 + 3 * $L5) + + 8 * cos(3 * $L3 - 8 * $L4 + 3 * $L5) + (-25) * sin(5 * $L3 - 8 * $L4 + 3 * $L5) + (-8) * cos(5 * $L3 - 8 * $L4 + 3 * $L5) + (-19) * cos(2 * $L2 - $L3) - + (17) * cos($L2) + + 17 * cos($L2) + (-16) * cos($L7) - + (15) * cos($L3 - 2 * $L5) - + (1) * sin($L8) + + 15 * cos($L3 - 2 * $L5) + + 1 * sin($L8) + (-15) * cos($L8) + (-1) * sin($L3 + $L5) + (-10) * cos($L3 + $L5) + (-10) * sin(2 * $L2 - 2 * $L3) + (-2) * sin($L3 - $L5) - + (9) * cos($L3 - $L5) + + 9 * cos($L3 - $L5) + (-8) * sin(4 * $L3) - + (6) * cos(4 * $L3) - + (9) * cos(3 * $L3 - 2 * $L5) + + 6 * cos(4 * $L3) + + 9 * cos(3 * $L3 - 2 * $L5) + (-9) * cos($L2 - 2 * $L3) + (-8) * cos(2 * $L2 - 3 * $L3) + (-8) * sin(2 * $L6) - + (8) * sin(2 * $L2 - 4 * $L3) + + 8 * sin(2 * $L2 - 4 * $L3) + (-8) * cos(3 * $L3 - 2 * $L4) + (-7) * cos($L_accent + 2 * $D - $M_accent) + (-6) * sin(8 * $L2 - 12 * $L3) - + (4) * cos(8 * $L2 - 12 * $L3) - + (6) * sin(8 * $L2 - 14 * $L3) + + 4 * cos(8 * $L2 - 12 * $L3) + + 6 * sin(8 * $L2 - 14 * $L3) + (-4) * cos(8 * $L2 - 14 * $L3) + (-4) * sin(2 * $L4) - + (5) * cos(2 * $L4) + + 5 * cos(2 * $L4) + (-2) * sin(3 * $L2 - 4 * $L3) + (-7) * cos(3 * $L2 - 4 * $L3) + (-5) * sin(2 * $L3 - 2 * $L5) @@ -864,38 +847,38 @@ public function apparentPlace( + (-5) * sin(2 * $L5) + (-13) * cos(2 * $L5) + (-12) * cos(2 * $L3 - $L5) - + (11) * sin(3 * $L3 - 8 * $L4 + 3 * $L5) - + (3) * cos(3 * $L3 - 8 * $L4 + 3 * $L5) + + 11 * sin(3 * $L3 - 8 * $L4 + 3 * $L5) + + 3 * cos(3 * $L3 - 8 * $L4 + 3 * $L5) + (-11) * sin(5 * $L3 - 8 * $L4 + 3 * $L5) + (-3) * cos(5 * $L3 - 8 * $L4 + 3 * $L5) + (-8) * cos(2 * $L2 - $L3) - + (8) * cos($L2) + + 8 * cos($L2) + (-7) * cos($L7) - + (1) * sin($L3 - 2 * $L5) - + (7) * cos($L3 - 2 * $L5) + + 1 * sin($L3 - 2 * $L5) + + 7 * cos($L3 - 2 * $L5) + (-3) * sin($L8) + (-6) * cos($L8) + (-1) * sin($L3 + $L5) + (-5) * cos($L3 + $L5) + (-4) * sin(2 * $L2 - 2 * $L3) + (-1) * sin($L3 - $L5) - + (4) * cos($L3 - $L5) + + 4 * cos($L3 - $L5) + (-3) * sin(4 * $L3) - + (3) * cos(4 * $L3) - + (4) * cos(3 * $L3 - 2 * $L5) + + 3 * cos(4 * $L3) + + 4 * cos(3 * $L3 - 2 * $L5) + (-4) * cos($L2 - 2 * $L3) + (-4) * cos(2 * $L2 - 3 * $L3) + (-3) * sin(2 * $L6) - + (3) * sin(2 * $L2 - 4 * $L3) + + 3 * sin(2 * $L2 - 4 * $L3) + (-3) * cos(3 * $L3 - 2 * $L4) + (-3) * cos($L_accent + 2 * $D - $M_accent) + (-3) * sin(8 * $L2 - 12 * $L3) - + (2) * cos(8 * $L2 - 12 * $L3) - + (3) * sin(8 * $L2 - 14 * $L3) + + 2 * cos(8 * $L2 - 12 * $L3) + + 3 * sin(8 * $L2 - 14 * $L3) + (-2) * cos(8 * $L2 - 14 * $L3) + (-2) * sin(2 * $L4) + (-2) * cos(2 * $L4) - + (1) * sin(3 * $L2 - 4 * $L3) + + 1 * sin(3 * $L2 - 4 * $L3) + (-4) * cos(3 * $L2 - 4 * $L3) + (-2) * sin(2 * $L3 - 2 * $L5) + (-2) * cos(2 * $L3 - 2 * $L5) @@ -1051,25 +1034,24 @@ public function getConstellation(): string /** * Returns the page in the astronomical atlas. * - * @param string $atlas The requested atlas. Possible atlases are - * milleniumbase : The Millenium Star Atlas - * urano : Uranometria First Edition - * urano_new : Uranometria Second Edition - * psa : The Pocket Sky Atlas - * sky : The Sky atlas - * taki : The Taki atlas - * torresB : The B atlas of Torres - * torresBC : The BC atlas of Torres - * torresC : The C atlas of Torres - * DeepskyHunter : The DeepskyHunter atlas - * Interstellarum : The Interstellarum Deep Sky Atlas (IDSA) - * DSLOP : The Overview atlas of DeepskyLog (in portrait) - * DSLLP : The Lookup atlas of DeepskyLog (in portrait) - * DSLDP : The Detail atlas of DeepskyLog (in portrait) - * DSLOL : The Overview atlas of DeepskyLog (in landscape) - * DSLLL : The Lookup atlas of DeepskyLog (in landscape) - * DSLDL : The Detail atlas of DeepskyLog (in landscape) - * + * @param string $atlas The requested atlas. Possible atlases are + * milleniumbase : The Millenium Star Atlas + * urano : Uranometria First Edition + * urano_new : Uranometria Second Edition + * psa : The Pocket Sky Atlas + * sky : The Sky atlas + * taki : The Taki atlas + * torresB : The B atlas of Torres + * torresBC : The BC atlas of Torres + * torresC : The C atlas of Torres + * DeepskyHunter : The DeepskyHunter atlas + * Interstellarum : The Interstellarum Deep Sky Atlas (IDSA) + * DSLOP : The Overview atlas of DeepskyLog (in portrait) + * DSLLP : The Lookup atlas of DeepskyLog (in portrait) + * DSLDP : The Detail atlas of DeepskyLog (in portrait) + * DSLOL : The Overview atlas of DeepskyLog (in landscape) + * DSLLL : The Lookup atlas of DeepskyLog (in landscape) + * DSLDL : The Detail atlas of DeepskyLog (in landscape) * @return string the atlas page */ public function calculateAtlasPage(string $atlas): string @@ -1143,10 +1125,10 @@ private function calculateDSL($atlastype) $page = 1; for ($i = 0; $i < count($atlaspages[$atlastype]); $i++) { if ( - ($this->getDeclination()->getCoordinate() < (90 + ((-$i) * (180 / (count($atlaspages[$atlastype])))))) - && ($this->getDeclination()->getCoordinate() >= (90 + ((-1 - $i) * (180 / (count($atlaspages[$atlastype])))))) + ($this->getDeclination()->getCoordinate() < (90 + ((-$i) * (180 / count($atlaspages[$atlastype]))))) + && ($this->getDeclination()->getCoordinate() >= (90 + ((-1 - $i) * (180 / count($atlaspages[$atlastype]))))) ) { - return $page + floor((24 - $this->getRA()->getCoordinate()) / (24 / ($atlaspages[$atlastype][$i]))); + return $page + floor((24 - $this->getRA()->getCoordinate()) / (24 / $atlaspages[$atlastype][$i])); } else { $page += $atlaspages[$atlastype][$i]; } @@ -2073,7 +2055,7 @@ private function calculateUranometriaPage() /* -84 to -73 */ elseif ($this->getDeclination()->getCoordinate() >= -84) { if (($this->getRA()->getCoordinate() >= 1.0) && ($this->getRA()->getCoordinate() < 23.0)) { - $urano = (int) ($this->getRA()->getCoordinate()) - 1; + $urano = (int) $this->getRA()->getCoordinate() - 1; $urano = $urano / 2; $urano = $urano + 461; } else { diff --git a/src/deepskylog/AstronomyLibrary/Coordinates/GalacticCoordinates.php b/src/deepskylog/AstronomyLibrary/Coordinates/GalacticCoordinates.php index 8f1a337..07b2222 100644 --- a/src/deepskylog/AstronomyLibrary/Coordinates/GalacticCoordinates.php +++ b/src/deepskylog/AstronomyLibrary/Coordinates/GalacticCoordinates.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Coordinates + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -19,8 +21,10 @@ * PHP Version 8 * * @category Coordinates + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class GalacticCoordinates @@ -31,8 +35,8 @@ class GalacticCoordinates /** * The constructor. * - * @param float $longitude The galactic longitude (0, 360) - * @param float $latitude The galactic latitude (-90, 90) + * @param float $longitude The galactic longitude (0, 360) + * @param float $latitude The galactic latitude (-90, 90) */ public function __construct(float $longitude, float $latitude) { @@ -43,8 +47,7 @@ public function __construct(float $longitude, float $latitude) /** * Sets the galactic longitude. * - * @param float $longitude The galactic longitude - * + * @param float $longitude The galactic longitude * @return None */ public function setLongitude(float $longitude): void @@ -55,8 +58,7 @@ public function setLongitude(float $longitude): void /** * Sets the galactic latitude. * - * @param float $latitude The galactic latitude - * + * @param float $latitude The galactic latitude * @return None */ public function setLatitude(float $latitude): void diff --git a/src/deepskylog/AstronomyLibrary/Coordinates/GeographicalCoordinates.php b/src/deepskylog/AstronomyLibrary/Coordinates/GeographicalCoordinates.php index 628a705..ef0b105 100644 --- a/src/deepskylog/AstronomyLibrary/Coordinates/GeographicalCoordinates.php +++ b/src/deepskylog/AstronomyLibrary/Coordinates/GeographicalCoordinates.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Coordinates + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -19,8 +21,10 @@ * PHP Version 8 * * @category Coordinates + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class GeographicalCoordinates @@ -31,8 +35,8 @@ class GeographicalCoordinates /** * The constructor. * - * @param float $longitude The geographical longitude (-180 ,180) - * @param float $latitude The geographical latitude (-90, 90) + * @param float $longitude The geographical longitude (-180 ,180) + * @param float $latitude The geographical latitude (-90, 90) */ public function __construct(float $longitude, float $latitude) { @@ -43,8 +47,7 @@ public function __construct(float $longitude, float $latitude) /** * Sets the geographical longitude. * - * @param float $longitude The geographical longitude - * + * @param float $longitude The geographical longitude * @return None */ public function setLongitude(float $longitude): void @@ -55,8 +58,7 @@ public function setLongitude(float $longitude): void /** * Sets the geographical latitude. * - * @param float $latitude The geographical latitude - * + * @param float $latitude The geographical latitude * @return None */ public function setLatitude(float $latitude): void @@ -110,8 +112,7 @@ public function printLongitude(): string * Returns rhoSinPhi and rhoCosPhi. * Needed for the calculation of the parallax. * - * @param float $height The height of the location - * + * @param float $height The height of the location * @return array with rhoSinPhi and rhoCosPhi * * See Chapter 11 of Astronomical Algorithms diff --git a/src/deepskylog/AstronomyLibrary/Coordinates/HorizontalCoordinates.php b/src/deepskylog/AstronomyLibrary/Coordinates/HorizontalCoordinates.php index 7d20132..a5bebcb 100644 --- a/src/deepskylog/AstronomyLibrary/Coordinates/HorizontalCoordinates.php +++ b/src/deepskylog/AstronomyLibrary/Coordinates/HorizontalCoordinates.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Coordinates + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -21,8 +23,10 @@ * PHP Version 8 * * @category Coordinates + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class HorizontalCoordinates @@ -33,8 +37,8 @@ class HorizontalCoordinates /** * The constructor. * - * @param float $azimuth The azimuth, measured westwards from the South (0, 360) - * @param float $altitude The altitude, positive above the horizon (-90, 90) + * @param float $azimuth The azimuth, measured westwards from the South (0, 360) + * @param float $altitude The altitude, positive above the horizon (-90, 90) */ public function __construct(float $azimuth, float $altitude) { @@ -45,8 +49,7 @@ public function __construct(float $azimuth, float $altitude) /** * Sets the azimuth. * - * @param float $azimuth The azimuth, measured westwards from the South (0, 360) - * + * @param float $azimuth The azimuth, measured westwards from the South (0, 360) * @return None */ public function setAzimuth(float $azimuth): void @@ -57,8 +60,7 @@ public function setAzimuth(float $azimuth): void /** * Sets the altitude. * - * @param float $altitude The altitude above the horizon - * + * @param float $altitude The altitude above the horizon * @return None */ public function setAltitude(float $altitude): void @@ -112,10 +114,9 @@ public function printAltitude(): string * Converts the local horizontal coordinates to equatorial coordinates. * Chapter 13 of Astronomical Algorithms. * - * @param GeographicalCoordinates $geo_coords the geographical + * @param GeographicalCoordinates $geo_coords the geographical * coordinates - * @param Carbon $siderial_time the local siderial time - * + * @param Carbon $siderial_time the local siderial time * @return EquatorialCoordinates The equatorial coordinates */ public function convertToEquatorial( @@ -185,14 +186,13 @@ public function convertToEquatorial( */ public function calculateRefractionFromApparentAltitude(): float { - return 1 / ( + return 1 / tan( deg2rad( $this->getAltitude()->getCoordinate() + 7.31 / ($this->getAltitude()->getCoordinate() + 4.4) ) - ) - ); + ); } /** @@ -204,13 +204,12 @@ public function calculateRefractionFromApparentAltitude(): float */ public function calculateRefractionFromTrueAltitude(): float { - return 1.02 / ( + return 1.02 / tan( deg2rad( $this->getAltitude()->getCoordinate() + 10.3 / ($this->getAltitude()->getCoordinate() + 5.11) ) - ) - ); + ); } } diff --git a/src/deepskylog/AstronomyLibrary/Coordinates/RectangularCoordinates.php b/src/deepskylog/AstronomyLibrary/Coordinates/RectangularCoordinates.php index e56e168..f6826ad 100644 --- a/src/deepskylog/AstronomyLibrary/Coordinates/RectangularCoordinates.php +++ b/src/deepskylog/AstronomyLibrary/Coordinates/RectangularCoordinates.php @@ -36,9 +36,9 @@ class RectangularCoordinates /** * The constructor. * - * @param float $X The rectangular coordinate X (-180, 180) - * @param float $Y The rectangular coordinate Y (-180, 180) - * @param float $Z The rectangular coordinate Z (-180, 180) + * @param float $X The rectangular coordinate X (-180, 180) + * @param float $Y The rectangular coordinate Y (-180, 180) + * @param float $Z The rectangular coordinate Z (-180, 180) */ public function __construct(float $X, float $Y, float $Z) { @@ -50,8 +50,7 @@ public function __construct(float $X, float $Y, float $Z) /** * Sets the rectangular coordinate X. * - * @param float $X The rectangular coordinate X - * + * @param float $X The rectangular coordinate X * @return None */ public function setX(float $X): void @@ -62,8 +61,7 @@ public function setX(float $X): void /** * Sets the rectangular coordinate Y. * - * @param float $Y The rectangular coordinate Y - * + * @param float $Y The rectangular coordinate Y * @return None */ public function setY(float $Y): void @@ -74,8 +72,7 @@ public function setY(float $Y): void /** * Sets the rectangular coordinate Z. * - * @param float $Y The rectangular coordinate Z - * + * @param float $Y The rectangular coordinate Z * @return None */ public function setZ(float $Z): void diff --git a/src/deepskylog/AstronomyLibrary/Imports/ConstellationBoundariesImport.php b/src/deepskylog/AstronomyLibrary/Imports/ConstellationBoundariesImport.php index 526311f..bea4103 100644 --- a/src/deepskylog/AstronomyLibrary/Imports/ConstellationBoundariesImport.php +++ b/src/deepskylog/AstronomyLibrary/Imports/ConstellationBoundariesImport.php @@ -9,8 +9,7 @@ class ConstellationBoundariesImport implements ToModel, WithCustomCsvSettings { /** - * @param array $row The row of the csv file - * + * @param array $row The row of the csv file * @return \Illuminate\Database\Eloquent\Model|null */ public function model(array $row) diff --git a/src/deepskylog/AstronomyLibrary/Imports/DeltaTImport.php b/src/deepskylog/AstronomyLibrary/Imports/DeltaTImport.php index 0996a0a..c6a5637 100644 --- a/src/deepskylog/AstronomyLibrary/Imports/DeltaTImport.php +++ b/src/deepskylog/AstronomyLibrary/Imports/DeltaTImport.php @@ -8,8 +8,7 @@ class DeltaTImport implements ToModel { /** - * @param array $row The row of the csv file - * + * @param array $row The row of the csv file * @return \Illuminate\Database\Eloquent\Model|null */ public function model(array $row) diff --git a/src/deepskylog/AstronomyLibrary/Magnitude.php b/src/deepskylog/AstronomyLibrary/Magnitude.php index 61c59fe..e8f02b8 100644 --- a/src/deepskylog/AstronomyLibrary/Magnitude.php +++ b/src/deepskylog/AstronomyLibrary/Magnitude.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Magnitude + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -21,8 +23,10 @@ * PHP Version 8 * * @category Magnitude + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class Magnitude @@ -30,10 +34,9 @@ class Magnitude /** * Calculates the Sqm if the Nelm is given. * - * @param float $nelm The Naked Eye Limiting Magnitude - * @param float $fstOffset The offset between the real Nelm and the - * Nelm for the observer - * + * @param float $nelm The Naked Eye Limiting Magnitude + * @param float $fstOffset The offset between the real Nelm and the + * Nelm for the observer * @return float The Sqm (Sky Quality Meter) value */ public static function nelmToSqm(float $nelm, float $fstOffset = 0.0): float @@ -49,7 +52,7 @@ public static function nelmToSqm(float $nelm, float $fstOffset = 0.0): float ); } $sqm = 21.58 - - 5 * log10(pow(10, (1.586 - ($nelm + $fstOffset) / 5.0)) - 1.0); + - 5 * log10(pow(10, 1.586 - ($nelm + $fstOffset) / 5.0) - 1.0); if ($sqm > 22.0) { return 22.0; @@ -61,8 +64,7 @@ public static function nelmToSqm(float $nelm, float $fstOffset = 0.0): float /** * Calculates the bortle scale if the Nelm is given. * - * @param float $nelm The Naked Eye Limiting Magnitude - * + * @param float $nelm The Naked Eye Limiting Magnitude * @return int The bortle scale value */ public static function nelmToBortle(float $nelm): int @@ -101,8 +103,7 @@ public static function nelmToBortle(float $nelm): int /** * Calculates the bortle value if the sqm value is given. * - * @param float $sqm The sqm value - * + * @param float $sqm The sqm value * @return int The bortle value */ public static function sqmToBortle($sqm): int @@ -142,10 +143,9 @@ public static function sqmToBortle($sqm): int /** * Calculates the naked eye limiting magnitude if the sqm value is given. * - * @param float $sqm The sqm value - * @param float $fstOffset The offset between the real Nelm and the - * Nelm for the observer - * + * @param float $sqm The sqm value + * @param float $fstOffset The offset between the real Nelm and the + * Nelm for the observer * @return float The limiting magnitude */ public static function sqmToNelm($sqm, float $fstOffset = 0.0) @@ -173,10 +173,9 @@ public static function sqmToNelm($sqm, float $fstOffset = 0.0) /** * Calculates the naked eye limiting magnitude if the bortle scale is given. * - * @param int $bortle The bortle scale - * @param float $fstOffset The offset between the real Nelm and the - * Nelm for the observer - * + * @param int $bortle The bortle scale + * @param float $fstOffset The offset between the real Nelm and the + * Nelm for the observer * @return float The naked eye limiting magnitude */ public static function bortleToNelm(int $bortle, float $fstOffset = 0.0): float @@ -218,8 +217,7 @@ public static function bortleToNelm(int $bortle, float $fstOffset = 0.0): float /** * Calculates the SQM value if the bortle scale is given. * - * @param int $bortle The bortle scale - * + * @param int $bortle The bortle scale * @return float The SQM value */ public static function bortleToSqm(int $bortle): float diff --git a/src/deepskylog/AstronomyLibrary/Targets/Earth.php b/src/deepskylog/AstronomyLibrary/Targets/Earth.php index e77a726..864d85c 100644 --- a/src/deepskylog/AstronomyLibrary/Targets/Earth.php +++ b/src/deepskylog/AstronomyLibrary/Targets/Earth.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -23,8 +25,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class Earth extends Planet @@ -32,8 +36,7 @@ class Earth extends Planet /** * Calculates the mean orbital elements. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -63,8 +66,7 @@ public function calculateMeanOrbitalElements(Carbon $date) /** * Calculates the mean orbital elements in J2000.0. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -94,8 +96,7 @@ public function calculateMeanOrbitalElementsJ2000(Carbon $date) /** * Calculates the heliocentric coordinates of Earth. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return array L, B, R * * See chapter 32 of Astronomical Algorithms @@ -2561,8 +2562,7 @@ public function calculateHeliocentricCoordinates(Carbon $date): array /** * Returns the date of perihelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest perihelion - * + * @param Carbon $date The date for which we want to calculate the closest perihelion * @return Carbon The date of the perihelion * * Chapter 38 of Astronomical Algorithms @@ -2582,8 +2582,7 @@ public function perihelionDate(Carbon $date): Carbon /** * Returns the date of aphelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest aphelion - * + * @param Carbon $date The date for which we want to calculate the closest aphelion * @return Carbon The date of the aphelion * * Chapter 38 of Astronomical Algorithms diff --git a/src/deepskylog/AstronomyLibrary/Targets/Elliptic.php b/src/deepskylog/AstronomyLibrary/Targets/Elliptic.php index 2cb796c..f9cd43d 100644 --- a/src/deepskylog/AstronomyLibrary/Targets/Elliptic.php +++ b/src/deepskylog/AstronomyLibrary/Targets/Elliptic.php @@ -6,17 +6,19 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ namespace deepskylog\AstronomyLibrary\Targets; use Carbon\Carbon; -use deepskylog\AstronomyLibrary\Time; use deepskylog\AstronomyLibrary\Coordinates\EquatorialCoordinates; use deepskylog\AstronomyLibrary\Coordinates\GeographicalCoordinates; +use deepskylog\AstronomyLibrary\Time; /** * The target class describing an object moving in an elliptic orbit. @@ -24,8 +26,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class Elliptic extends Target @@ -49,29 +53,29 @@ public function __construct() /** * Set Orbital Elements. * - * @param float $a Semimajor axis in AU - * @param float $e Eccentricity - * @param float $i Inclination - * @param float $omega Argument of perihelion - * @param float $longitude_ascending_node The Longitude of the Ascending Node - * @param Carbon $perihelion_date The date of the perihelion + * @param float $a Semimajor axis in AU + * @param float $e Eccentricity + * @param float $i Inclination + * @param float $omega Argument of perihelion + * @param float $longitude_ascending_node The Longitude of the Ascending Node + * @param Carbon $perihelion_date The date of the perihelion */ public function setOrbitalElements(float $a, float $e, float $i, float $omega, float $longitude_ascending_node, Carbon $perihelion_date): void { - $this->_a = $a; - $this->_e = $e; - $this->_i = $i; - $this->_omega = $omega; + $this->_a = $a; + $this->_e = $e; + $this->_i = $i; + $this->_omega = $omega; $this->_longitude_ascending_node = $longitude_ascending_node; - $this->_n = 0.9856076686 / ($a * sqrt($a)); - $this->_perihelion_date = $perihelion_date; + $this->_n = 0.9856076686 / ($a * sqrt($a)); + $this->_perihelion_date = $perihelion_date; } /** * Calculates the equatorial coordinates of the planet. * - * @param Carbon $date The date for which to calculate the coordinates - * @param float $epoch The ep + * @param Carbon $date The date for which to calculate the coordinates + * @param float $epoch The ep * * See chapter 33 of Astronomical Algorithms */ @@ -92,8 +96,8 @@ public function _calculateEquatorialCoordinates(Carbon $date, GeographicalCoordi { $nutation = Time::nutation($epoch); - $sine = sin(deg2rad($nutation[2])); - $cose = cos(deg2rad($nutation[2])); + $sine = sin(deg2rad($nutation[2])); + $cose = cos(deg2rad($nutation[2])); $F = cos(deg2rad($this->_longitude_ascending_node)); $G = sin(deg2rad($this->_longitude_ascending_node)) * $cose; @@ -112,7 +116,7 @@ public function _calculateEquatorialCoordinates(Carbon $date, GeographicalCoordi $c = sqrt($H ** 2 + $R ** 2); $diff_in_date = $this->_perihelion_date->diffInSeconds($date) / 3600.0 / 24.0; - $M = -$diff_in_date * 0.300171252; + $M = -$diff_in_date * 0.300171252; $E = $this->eccentricAnomaly($this->_e, $M, 0.000001); @@ -125,19 +129,19 @@ public function _calculateEquatorialCoordinates(Carbon $date, GeographicalCoordi $sun = new Sun(); $XYZ = $sun->calculateGeometricCoordinates($date); - $ksi = $XYZ->getX()->getCoordinate() + $x; - $eta = $XYZ->getY()->getCoordinate() + $y; + $ksi = $XYZ->getX()->getCoordinate() + $x; + $eta = $XYZ->getY()->getCoordinate() + $y; $zeta = $XYZ->getZ()->getCoordinate() + $z; $delta = sqrt($ksi ** 2 + $eta ** 2 + $zeta ** 2); - $tau = 0.0057755183 * $delta; + $tau = 0.0057755183 * $delta; // Do the calculations again for t - $tau - $jd = Time::getJd($date); + $jd = Time::getJd($date); $newDate = Time::fromJd($jd - $tau); $diff_in_date = $this->_perihelion_date->diffInSeconds($newDate) / 3600.0 / 24.0; - $M = -$diff_in_date * 0.300171252; + $M = -$diff_in_date * 0.300171252; $E = $this->eccentricAnomaly($this->_e, $M, 0.000001); @@ -150,14 +154,14 @@ public function _calculateEquatorialCoordinates(Carbon $date, GeographicalCoordi $sun = new Sun(); $XYZ = $sun->calculateGeometricCoordinates($date); - $ksi = $XYZ->getX()->getCoordinate() + $x; - $eta = $XYZ->getY()->getCoordinate() + $y; + $ksi = $XYZ->getX()->getCoordinate() + $x; + $eta = $XYZ->getY()->getCoordinate() + $y; $zeta = $XYZ->getZ()->getCoordinate() + $z; $delta = sqrt($ksi ** 2 + $eta ** 2 + $zeta ** 2); - $tau = 0.0057755183 * $delta; + $tau = 0.0057755183 * $delta; - $ra = rad2deg(atan2($eta, $ksi)) / 15.0; + $ra = rad2deg(atan2($eta, $ksi)) / 15.0; $dec = rad2deg(asin($zeta / $delta)); $equa_coords = new EquatorialCoordinates($ra, $dec); @@ -172,7 +176,7 @@ public function _calculateEquatorialCoordinates(Carbon $date, GeographicalCoordi $earthsGlobe = $geo_coords->earthsGlobe($height); $deltara = rad2deg(atan(-$earthsGlobe[1] * sin(deg2rad($pi / 3600.0)) * sin(deg2rad($hour_angle)) / (cos(deg2rad($equa_coords->getDeclination()->getCoordinate())) - $earthsGlobe[1] * sin(deg2rad($pi / 3600.0)) * sin(deg2rad($hour_angle))))); - $dec = rad2deg(atan((sin(deg2rad($equa_coords->getDeclination()->getCoordinate())) - $earthsGlobe[0] * sin(deg2rad($pi / 3600.0))) * cos(deg2rad($deltara / 3600.0)) + $dec = rad2deg(atan((sin(deg2rad($equa_coords->getDeclination()->getCoordinate())) - $earthsGlobe[0] * sin(deg2rad($pi / 3600.0))) * cos(deg2rad($deltara / 3600.0)) / (cos(deg2rad($equa_coords->getDeclination()->getCoordinate())) - $earthsGlobe[1] * sin(deg2rad($pi / 3600.0)) * cos(deg2rad($height))))); $equa_coords->setRA($ra + $deltara); diff --git a/src/deepskylog/AstronomyLibrary/Targets/Jupiter.php b/src/deepskylog/AstronomyLibrary/Targets/Jupiter.php index 38d5e03..d9f9688 100644 --- a/src/deepskylog/AstronomyLibrary/Targets/Jupiter.php +++ b/src/deepskylog/AstronomyLibrary/Targets/Jupiter.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -23,8 +25,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class Jupiter extends Planet @@ -32,8 +36,7 @@ class Jupiter extends Planet /** * Calculates the mean orbital elements. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -63,8 +66,7 @@ public function calculateMeanOrbitalElements(Carbon $date) /** * Calculates the mean orbital elements in J2000.0. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -94,8 +96,7 @@ public function calculateMeanOrbitalElementsJ2000(Carbon $date) /** * Calculates the heliocentric coordinates of Jupiter. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return array L, B, R * * See chapter 32 of Astronomical Algorithms @@ -3620,8 +3621,7 @@ public function calculateHeliocentricCoordinates(Carbon $date): array /** * Calculates the opposition closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest opposition - * + * @param Carbon $date The date for which we want to calculate the closest opposition * @return Carbon The date of the opposition * * Chapter 36 of Astronomical Algorithms @@ -3635,7 +3635,7 @@ public function opposition(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -3660,8 +3660,7 @@ public function opposition(Carbon $date): Carbon /** * Calculates the conjunction closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest conjunction - * + * @param Carbon $date The date for which we want to calculate the closest conjunction * @return Carbon The date of the conjunction * * Chapter 36 of Astronomical Algorithms @@ -3675,7 +3674,7 @@ public function conjunction(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -3700,8 +3699,7 @@ public function conjunction(Carbon $date): Carbon /** * Returns the date of perihelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest perihelion - * + * @param Carbon $date The date for which we want to calculate the closest perihelion * @return Carbon The date of the perihelion * * Chapter 38 of Astronomical Algorithms @@ -3721,8 +3719,7 @@ public function perihelionDate(Carbon $date): Carbon /** * Returns the date of aphelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest aphelion - * + * @param Carbon $date The date for which we want to calculate the closest aphelion * @return Carbon The date of the aphelion * * Chapter 38 of Astronomical Algorithms @@ -3742,8 +3739,7 @@ public function aphelionDate(Carbon $date): Carbon /** * Calculates the magnitude at the given date. * - * @param Carbon $date The date for which we want to calculate the magnitude - * + * @param Carbon $date The date for which we want to calculate the magnitude * @return float The magnitude * * Chapter 41 of Astronomical Algorithms @@ -3774,8 +3770,7 @@ public function magnitude(Carbon $date): float * Calculate the diameter of Jupiter. You can get the diamter * by using the getDiameter method. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return None * * Chapter 55 of Astronomical Algorithms diff --git a/src/deepskylog/AstronomyLibrary/Targets/Mars.php b/src/deepskylog/AstronomyLibrary/Targets/Mars.php index 9c10588..c22450e 100644 --- a/src/deepskylog/AstronomyLibrary/Targets/Mars.php +++ b/src/deepskylog/AstronomyLibrary/Targets/Mars.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -23,8 +25,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class Mars extends Planet @@ -32,8 +36,7 @@ class Mars extends Planet /** * Calculates the mean orbital elements. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -63,8 +66,7 @@ public function calculateMeanOrbitalElements(Carbon $date) /** * Calculates the mean orbital elements in J2000.0. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -94,8 +96,7 @@ public function calculateMeanOrbitalElementsJ2000(Carbon $date) /** * Calculates the heliocentric coordinates of Mars. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return array L, B, R * * See chapter 32 of Astronomical Algorithms @@ -5620,8 +5621,7 @@ public function calculateHeliocentricCoordinates(Carbon $date): array /** * Calculates the opposition closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest opposition - * + * @param Carbon $date The date for which we want to calculate the closest opposition * @return Carbon The date of the opposition * * Chapter 36 of Astronomical Algorithms @@ -5635,7 +5635,7 @@ public function opposition(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -5660,8 +5660,7 @@ public function opposition(Carbon $date): Carbon /** * Calculates the conjunction closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest conjunction - * + * @param Carbon $date The date for which we want to calculate the closest conjunction * @return Carbon The date of the conjunction * * Chapter 36 of Astronomical Algorithms @@ -5675,7 +5674,7 @@ public function conjunction(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -5700,8 +5699,7 @@ public function conjunction(Carbon $date): Carbon /** * Returns the date of perihelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest perihelion - * + * @param Carbon $date The date for which we want to calculate the closest perihelion * @return Carbon The date of the perihelion * * Chapter 38 of Astronomical Algorithms @@ -5721,8 +5719,7 @@ public function perihelionDate(Carbon $date): Carbon /** * Returns the date of aphelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest aphelion - * + * @param Carbon $date The date for which we want to calculate the closest aphelion * @return Carbon The date of the aphelion * * Chapter 38 of Astronomical Algorithms @@ -5742,8 +5739,7 @@ public function aphelionDate(Carbon $date): Carbon /** * Calculates the magnitude at the given date. * - * @param Carbon $date The date for which we want to calculate the magnitude - * + * @param Carbon $date The date for which we want to calculate the magnitude * @return float The magnitude * * Chapter 41 of Astronomical Algorithms @@ -5774,8 +5770,7 @@ public function magnitude(Carbon $date): float * Calculate the diameter of Mars. You can get the diamter * by using the getDiameter method. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return None * * Chapter 55 of Astronomical Algorithms diff --git a/src/deepskylog/AstronomyLibrary/Targets/Mercury.php b/src/deepskylog/AstronomyLibrary/Targets/Mercury.php index d57af3d..056b8c2 100644 --- a/src/deepskylog/AstronomyLibrary/Targets/Mercury.php +++ b/src/deepskylog/AstronomyLibrary/Targets/Mercury.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -23,8 +25,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class Mercury extends Planet @@ -32,8 +36,7 @@ class Mercury extends Planet /** * Calculates the mean orbital elements. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -63,8 +66,7 @@ public function calculateMeanOrbitalElements(Carbon $date) /** * Calculates the mean orbital elements in J2000.0. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -94,8 +96,7 @@ public function calculateMeanOrbitalElementsJ2000(Carbon $date) /** * Calculates the heliocentric coordinates of Mercury. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return array L, B, R * * See chapter 32 of Astronomical Algorithms @@ -288,8 +289,7 @@ public function calculateHeliocentricCoordinates(Carbon $date): array /** * Calculates the inferior conjunction closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest inferior conjunction - * + * @param Carbon $date The date for which we want to calculate the closest inferior conjunction * @return Carbon The date of the inferior conjunction * * Chapter 36 of Astronomical Algorithms @@ -303,7 +303,7 @@ public function inferior_conjunction(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -328,8 +328,7 @@ public function inferior_conjunction(Carbon $date): Carbon /** * Calculates the superior conjunction closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest inferior conjunction - * + * @param Carbon $date The date for which we want to calculate the closest inferior conjunction * @return Carbon The date of the inferior conjunction * * Chapter 36 of Astronomical Algorithms @@ -343,7 +342,7 @@ public function superior_conjunction(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -369,8 +368,7 @@ public function superior_conjunction(Carbon $date): Carbon * Calculates the greatest eastern elongation closest to the given date. This is the best * evening visibility. * - * @param Carbon $date The date for which we want to calculate the greatest eastern elongation - * + * @param Carbon $date The date for which we want to calculate the greatest eastern elongation * @return Carbon The date of the greatest eastern elongation * * Chapter 36 of Astronomical Algorithms @@ -384,7 +382,7 @@ public function greatest_eastern_elongation(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -396,7 +394,7 @@ public function greatest_eastern_elongation(Carbon $date): Carbon + cos(2 * $M) * (0.2905 + 0.0034 * $T + 0.00001 * $T * $T) + sin(3 * $M) * (-0.1121 - 0.0001 * $T + 0.00001 * $T * $T) + cos(3 * $M) * (-0.0098 - 0.0015 * $T) - + sin(4 * $M) * (0.0192) + + sin(4 * $M) * 0.0192 + cos(4 * $M) * (0.0111 + 0.0004 * $T) + sin(5 * $M) * (-0.0061) + cos(5 * $M) * (-0.0032 - 0.0001 * $T); @@ -410,8 +408,7 @@ public function greatest_eastern_elongation(Carbon $date): Carbon * Calculates the greatest western elongation closest to the given date. This is the best * morning visibility. * - * @param Carbon $date The date for which we want to calculate the greatest western elongation - * + * @param Carbon $date The date for which we want to calculate the greatest western elongation * @return Carbon The date of the greatest western elongation * * Chapter 36 of Astronomical Algorithms @@ -425,7 +422,7 @@ public function greatest_western_elongation(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -435,12 +432,12 @@ public function greatest_western_elongation(Carbon $date): Carbon + cos($M) * (-2.7661 - 0.0011 * $T + 0.00001 * $T * $T) + sin(2 * $M) * (0.2438 - 0.0024 * $T - 0.00001 * $T * $T) + cos(2 * $M) * (0.5767 + 0.0023 * $T) - + sin(3 * $M) * (0.1041) + + sin(3 * $M) * 0.1041 + cos(3 * $M) * (-0.0184 + 0.0007 * $T) + sin(4 * $M) * (-0.0051 - 0.0001 * $T) + cos(4 * $M) * (0.0048 + 0.0001 * $T) - + sin(5 * $M) * (0.0026) - + cos(5 * $M) * (0.0037); + + sin(5 * $M) * 0.0026 + + cos(5 * $M) * 0.0037; $JDE = $JDE0 + $diff; @@ -450,8 +447,7 @@ public function greatest_western_elongation(Carbon $date): Carbon /** * Returns the date of perihelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest perihelion - * + * @param Carbon $date The date for which we want to calculate the closest perihelion * @return Carbon The date of the perihelion * * Chapter 38 of Astronomical Algorithms @@ -471,8 +467,7 @@ public function perihelionDate(Carbon $date): Carbon /** * Returns the date of aphelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest aphelion - * + * @param Carbon $date The date for which we want to calculate the closest aphelion * @return Carbon The date of the aphelion * * Chapter 38 of Astronomical Algorithms @@ -491,8 +486,7 @@ public function aphelionDate(Carbon $date): Carbon /** * Calculates the magnitude at the given date. * - * @param Carbon $date The date for which we want to calculate the magnitude - * + * @param Carbon $date The date for which we want to calculate the magnitude * @return float The magnitude * * Chapter 41 of Astronomical Algorithms @@ -523,8 +517,7 @@ public function magnitude(Carbon $date): float * Calculate the diameter of Mercury. You can get the diamter * by using the getDiameter method. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return None * * Chapter 55 of Astronomical Algorithms diff --git a/src/deepskylog/AstronomyLibrary/Targets/Moon.php b/src/deepskylog/AstronomyLibrary/Targets/Moon.php index 50e3d8a..4eca0ad 100644 --- a/src/deepskylog/AstronomyLibrary/Targets/Moon.php +++ b/src/deepskylog/AstronomyLibrary/Targets/Moon.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -26,8 +28,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class Moon extends Target @@ -57,8 +61,7 @@ public function calculateHorizontalMoonParallax(): float /** * Calculates the heliocentric coordinates of the moon. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return array L, B, R * * See chapter 47 of Astronomical Algorithms @@ -282,7 +285,7 @@ public function calculateHeliocentricCoordinates(Carbon $date): array /** * Calculates the apparent equatorial coordinates of the planet. * - * @param Carbon $date The date for which to calculate the coordinates + * @param Carbon $date The date for which to calculate the coordinates * * See chapter 33 of Astronomical Algorithms */ @@ -302,9 +305,9 @@ public function calculateApparentEquatorialCoordinates(Carbon $date): void /** * Calculates the topocentric equatorial coordinates of the planet. * - * @param Carbon $date The date for which to calculate the coordinates - * @param GeographicalCoordinates $geo_coords The geographical coordinates - * @param float $height The height of the location + * @param Carbon $date The date for which to calculate the coordinates + * @param GeographicalCoordinates $geo_coords The geographical coordinates + * @param float $height The height of the location * * See chapter 40 of Astronomical Algorithms */ @@ -367,8 +370,7 @@ private function _calculateEquatorialCoordinates(Carbon $date, GeographicalCoord /** * Calculates the illuminated fraction of the moon. * - * @param Carbon $date The date for which to calculate the fraction - * + * @param Carbon $date The date for which to calculate the fraction * @return float The illuminated fraction, the phase ratio * * See chapter 48 of Astronomical Algorithms @@ -389,7 +391,7 @@ public function illuminatedFraction(Carbon $date): float $cosPsi = sin(deg2rad($sunCoords->getDeclination()->getCoordinate())) * sin(deg2rad($moonCoords->getDeclination()->getCoordinate())) + cos(deg2rad($sunCoords->getDeclination()->getCoordinate())) * cos(deg2rad($moonCoords->getDeclination()->getCoordinate())) * cos(deg2rad($sunCoords->getRA()->getCoordinate() * 15 - $moonCoords->getRA()->getCoordinate() * 15)); $psi = acos($cosPsi); - $i = rad2deg(atan2($R * sin($psi), ($delta - $R * $cosPsi))); + $i = rad2deg(atan2($R * sin($psi), $delta - $R * $cosPsi)); $i = $i - floor($i / 360.0) * 360.0; return round((1 + cos(deg2rad($i))) / 2, 3); @@ -398,8 +400,7 @@ public function illuminatedFraction(Carbon $date): float /** * Calculates the phase ration of the moon (0 - 1), where 0=new, 0.5=full, 1=new. * - * @param Carbon $date The date for which to calculate the phase ration - * + * @param Carbon $date The date for which to calculate the phase ration * @return float The phase ratio * * See chapter 49 of Astronomical Algorithms @@ -418,8 +419,7 @@ public function getPhaseRatio(Carbon $date): float /** * Return the date for the new moon after the given date. * - * @param Carbon $date The date after which we search the new moon - * + * @param Carbon $date The date after which we search the new moon * @return Carbon The date of the new moon after the given date. */ public function newMoonDate(Carbon $date): Carbon @@ -509,8 +509,7 @@ public function newMoonDate(Carbon $date): Carbon /** * Return the date for the full moon after the given date. * - * @param Carbon $date The date after which we search the full moon - * + * @param Carbon $date The date after which we search the full moon * @return Carbon The date of the full moon after the given date. */ public function fullMoonDate(Carbon $date): Carbon @@ -599,8 +598,7 @@ public function fullMoonDate(Carbon $date): Carbon /** * Return the date for the first quarter moon after the given date. * - * @param Carbon $date The date after which we search the first quarter moon - * + * @param Carbon $date The date after which we search the first quarter moon * @return Carbon The date of the first quarter moon after the given date. */ public function firstQuarterMoonDate(Carbon $date): Carbon @@ -691,8 +689,7 @@ public function firstQuarterMoonDate(Carbon $date): Carbon /** * Return the date for the last quarter moon after the given date. * - * @param Carbon $date The date after which we search the last quarter moon - * + * @param Carbon $date The date after which we search the last quarter moon * @return Carbon The date of the last quarter moon after the given date. */ public function lastQuarterMoonDate(Carbon $date): Carbon @@ -784,8 +781,7 @@ public function lastQuarterMoonDate(Carbon $date): Carbon * Calculate the diameter of the Moon. You can get the diamter * by using the getDiameter method. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return None * * Chapter 55 of Astronomical Algorithms diff --git a/src/deepskylog/AstronomyLibrary/Targets/NearParabolic.php b/src/deepskylog/AstronomyLibrary/Targets/NearParabolic.php index 4405780..62fcd9b 100644 --- a/src/deepskylog/AstronomyLibrary/Targets/NearParabolic.php +++ b/src/deepskylog/AstronomyLibrary/Targets/NearParabolic.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -22,8 +24,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class NearParabolic extends Target @@ -46,12 +50,12 @@ public function __construct() /** * Set Orbital Elements. * - * @param float $q perihelion distance, in AU - * @param float $e Eccentricity - * @param float $i Inclination - * @param float $omega Argument of perihelion - * @param float $longitude_ascending_node The Longitude of the Ascending Node - * @param Carbon $perihelion_date The date of the perihelion + * @param float $q perihelion distance, in AU + * @param float $e Eccentricity + * @param float $i Inclination + * @param float $omega Argument of perihelion + * @param float $longitude_ascending_node The Longitude of the Ascending Node + * @param Carbon $perihelion_date The date of the perihelion */ public function setOrbitalElements(float $q, float $e, float $i, float $omega, float $longitude_ascending_node, Carbon $perihelion_date): void { @@ -66,7 +70,7 @@ public function setOrbitalElements(float $q, float $e, float $i, float $omega, f /** * Calculates the equatorial coordinates of the planet. * - * @param Carbon $date The date for which to calculate the coordinates + * @param Carbon $date The date for which to calculate the coordinates * * See chapter 33 of Astronomical Algorithms */ diff --git a/src/deepskylog/AstronomyLibrary/Targets/Neptune.php b/src/deepskylog/AstronomyLibrary/Targets/Neptune.php index 5e3edca..72d7fd2 100644 --- a/src/deepskylog/AstronomyLibrary/Targets/Neptune.php +++ b/src/deepskylog/AstronomyLibrary/Targets/Neptune.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -23,8 +25,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class Neptune extends Planet @@ -32,8 +36,7 @@ class Neptune extends Planet /** * Calculates the mean orbital elements. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -63,8 +66,7 @@ public function calculateMeanOrbitalElements(Carbon $date) /** * Calculates the mean orbital elements in J2000.0. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -94,8 +96,7 @@ public function calculateMeanOrbitalElementsJ2000(Carbon $date) /** * Calculates the heliocentric coordinates of Neptune. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return array L, B, R * * See chapter 32 of Astronomical Algorithms @@ -2065,8 +2066,7 @@ public function calculateHeliocentricCoordinates(Carbon $date): array /** * Calculates the opposition closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest opposition - * + * @param Carbon $date The date for which we want to calculate the closest opposition * @return Carbon The date of the opposition * * Chapter 36 of Astronomical Algorithms @@ -2080,7 +2080,7 @@ public function opposition(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -2104,8 +2104,7 @@ public function opposition(Carbon $date): Carbon /** * Calculates the conjunction closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest conjunction - * + * @param Carbon $date The date for which we want to calculate the closest conjunction * @return Carbon The date of the conjunction * * Chapter 36 of Astronomical Algorithms @@ -2119,7 +2118,7 @@ public function conjunction(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -2143,8 +2142,7 @@ public function conjunction(Carbon $date): Carbon /** * Returns the date of perihelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest perihelion - * + * @param Carbon $date The date for which we want to calculate the closest perihelion * @return Carbon The date of the perihelion * * Chapter 38 of Astronomical Algorithms @@ -2164,8 +2162,7 @@ public function perihelionDate(Carbon $date): Carbon /** * Returns the date of aphelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest aphelion - * + * @param Carbon $date The date for which we want to calculate the closest aphelion * @return Carbon The date of the aphelion * * Chapter 38 of Astronomical Algorithms @@ -2185,8 +2182,7 @@ public function aphelionDate(Carbon $date): Carbon /** * Calculates the magnitude at the given date. * - * @param Carbon $date The date for which we want to calculate the magnitude - * + * @param Carbon $date The date for which we want to calculate the magnitude * @return float The magnitude * * Chapter 41 of Astronomical Algorithms @@ -2217,8 +2213,7 @@ public function magnitude(Carbon $date): float * Calculate the diameter of Neptune. You can get the diamter * by using the getDiameter method. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return None * * Chapter 55 of Astronomical Algorithms diff --git a/src/deepskylog/AstronomyLibrary/Targets/Parabolic.php b/src/deepskylog/AstronomyLibrary/Targets/Parabolic.php index d9351f8..8b75a5d 100644 --- a/src/deepskylog/AstronomyLibrary/Targets/Parabolic.php +++ b/src/deepskylog/AstronomyLibrary/Targets/Parabolic.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -24,8 +26,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class Parabolic extends Target @@ -47,11 +51,11 @@ public function __construct() /** * Set Orbital Elements. * - * @param float $q perihelion distance, in AU - * @param float $i Inclination - * @param float $omega Argument of perihelion - * @param float $longitude_ascending_node The Longitude of the Ascending Node - * @param Carbon $perihelion_date The date of the perihelion + * @param float $q perihelion distance, in AU + * @param float $i Inclination + * @param float $omega Argument of perihelion + * @param float $longitude_ascending_node The Longitude of the Ascending Node + * @param Carbon $perihelion_date The date of the perihelion */ public function setOrbitalElements(float $q, float $i, float $omega, float $longitude_ascending_node, Carbon $perihelion_date): void { @@ -65,7 +69,7 @@ public function setOrbitalElements(float $q, float $i, float $omega, float $long /** * Calculates the equatorial coordinates of the planet. * - * @param Carbon $date The date for which to calculate the coordinates + * @param Carbon $date The date for which to calculate the coordinates * * See chapter 33 of Astronomical Algorithms */ @@ -124,7 +128,7 @@ public function _calculateEquatorialCoordinates(Carbon $date, GeographicalCoordi $delta = sqrt($ksi ** 2 + $eta ** 2 + $zeta ** 2); $tau = 0.0057755183 * $delta; - $ra = rad2deg(atan2($eta, $ksi)) / 15.0; + $ra = rad2deg(atan2($eta, $ksi)) / 15.0; $dec = rad2deg(asin($zeta / $delta)); $equa_coords = new EquatorialCoordinates($ra, $dec); @@ -139,7 +143,7 @@ public function _calculateEquatorialCoordinates(Carbon $date, GeographicalCoordi $earthsGlobe = $geo_coords->earthsGlobe($height); $deltara = rad2deg(atan(-$earthsGlobe[1] * sin(deg2rad($pi / 3600.0)) * sin(deg2rad($hour_angle)) / (cos(deg2rad($equa_coords->getDeclination()->getCoordinate())) - $earthsGlobe[1] * sin(deg2rad($pi / 3600.0)) * sin(deg2rad($hour_angle))))); - $dec = rad2deg(atan((sin(deg2rad($equa_coords->getDeclination()->getCoordinate())) - $earthsGlobe[0] * sin(deg2rad($pi / 3600.0))) * cos(deg2rad($deltara / 3600.0)) + $dec = rad2deg(atan((sin(deg2rad($equa_coords->getDeclination()->getCoordinate())) - $earthsGlobe[0] * sin(deg2rad($pi / 3600.0))) * cos(deg2rad($deltara / 3600.0)) / (cos(deg2rad($equa_coords->getDeclination()->getCoordinate())) - $earthsGlobe[1] * sin(deg2rad($pi / 3600.0)) * cos(deg2rad($height))))); $equa_coords->setRA($ra + $deltara); diff --git a/src/deepskylog/AstronomyLibrary/Targets/Planet.php b/src/deepskylog/AstronomyLibrary/Targets/Planet.php index 5402196..451bf81 100644 --- a/src/deepskylog/AstronomyLibrary/Targets/Planet.php +++ b/src/deepskylog/AstronomyLibrary/Targets/Planet.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -25,8 +27,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ abstract class Planet extends Target @@ -42,7 +46,7 @@ public function __construct() /** * Calculates the apparent equatorial coordinates of the planet. * - * @param Carbon $date The date for which to calculate the coordinates + * @param Carbon $date The date for which to calculate the coordinates * * See chapter 33 of Astronomical Algorithms */ @@ -59,16 +63,16 @@ public function calculateApparentEquatorialCoordinates(Carbon $date, bool $VSOP8 $this->_calculateApparentEquatorialCoordinates($date->subDays(2)) ); } else { - print("START DE440"); + echo 'START DE440'; } } /** * Calculates the topocentric equatorial coordinates of the planet. * - * @param Carbon $date The date for which to calculate the coordinates - * @param GeographicalCoordinates $geo_coords The geographical coordinates - * @param float $height The height of the location + * @param Carbon $date The date for which to calculate the coordinates + * @param GeographicalCoordinates $geo_coords The geographical coordinates + * @param float $height The height of the location * * See chapter 40 of Astronomical Algorithms */ @@ -85,7 +89,7 @@ public function calculateEquatorialCoordinates(Carbon $date, GeographicalCoordin $this->_calculateEquatorialCoordinates($date->subDays(2), $geo_coords, $height) ); } else { - print("Downloading DE440"); + echo 'Downloading DE440'; } } @@ -137,9 +141,9 @@ private function _calculateApparentEquatorialCoordinates(Carbon $date): Equatori $lambda += $deltaLambda; $beta += $deltaBeta; - $L_accent = $helio_coords[0] - 1.397 * ($T) - 0.00031 * ($T) ** 2; + $L_accent = $helio_coords[0] - 1.397 * $T - 0.00031 * $T ** 2; - $deltaLambda = -0.09033 + 0.03916 * (cos(deg2rad($L_accent) + sin(deg2rad($L_accent)))) * tan(deg2rad($helio_coords[1])); + $deltaLambda = -0.09033 + 0.03916 * cos(deg2rad($L_accent) + sin(deg2rad($L_accent))) * tan(deg2rad($helio_coords[1])); $deltaBeta = 0.03916 * (cos(deg2rad($L_accent)) - sin(deg2rad($L_accent))); $lambda += $deltaLambda / 3600.0; @@ -199,9 +203,9 @@ private function _calculateEquatorialCoordinates(Carbon $date, GeographicalCoord $lambda += $deltaLambda; $beta += $deltaBeta; - $L_accent = $helio_coords[0] - 1.397 * ($T) - 0.00031 * ($T) ** 2; + $L_accent = $helio_coords[0] - 1.397 * $T - 0.00031 * $T ** 2; - $deltaLambda = -0.09033 + 0.03916 * (cos(deg2rad($L_accent) + sin(deg2rad($L_accent)))) * tan(deg2rad($helio_coords[1])); + $deltaLambda = -0.09033 + 0.03916 * cos(deg2rad($L_accent) + sin(deg2rad($L_accent))) * tan(deg2rad($helio_coords[1])); $deltaBeta = 0.03916 * (cos(deg2rad($L_accent)) - sin(deg2rad($L_accent))); $lambda += $deltaLambda / 3600.0; @@ -237,8 +241,7 @@ private function _calculateEquatorialCoordinates(Carbon $date, GeographicalCoord /** * Calculates the illuminated fraction of the planet. * - * @param Carbon $date The date for which to calculate the fraction - * + * @param Carbon $date The date for which to calculate the fraction * @return float The illuminated fraction * * See chapter 41 of Astronomical Algorithms diff --git a/src/deepskylog/AstronomyLibrary/Targets/Saturn.php b/src/deepskylog/AstronomyLibrary/Targets/Saturn.php index 9586ad5..b3e4af9 100644 --- a/src/deepskylog/AstronomyLibrary/Targets/Saturn.php +++ b/src/deepskylog/AstronomyLibrary/Targets/Saturn.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -23,8 +25,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class Saturn extends Planet @@ -32,8 +36,7 @@ class Saturn extends Planet /** * Calculates the mean orbital elements. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -63,8 +66,7 @@ public function calculateMeanOrbitalElements(Carbon $date) /** * Calculates the mean orbital elements in J2000.0. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -94,8 +96,7 @@ public function calculateMeanOrbitalElementsJ2000(Carbon $date) /** * Calculates the heliocentric coordinates of Saturn. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return array L, B, R * * See chapter 32 of Astronomical Algorithms @@ -5896,8 +5897,7 @@ public function calculateHeliocentricCoordinates(Carbon $date): array /** * Calculates the opposition closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest opposition - * + * @param Carbon $date The date for which we want to calculate the closest opposition * @return Carbon The date of the opposition * * Chapter 36 of Astronomical Algorithms @@ -5911,7 +5911,7 @@ public function opposition(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -5945,8 +5945,7 @@ public function opposition(Carbon $date): Carbon /** * Calculates the conjunction closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest conjunction - * + * @param Carbon $date The date for which we want to calculate the closest conjunction * @return Carbon The date of the conjunction * * Chapter 36 of Astronomical Algorithms @@ -5960,7 +5959,7 @@ public function conjunction(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -5994,8 +5993,7 @@ public function conjunction(Carbon $date): Carbon /** * Returns the date of perihelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest perihelion - * + * @param Carbon $date The date for which we want to calculate the closest perihelion * @return Carbon The date of the perihelion * * Chapter 38 of Astronomical Algorithms @@ -6015,8 +6013,7 @@ public function perihelionDate(Carbon $date): Carbon /** * Returns the date of aphelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest aphelion - * + * @param Carbon $date The date for which we want to calculate the closest aphelion * @return Carbon The date of the aphelion * * Chapter 38 of Astronomical Algorithms @@ -6036,8 +6033,7 @@ public function aphelionDate(Carbon $date): Carbon /** * Calculates the magnitude at the given date. * - * @param Carbon $date The date for which we want to calculate the magnitude - * + * @param Carbon $date The date for which we want to calculate the magnitude * @return float The magnitude * * Chapter 41 and 45 of Astronomical Algorithms @@ -6085,14 +6081,14 @@ public function magnitude(Carbon $date): float // Step 9 $U1 = rad2deg( atan2( - (sin(deg2rad($i)) * sin(deg2rad($baccent)) + cos(deg2rad($i)) * cos(deg2rad($baccent)) * sin(deg2rad($laccent - $omega))), - (cos(deg2rad($baccent)) * cos(deg2rad($laccent - $omega))) + sin(deg2rad($i)) * sin(deg2rad($baccent)) + cos(deg2rad($i)) * cos(deg2rad($baccent)) * sin(deg2rad($laccent - $omega)), + cos(deg2rad($baccent)) * cos(deg2rad($laccent - $omega)) ) ); $U2 = rad2deg( atan2( - (sin(deg2rad($i)) * sin(deg2rad($beta)) + cos(deg2rad($i)) * cos(deg2rad($beta)) * sin(deg2rad($lambda - $omega))), - (cos(deg2rad($beta)) * cos(deg2rad($lambda - $omega))) + sin(deg2rad($i)) * sin(deg2rad($beta)) + cos(deg2rad($i)) * cos(deg2rad($beta)) * sin(deg2rad($lambda - $omega)), + cos(deg2rad($beta)) * cos(deg2rad($lambda - $omega)) ) ); $deltaU = abs($U1 - $U2); @@ -6104,8 +6100,7 @@ public function magnitude(Carbon $date): float * Calculate the diameter of Jupiter. You can get the diamter * by using the getDiameter method. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return None * * Chapter 55 of Astronomical Algorithms diff --git a/src/deepskylog/AstronomyLibrary/Targets/Sun.php b/src/deepskylog/AstronomyLibrary/Targets/Sun.php index 8a24e7c..88283f8 100644 --- a/src/deepskylog/AstronomyLibrary/Targets/Sun.php +++ b/src/deepskylog/AstronomyLibrary/Targets/Sun.php @@ -48,8 +48,8 @@ public function __construct() /** * Calculates the equatorial coordinates of the sun with a low accuracy (0.01 degree). * - * @param Carbon $date The date for which to calculate the coordinates - * @param float $obliquity The obliquity of the ecliptic for the given date + * @param Carbon $date The date for which to calculate the coordinates + * @param float $obliquity The obliquity of the ecliptic for the given date * * See chapter 25 of Astronomical Algorithms */ @@ -69,9 +69,8 @@ public function calculateEquatorialCoordinates(Carbon $date, float $obliquity): /** * Calculates the equatorial coordinates of the sun with a low accuracy (0.01 degree). * - * @param Carbon $date The date for which to calculate the coordinates - * @param float $obliquity The obliquity of the ecliptic for the given date - * + * @param Carbon $date The date for which to calculate the coordinates + * @param float $obliquity The obliquity of the ecliptic for the given date * @return EquatorialCoordinates The equatorial coordinates for the given date. * * See chapter 25 of Astronomical Algorithms @@ -126,8 +125,8 @@ private function _calculateEquatorialCoordinates(Carbon $date, float $obliquity) /** * Calculates the equatorial coordinates of the sun with a high accuracy. * - * @param Carbon $date The date for which to calculate the coordinates - * @param array $nutation The nutation + * @param Carbon $date The date for which to calculate the coordinates + * @param array $nutation The nutation * * See chapter 25 of Astronomical Algorithms */ @@ -147,9 +146,8 @@ public function calculateEquatorialCoordinatesHighAccuracy(Carbon $date, array $ /** * Calculates the equatorial coordinates of the sun with a high accuracy. * - * @param Carbon $date The date for which to calculate the coordinates - * @param array $nutation The nutation - * + * @param Carbon $date The date for which to calculate the coordinates + * @param array $nutation The nutation * @return EquatorialCoordinates The coordinates for the given date * * See chapter 25 of Astronomical Algorithms @@ -167,9 +165,8 @@ private function _calculateEquatorialCoordinatesHighAccuracy(Carbon $date, array /** * Calculates the equatorial coordinates of the sun with a high accuracy. * - * @param Carbon $date The date for which to calculate the coordinates - * @param array $nutation The nutation - * + * @param Carbon $date The date for which to calculate the coordinates + * @param array $nutation The nutation * @return EquatorialCoordinates The coordinates for the given date * * See chapter 25 of Astronomical Algorithms @@ -210,9 +207,8 @@ public function calculateOdotBetaR(Carbon $date): array /** * Calculates L for the calculation of the coordinates of the sun. * - * @param type $tau julian millenia since epoch J2000.0 - * - * @return float L + * @param type $tau julian millenia since epoch J2000.0 + * @return float L * * See chapter 25 of Astronomical Algorithms */ @@ -361,9 +357,8 @@ private function _calculateL($tau): float /** * Calculates R for the calculation of the coordinates of the sun. * - * @param type $tau julian millenia since epoch J2000.0 - * - * @return float R + * @param type $tau julian millenia since epoch J2000.0 + * @return float R * * See chapter 25 of Astronomical Algorithms */ @@ -441,8 +436,7 @@ private function _calculateR($tau): float /** * Calculates the geometric coordinates of the sun for the equinox of the date. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return RectangularCoordinates The rectangular Coordinates * * See chapter 26 of Astronomical Algorithms @@ -465,8 +459,7 @@ public function calculateGeometricCoordinates(Carbon $date): RectangularCoordina /** * Calculates the geometric coordinates of the sun for the J2000 equinox. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return RectangularCoordinates The rectangular Coordinates * * See chapter 26 of Astronomical Algorithms @@ -721,8 +714,7 @@ public function calculateGeometricCoordinatesJ2000(Carbon $date): RectangularCoo /** * Calculates the equation of time of the sun for a given date. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return CarbonInterval The equation of time * * See chapter 28 of Astronomical Algorithms @@ -748,13 +740,12 @@ public function calculateEquationOfTime(Carbon $date): CarbonInterval /** * Calculates the ephemeris for physical observations of the sun. * - * @param Carbon $date The date - * @param float $deltaT Delta T for the given date - * + * @param Carbon $date The date + * @param float $deltaT Delta T for the given date * @return array The ephemeris for physical observations of the sun. * First element: P: The position angle of the northern - * extremity of the axis of rotation, measured - * eastwards from the North Point of the solar disk. + * extremity of the axis of rotation, measured + * eastwards from the North Point of the solar disk. * Second element: B0: The heliographic latitude of the center of the solar disk * Third element: L0: The heliographic ongitude of the same point * @@ -810,8 +801,7 @@ public function getPhysicalEphemeris(Carbon $date, float $deltaT): array * Calculate the diameter of the Sun. You can get the diamter * by using the getDiameter method. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return None * * Chapter 55 of Astronomical Algorithms diff --git a/src/deepskylog/AstronomyLibrary/Targets/Target.php b/src/deepskylog/AstronomyLibrary/Targets/Target.php index dcbaa5d..0dcd3d7 100644 --- a/src/deepskylog/AstronomyLibrary/Targets/Target.php +++ b/src/deepskylog/AstronomyLibrary/Targets/Target.php @@ -16,11 +16,11 @@ namespace deepskylog\AstronomyLibrary\Targets; use Carbon\Carbon; -use RuntimeException; -use deepskylog\AstronomyLibrary\Time; use deepskylog\AstronomyLibrary\Coordinates\Coordinate; use deepskylog\AstronomyLibrary\Coordinates\EquatorialCoordinates; use deepskylog\AstronomyLibrary\Coordinates\GeographicalCoordinates; +use deepskylog\AstronomyLibrary\Time; +use RuntimeException; /** * The target class describing an astronomical object. @@ -69,9 +69,9 @@ class Target private ?float $_magnitude = null; // Needed for the calculation of the contrast reserve - private $_LTCSize = 24; + private $_LTCSize = 24; private $_angleSize = 7; - private $_angle = [ + private $_angle = [ -0.2255, 0.5563, 0.9859, 1.260, 1.742, 2.083, 2.556, ]; @@ -185,8 +185,7 @@ public function __construct() /** * Set H0. * - * @param float $h0 The h0 value - * + * @param float $h0 The h0 value * @return None */ public function setH0(float $h0): void @@ -208,8 +207,7 @@ public function getH0(): float /** * Set the equatorial coordinates of the target. * - * @param EquatorialCoordinates $equa the equatorial coordinates of the object - * + * @param EquatorialCoordinates $equa the equatorial coordinates of the object * @return None */ public function setEquatorialCoordinates($equa): void @@ -226,9 +224,8 @@ public function setEquatorialCoordinates($equa): void /** * Set the equatorial coordinates of the target for yesterday at 0:00 TD. * - * @param EquatorialCoordinates $equa the equatorial coordinates of the object - * for yesterday - * + * @param EquatorialCoordinates $equa the equatorial coordinates of the object + * for yesterday * @return None */ public function setEquatorialCoordinatesYesterday($equa): void @@ -241,9 +238,8 @@ public function setEquatorialCoordinatesYesterday($equa): void /** * Set the equatorial coordinates of the target for today at 0:00 TD. * - * @param EquatorialCoordinates $equa the equatorial coordinates of the object - * for today - * + * @param EquatorialCoordinates $equa the equatorial coordinates of the object + * for today * @return None */ public function setEquatorialCoordinatesToday($equa): void @@ -256,9 +252,8 @@ public function setEquatorialCoordinatesToday($equa): void /** * Set the equatorial coordinates of the target for tomorrow at 0:00 TD. * - * @param EquatorialCoordinates $equa the equatorial coordinates of the object - * for tomorrow - * + * @param EquatorialCoordinates $equa the equatorial coordinates of the object + * for tomorrow * @return None */ public function setEquatorialCoordinatesTomorrow($equa): void @@ -275,12 +270,12 @@ public function setEquatorialCoordinatesTomorrow($equa): void */ private function _resetGlobalVariables(): void { - $this->_transit = null; - $this->_setting = null; - $this->_rising = null; - $this->_maxHeight = null; + $this->_transit = null; + $this->_setting = null; + $this->_rising = null; + $this->_maxHeight = null; $this->_maxHeightAtNight = null; - $this->_bestTime = null; + $this->_bestTime = null; } /** @@ -335,7 +330,7 @@ public function getEquatorialCoordinatesTomorrow(): EquatorialCoordinates **/ public function getTransit(): Carbon { - if (!$this->_transit) { + if (! $this->_transit) { throw new RuntimeException('First execute the calculateEphemerides method'); } @@ -351,7 +346,7 @@ public function getTransit(): Carbon **/ public function getRising(): ?Carbon { - if (!$this->_transit) { + if (! $this->_transit) { throw new RuntimeException('First execute the calculateEphemerides method'); } @@ -367,7 +362,7 @@ public function getRising(): ?Carbon **/ public function getSetting(): ?Carbon { - if (!$this->_transit) { + if (! $this->_transit) { throw new RuntimeException('First execute the calculateEphemerides method'); } @@ -382,7 +377,7 @@ public function getSetting(): ?Carbon **/ public function getMaxHeight(): ?Coordinate { - if (!$this->_transit) { + if (! $this->_transit) { throw new RuntimeException('First execute the calculateEphemerides method'); } @@ -400,7 +395,7 @@ public function getMaxHeight(): ?Coordinate **/ public function getMaxHeightAtNight(): ?Coordinate { - if (!$this->_transit) { + if (! $this->_transit) { throw new RuntimeException('First execute the calculateEphemerides method'); } @@ -415,7 +410,7 @@ public function getMaxHeightAtNight(): ?Coordinate **/ public function getBestTimeToObserve(): ?Carbon { - if (!$this->_transit) { + if (! $this->_transit) { throw new RuntimeException('First execute the calculateEphemerides method'); } @@ -426,12 +421,11 @@ public function getBestTimeToObserve(): ?Carbon * Calculate rising and the setting of the object. * Chapter 15 of Astronomical Algorithms. * - * @param GeographicalCoordinates $geo_coords The geographical + * @param GeographicalCoordinates $geo_coords The geographical * coordinates of the observer - * @param Carbon $siderial_time The apparent siderial time - * at Greenwich at 0:00 UTC - * @param float $deltaT Delta t for the given date - * + * @param Carbon $siderial_time The apparent siderial time + * at Greenwich at 0:00 UTC + * @param float $deltaT Delta t for the given date * @return None */ public function calculateEphemerides( @@ -512,8 +506,8 @@ public function calculateEphemerides( if ($this->getEquatorialCoordinatesYesterday()->getRA()->getCoordinate() == $this->getEquatorialCoordinatesTomorrow()->getRA()->getCoordinate() && $this->getEquatorialCoordinatesYesterday()->getDeclination()->getCoordinate() == $this->getEquatorialCoordinatesTomorrow()->getDeclination()->getCoordinate() ) { - $a = 0.0; - $b = 0.0; + $a = 0.0; + $b = 0.0; $adec = 0.0; $bdec = 0.0; // Target does not move. @@ -522,7 +516,7 @@ public function calculateEphemerides( // Extra calculation for moving targets. // We use delta t for the given date. $targetDoesNotMove = false; - $a = $this->getEquatorialCoordinatesToday()->getRA()->getCoordinate() + $a = $this->getEquatorialCoordinatesToday()->getRA()->getCoordinate() - $this->getEquatorialCoordinatesYesterday()->getRA() ->getCoordinate(); $b = $this->getEquatorialCoordinatesTomorrow()->getRA()->getCoordinate() @@ -604,21 +598,21 @@ public function calculateEphemerides( } } - $transit = $m0 * 24.0; - $this->_transit = $this->_createTime($transit, $siderial_time); + $transit = $m0 * 24.0; + $this->_transit = $this->_createTime($transit, $siderial_time); $this->_bestTime = $this->_transit; if ($m1 == 99) { $this->_rising = Carbon::make(null); } else { - $rising = $m1 * 24.0; + $rising = $m1 * 24.0; $this->_rising = $this->_createTime($rising, $siderial_time); } if ($m2 == 99) { $this->_setting = Carbon::make(null); } else { - $setting = $m2 * 24.0; + $setting = $m2 * 24.0; $this->_setting = $this->_createTime($setting, $siderial_time); } @@ -640,9 +634,9 @@ public function calculateEphemerides( $sun_info['nautical_twilight_end'] ); if ($sun_info['nautical_twilight_begin'] === true) { - $this->_maxHeight = new Coordinate($transitHeight, -90.0, 90.0); + $this->_maxHeight = new Coordinate($transitHeight, -90.0, 90.0); $this->_maxHeightAtNight = null; - $this->_bestTime = null; + $this->_bestTime = null; } } else { $endOfNight = Carbon::createFromTimestamp( @@ -667,7 +661,7 @@ public function calculateEphemerides( } } - if (!$during_night) { + if (! $during_night) { $th = new Coordinate($transitHeight, -90.0, 90.0); // Calculate the height at the end of the night @@ -702,10 +696,10 @@ public function calculateEphemerides( // Compare and use the hightest height as the best height for the target if ($height2 > $height) { - $th = new Coordinate($height2, -90.0, 90.0); + $th = new Coordinate($height2, -90.0, 90.0); $this->_bestTime = $startOfNight; } else { - $th = new Coordinate($height, -90.0, 90.0); + $th = new Coordinate($height, -90.0, 90.0); $this->_bestTime = $endOfNight; } // If max height < 0.0 at astronomical darkness, try nautical darkness. @@ -752,10 +746,10 @@ public function calculateEphemerides( // Compare and use the hightest height as the best height // for the target if ($height2 > $height) { - $th = new Coordinate($height2, -90.0, 90.0); + $th = new Coordinate($height2, -90.0, 90.0); $this->_bestTime = $startOfNight; } else { - $th = new Coordinate($height, -90.0, 90.0); + $th = new Coordinate($height, -90.0, 90.0); $this->_bestTime = $endOfNight; } } @@ -763,7 +757,7 @@ public function calculateEphemerides( } else { $th = new Coordinate($transitHeight, -90.0, 90.0); } - $this->_maxHeight = new Coordinate($transitHeight, -90.0, 90.0); + $this->_maxHeight = new Coordinate($transitHeight, -90.0, 90.0); $this->_maxHeightAtNight = $th; } @@ -771,24 +765,23 @@ public function calculateEphemerides( * Calculates the height of the object at a given moment. * Chapter 15 of Astronomical Algorithms. * - * @param float $theta0 Theta0 of the target - * @param float $time The time to calculate the - * height for, in decimal hours - * @param float $deltaT Delta t for the given date - * @param bool $targetDoesNotMove True if the target does not - * move - * @param float $a The RA from today - the RA - * from yesterday - * @param float $b The RA from tomorrow - the - * RA from yesterday - * @param float $adec The declination from today - - * the declination of yesterday - * @param float $bdec The declination from - * tomorrow - the declination - * of today - * @param GeographicalCoordinates $geo_coords The geographical coordinates - * to calculate the height from - * + * @param float $theta0 Theta0 of the target + * @param float $time The time to calculate the + * height for, in decimal hours + * @param float $deltaT Delta t for the given date + * @param bool $targetDoesNotMove True if the target does not + * move + * @param float $a The RA from today - the RA + * from yesterday + * @param float $b The RA from tomorrow - the + * RA from yesterday + * @param float $adec The declination from today - + * the declination of yesterday + * @param float $bdec The declination from + * tomorrow - the declination + * of today + * @param GeographicalCoordinates $geo_coords The geographical coordinates + * to calculate the height from * @return array the height of the object, $H */ private function _calculateHeight( @@ -803,9 +796,9 @@ private function _calculateHeight( $geo_coords ): array { $theta = $this->_calculateTheta($theta0, $time); - $n = $this->_calculateN($time, $deltaT); + $n = $this->_calculateN($time, $deltaT); - if (!$targetDoesNotMove) { + if (! $targetDoesNotMove) { $alphaInterpol = $this->_interpolate( $this->getEquatorialCoordinatesToday()->getRA()->getCoordinate(), $n, @@ -845,9 +838,8 @@ private function _calculateHeight( /** * Calculate theta. * - * @param float $theta0 Theta0 - * @param float $m m0 for the transit, m1 for the rising, m2 for the setting - * + * @param float $theta0 Theta0 + * @param float $m m0 for the transit, m1 for the rising, m2 for the setting * @return float Theta */ private function _calculateTheta(float $theta0, float $m): float @@ -863,9 +855,8 @@ private function _calculateTheta(float $theta0, float $m): float /** * Calculate n. * - * @param float $m The m value - * @param float $deltaT Delta T for the given date - * + * @param float $m The m value + * @param float $deltaT Delta T for the given date * @return float the value for n */ private function _calculateN(float $m, float $deltaT): float @@ -876,11 +867,10 @@ private function _calculateN(float $m, float $deltaT): float /** * Interpolate to find the coordinates of the given time. * - * @param float $coord the coordinate for today - * @param float $n the n value - * @param float $a the movement in coordinates from yesterday to today - * @param float $b the movement in coordinates from today to tomorrow - * + * @param float $coord the coordinate for today + * @param float $n the n value + * @param float $a the movement in coordinates from yesterday to today + * @param float $b the movement in coordinates from today to tomorrow * @return float the interpolated value */ private function _interpolate( @@ -897,10 +887,9 @@ private function _interpolate( /** * Get the local hour angle of the object. * - * @param float $theta The theta value - * @param float $longitude The longitude of the location - * @param float $alphaInterpol Description - * + * @param float $theta The theta value + * @param float $longitude The longitude of the location + * @param float $alphaInterpol Description * @return float */ private function _getLocalHourAngle( @@ -914,10 +903,9 @@ private function _getLocalHourAngle( /** * Calculate the height of the object. * - * @param float $latitude The latitude of the location - * @param float $deltaInterpol The interpolation in declination for the object - * @param float $H The hour angle - * + * @param float $latitude The latitude of the location + * @param float $deltaInterpol The interpolation in declination for the object + * @param float $H The hour angle * @return float the height of the object */ private function _getHeight( @@ -939,12 +927,11 @@ private function _getHeight( /** * Calculate the correction for m. * - * @param float $height The height of the object - * @param float $h0 The h0 value - * @param float $deltaInterpol The interpolation in declination for the object - * @param float $latitude The latitude of the location - * @param float $H The hour angle - * + * @param float $height The height of the object + * @param float $h0 The h0 value + * @param float $deltaInterpol The interpolation in declination for the object + * @param float $latitude The latitude of the location + * @param float $H The hour angle * @return float the correction for m */ private function _getDeltaM( @@ -963,15 +950,14 @@ private function _getDeltaM( /** * Create a Carbon time from an integer. * - * @param float $time the time as integer - * @param Carbon $carbonTime carbon time, only used for the date - * + * @param float $time the time as integer + * @param Carbon $carbonTime carbon time, only used for the date * @return Carbon The Carbon Time */ private function _createTime(float $time, Carbon $carbonTime): Carbon { // Same for rising, transit and setting - $hour = intval($time); + $hour = intval($time); $minute = intval(($time - $hour) * 60.0); $second = intval(((($time - $hour) * 60.0) - $minute) * 60.0); @@ -982,18 +968,17 @@ private function _createTime(float $time, Carbon $carbonTime): Carbon /** * Creates a chart with the altitude of the target. * - * @param GeographicalCoordinates $geo_coords The geographical - * coordinates of the observer - * @param Carbon $date the date for which to make the - * chart - * + * @param GeographicalCoordinates $geo_coords The geographical + * coordinates of the observer + * @param Carbon $date the date for which to make the + * chart * @return string The altitude chart */ public function altitudeGraph( GeographicalCoordinates $geo_coords, Carbon $date ): string { - if (!$this->_altitudeChart) { + if (! $this->_altitudeChart) { $image = imagecreatetruecolor(1000, 400); // Show the night @@ -1074,7 +1059,7 @@ public function altitudeGraph( $startAstronomical = 12; } - $daycolor = imagecolorallocate($image, 0, 0, 200); + $daycolor = imagecolorallocate($image, 0, 0, 200); $twilightcolor = imagecolorallocate($image, 100, 100, 200); imagefilledrectangle($image, 70, 5, 70 + $startNautical * 37, 365, $daycolor); @@ -1102,10 +1087,10 @@ public function altitudeGraph( $coords = $this->getEquatorialCoordinates(); } else { // Coordinates are for 0:00 TD - $raToday = $this->getEquatorialCoordinatesToday()->getRA()->getCoordinate(); + $raToday = $this->getEquatorialCoordinatesToday()->getRA()->getCoordinate(); $declToday = $this->getEquatorialCoordinatesToday() ->getDeclination()->getCoordinate(); - $raTomorrow = $this->getEquatorialCoordinatesTomorrow()->getRA()->getCoordinate(); + $raTomorrow = $this->getEquatorialCoordinatesTomorrow()->getRA()->getCoordinate(); $declTomorrow = $this->getEquatorialCoordinatesTomorrow() ->getDeclination()->getCoordinate(); @@ -1118,8 +1103,8 @@ public function altitudeGraph( } } $raInterval = $raDiff / 24; - $ra = $raToday + $raInterval * (12 + $i); - $decl = $declToday + $ra = $raToday + $raInterval * (12 + $i); + $decl = $declToday + ($declTomorrow - $declToday) / 24 * (12 + $i); $coords = new EquatorialCoordinates($ra, $decl); @@ -1162,7 +1147,7 @@ public function altitudeGraph( $rawImageBytes = ob_get_clean(); $this->_altitudeChart = ""; + .base64_encode($rawImageBytes)."' />"; } return $this->_altitudeChart; @@ -1181,10 +1166,9 @@ public function getConstellation(): string /** * Calculates the eccentric Anomaly using the equation of Kepler. * - * @param float $eccentricity The eccentricity of the orbit - * @param float $meanAnomaly The mean anomaly of the orbit in degrees - * @param float $accuracy The accuracy of the result - * + * @param float $eccentricity The eccentricity of the orbit + * @param float $meanAnomaly The mean anomaly of the orbit in degrees + * @param float $accuracy The accuracy of the result * @return float The eccentric anomaly * * See chapter 30 of Astronomical Algorithms @@ -1207,9 +1191,8 @@ public function eccentricAnomaly(float $eccentricity, float $meanAnomaly, float /** * Set the diameter of the target. * - * @param float $diam1 The diam1 in arcseconds - * @param float $diam2 The diam2 in arcseconds - * + * @param float $diam1 The diam1 in arcseconds + * @param float $diam2 The diam2 in arcseconds * @return None */ public function setDiameter(?float $diam1, ?float $diam2 = 0.0): void @@ -1234,8 +1217,7 @@ public function getDiameter(): array /** * Set the magnitude of the target. * - * @param float $magnitude The magnitude - * + * @param float $magnitude The magnitude * @return None */ public function setMagnitude(?float $magnitude): void @@ -1260,7 +1242,7 @@ public function getMagnitude(): ?float */ public function calculateSBObj(): ?float { - if (($this->_magnitude) && ($this->_magnitude != 99.9) && (($this->_diam1 != 0) || ($this->_diam2 != 0))) { + if ($this->_magnitude && ($this->_magnitude != 99.9) && (($this->_diam1 != 0) || ($this->_diam2 != 0))) { $SBObj = ($this->_magnitude + (2.5 * log10(2827.0 * ($this->_diam1 / 60) * ($this->_diam2 / 60)))); } else { $SBObj = null; @@ -1279,17 +1261,17 @@ public function calculateSBObj(): ?float * 0.50 < contr diff < 1.0 : Easy to see * 1.00 < contrast diff : Very easy to see. * - * @param float $SBObj SBObj as calculated. - * @param float $sqm The value from the Sky Quality Meter describing the sky darkness. - * @param float $diameter The diameter of the used instrument (in mm) - * @param float $magnification The used magnification + * @param float $SBObj SBObj as calculated. + * @param float $sqm The value from the Sky Quality Meter describing the sky darkness. + * @param float $diameter The diameter of the used instrument (in mm) + * @param float $magnification The used magnification */ public function calculateContrastReserve(float $SBObj, ?float $sqm, ?float $diameter, ?float $magnification): ?float { - if (!$sqm) { + if (! $sqm) { return null; } - if (!$diameter) { + if (! $diameter) { return null; } @@ -1302,7 +1284,7 @@ public function calculateContrastReserve(float $SBObj, ?float $sqm, ?float $diam $maxObjArcmin = $this->_diam2 / 60.0; if ($minObjArcmin > $maxObjArcmin) { - $temp = $minObjArcmin; + $temp = $minObjArcmin; $minObjArcmin = $maxObjArcmin; $maxObjArcmin = $temp; } @@ -1315,13 +1297,13 @@ public function calculateContrastReserve(float $SBObj, ?float $sqm, ?float $diam $x = $magnification; $SBReduc = 5 * log10($x); - $SBB = $SBB1 + $SBReduc; + $SBB = $SBB1 + $SBReduc; /* 2 dimensional interpolation of LTC array */ - $ang = $x * $minObjArcmin; + $ang = $x * $minObjArcmin; $logAng = log10($ang); - $SB = $SBB; - $I = 0; + $SB = $SBB; + $I = 0; /* int of surface brightness */ $intSB = (int) $SB; @@ -1343,7 +1325,7 @@ public function calculateContrastReserve(float $SBObj, ?float $sqm, ?float $diam /* found 1st Angle[] value > LogAng, so back up 2 */ $I -= 2; if ($I < 0) { - $I = 0; + $I = 0; $logAng = $this->_angle[0]; } @@ -1389,19 +1371,19 @@ public function calculateContrastReserve(float $SBObj, ?float $sqm, ?float $diam /** * Calculates the detection magnification of the target. * - * @param float $SBObj SBObj as calculated. - * @param float $sqm The value from the Sky Quality Meter describing the sky darkness. - * @param float $diameter The diameter of the used instrument (in mm) - * @param array $magnifications An array with the possible magnifications + * @param float $SBObj SBObj as calculated. + * @param float $sqm The value from the Sky Quality Meter describing the sky darkness. + * @param float $diameter The diameter of the used instrument (in mm) + * @param array $magnifications An array with the possible magnifications */ public function calculateBestMagnification(float $SBObj, ?float $sqm, ?float $diameter, array $magnifications): ?float { - $bestContrast = -999; + $bestContrast = -999; $bestMagnification = 0; foreach ($magnifications as $magnification) { $contrast = $this->calculateContrastReserve($SBObj, $sqm, $diameter, $magnification); if ($contrast > $bestContrast) { - $bestContrast = $contrast; + $bestContrast = $contrast; $bestMagnification = $magnification; } } diff --git a/src/deepskylog/AstronomyLibrary/Targets/Uranus.php b/src/deepskylog/AstronomyLibrary/Targets/Uranus.php index 9aa1236..fe8af7e 100644 --- a/src/deepskylog/AstronomyLibrary/Targets/Uranus.php +++ b/src/deepskylog/AstronomyLibrary/Targets/Uranus.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -23,8 +25,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class Uranus extends Planet @@ -32,8 +36,7 @@ class Uranus extends Planet /** * Calculates the mean orbital elements. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -63,8 +66,7 @@ public function calculateMeanOrbitalElements(Carbon $date) /** * Calculates the mean orbital elements in J2000.0. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -94,8 +96,7 @@ public function calculateMeanOrbitalElementsJ2000(Carbon $date) /** * Calculates the heliocentric coordinates of Uranus. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return array L, B, R * * See chapter 32 of Astronomical Algorithms @@ -4124,8 +4125,7 @@ public function calculateHeliocentricCoordinates(Carbon $date): array /** * Calculates the opposition closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest opposition - * + * @param Carbon $date The date for which we want to calculate the closest opposition * @return Carbon The date of the opposition * * Chapter 36 of Astronomical Algorithms @@ -4139,7 +4139,7 @@ public function opposition(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -4165,8 +4165,7 @@ public function opposition(Carbon $date): Carbon /** * Calculates the conjunction closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest conjunction - * + * @param Carbon $date The date for which we want to calculate the closest conjunction * @return Carbon The date of the conjunction * * Chapter 36 of Astronomical Algorithms @@ -4180,7 +4179,7 @@ public function conjunction(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -4206,8 +4205,7 @@ public function conjunction(Carbon $date): Carbon /** * Returns the date of perihelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest perihelion - * + * @param Carbon $date The date for which we want to calculate the closest perihelion * @return Carbon The date of the perihelion * * Chapter 38 of Astronomical Algorithms @@ -4227,8 +4225,7 @@ public function perihelionDate(Carbon $date): Carbon /** * Returns the date of aphelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest aphelion - * + * @param Carbon $date The date for which we want to calculate the closest aphelion * @return Carbon The date of the aphelion * * Chapter 38 of Astronomical Algorithms @@ -4248,8 +4245,7 @@ public function aphelionDate(Carbon $date): Carbon /** * Calculates the magnitude at the given date. * - * @param Carbon $date The date for which we want to calculate the magnitude - * + * @param Carbon $date The date for which we want to calculate the magnitude * @return float The magnitude * * Chapter 41 of Astronomical Algorithms @@ -4280,8 +4276,7 @@ public function magnitude(Carbon $date): float * Calculate the diameter of Uranus. You can get the diamter * by using the getDiameter method. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return None * * Chapter 55 of Astronomical Algorithms diff --git a/src/deepskylog/AstronomyLibrary/Targets/Venus.php b/src/deepskylog/AstronomyLibrary/Targets/Venus.php index 27a0a2f..afa5b31 100644 --- a/src/deepskylog/AstronomyLibrary/Targets/Venus.php +++ b/src/deepskylog/AstronomyLibrary/Targets/Venus.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -23,8 +25,10 @@ * PHP Version 8 * * @category Target + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class Venus extends Planet @@ -32,8 +36,7 @@ class Venus extends Planet /** * Calculates the mean orbital elements. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -63,8 +66,7 @@ public function calculateMeanOrbitalElements(Carbon $date) /** * Calculates the mean orbital elements in J2000.0. * - * @param Carbon $date The needed date - * + * @param Carbon $date The needed date * @return array L = mean longitude of the planet * a = semimajor axis of the orbit * e = eccentricity of the orbit @@ -94,8 +96,7 @@ public function calculateMeanOrbitalElementsJ2000(Carbon $date) /** * Calculates the heliocentric coordinates of Venus. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return array L, B, R * * See chapter 32 of Astronomical Algorithms @@ -1819,8 +1820,7 @@ public function calculateHeliocentricCoordinates(Carbon $date): array /** * Calculates the inferior conjunction closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest inferior conjunction - * + * @param Carbon $date The date for which we want to calculate the closest inferior conjunction * @return Carbon The date of the inferior conjunction * * Chapter 36 of Astronomical Algorithms @@ -1834,7 +1834,7 @@ public function inferior_conjunction(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -1855,8 +1855,7 @@ public function inferior_conjunction(Carbon $date): Carbon /** * Calculates the superior conjunction closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest inferior conjunction - * + * @param Carbon $date The date for which we want to calculate the closest inferior conjunction * @return Carbon The date of the inferior conjunction * * Chapter 36 of Astronomical Algorithms @@ -1870,7 +1869,7 @@ public function superior_conjunction(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -1892,8 +1891,7 @@ public function superior_conjunction(Carbon $date): Carbon * Calculates the greatest eastern elongation closest to the given date. This is the best * evening visibility. * - * @param Carbon $date The date for which we want to calculate the greatest eastern elongation - * + * @param Carbon $date The date for which we want to calculate the greatest eastern elongation * @return Carbon The date of the greatest eastern elongation * * Chapter 36 of Astronomical Algorithms @@ -1907,7 +1905,7 @@ public function greatest_eastern_elongation(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -1929,8 +1927,7 @@ public function greatest_eastern_elongation(Carbon $date): Carbon * Calculates the greatest western elongation closest to the given date. This is the best * morning visibility. * - * @param Carbon $date The date for which we want to calculate the greatest western elongation - * + * @param Carbon $date The date for which we want to calculate the greatest western elongation * @return Carbon The date of the greatest western elongation * * Chapter 36 of Astronomical Algorithms @@ -1944,7 +1941,7 @@ public function greatest_western_elongation(Carbon $date): Carbon $Y = $date->year + $date->dayOfYear / (365 + $date->format('L')); - $k = ceil((365.2425 * $Y + 1721060 - $A) / ($B)); + $k = ceil((365.2425 * $Y + 1721060 - $A) / $B); $JDE0 = $A + $k * $B; $M = deg2rad($M0 + $k * $M1); $T = ($JDE0 - 2451545) / 36525; @@ -1965,8 +1962,7 @@ public function greatest_western_elongation(Carbon $date): Carbon /** * Returns the date of perihelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest perihelion - * + * @param Carbon $date The date for which we want to calculate the closest perihelion * @return Carbon The date of the perihelion * * Chapter 38 of Astronomical Algorithms @@ -1986,8 +1982,7 @@ public function perihelionDate(Carbon $date): Carbon /** * Returns the date of aphelion closest to the given date. * - * @param Carbon $date The date for which we want to calculate the closest aphelion - * + * @param Carbon $date The date for which we want to calculate the closest aphelion * @return Carbon The date of the aphelion * * Chapter 38 of Astronomical Algorithms @@ -2007,8 +2002,7 @@ public function aphelionDate(Carbon $date): Carbon /** * Calculates the magnitude at the given date. * - * @param Carbon $date The date for which we want to calculate the magnitude - * + * @param Carbon $date The date for which we want to calculate the magnitude * @return float The magnitude * * Chapter 41 of Astronomical Algorithms @@ -2039,8 +2033,7 @@ public function magnitude(Carbon $date): float * Calculate the diameter of Venus. You can get the diamter * by using the getDiameter method. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return None * * Chapter 55 of Astronomical Algorithms diff --git a/src/deepskylog/AstronomyLibrary/Time.php b/src/deepskylog/AstronomyLibrary/Time.php index daf271e..c3e5256 100644 --- a/src/deepskylog/AstronomyLibrary/Time.php +++ b/src/deepskylog/AstronomyLibrary/Time.php @@ -6,8 +6,10 @@ * PHP Version 8 * * @category Time + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -24,8 +26,10 @@ * PHP Version 8 * * @category Time + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class Time @@ -34,8 +38,7 @@ class Time * Calculates the julian day if the time is given. * Chapter 7 in Astronomical Algorithms. * - * @param Carbon $date The date, in the correct timezone - * + * @param Carbon $date The date, in the correct timezone * @return float the julian day */ public static function getJd(Carbon $date): float @@ -85,8 +88,7 @@ public static function getJd(Carbon $date): float * Calculates the carbon date is the julian day is given. * Chapter 7 in Astronomical Algorithms. * - * @param float $jd the julian day - * + * @param float $jd the julian day * @return Carbon The date, in the UTC timezone */ public static function fromJd(float $jd): Carbon @@ -143,8 +145,7 @@ public static function fromJd(float $jd): Carbon * Returns the dynamical time as the time + delta t. * Chapter 10 in Astronomical Algorithms. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return Carbon The dynamical time */ public static function dynamicalTime(Carbon $date): Carbon @@ -156,8 +157,7 @@ public static function dynamicalTime(Carbon $date): Carbon * Calculates delta t for the given date. * Chapter 10 in Astronomical Algorithms. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return float delta t in seconds */ public static function deltaT(Carbon $date): float @@ -231,9 +231,8 @@ public static function deltaT(Carbon $date): float * Calculates the mean siderial time for the given date. * Chapter 12 in Astronomical Algorithms. * - * @param Carbon $date The date - * @param GeographicalCoordinates $coords The geographical coordinates - * + * @param Carbon $date The date + * @param GeographicalCoordinates $coords The geographical coordinates * @return Carbon the siderial time */ public static function meanSiderialTime( @@ -255,7 +254,7 @@ public static function meanSiderialTime( $theta0 -= floor($theta0 / 360.0) * 360; $decimalHours = $theta0 / 15.0; - $hour = (int) ($decimalHours); + $hour = (int) $decimalHours; $decimalMinutes = ($decimalHours - $hour) * 60.0; $minutes = (int) $decimalMinutes; $seconds = ($decimalMinutes - $minutes) * 60.0; @@ -275,10 +274,9 @@ public static function meanSiderialTime( * Calculates the apparent siderial time for the given date. * Chapter 12 in Astronomical Algorithms. * - * @param Carbon $date The date - * @param GeographicalCoordinates $coords The geographical coordinates - * @param array $nutation The nutation array - * + * @param Carbon $date The date + * @param GeographicalCoordinates $coords The geographical coordinates + * @param array $nutation The nutation array * @return Carbon the siderial time */ public static function apparentSiderialTime( @@ -306,8 +304,7 @@ public static function apparentSiderialTime( * in Greenwich. * Chapter 12 in Astronomical Algorithms. * - * @param Carbon $date The date - * + * @param Carbon $date The date * @return Carbon the siderial time */ public static function apparentSiderialTimeGreenwich( @@ -326,8 +323,7 @@ public static function apparentSiderialTimeGreenwich( * Calculates the nutation for the given julian day. * Chapter 22 of Astronomical Algorithms. * - * @param float $jd The Julian day - * + * @param float $jd The Julian day * @return array The array with nutation in Longitude, nutation in Obliquity, * mean Obliquity and true Obliquity */ @@ -375,50 +371,50 @@ public static function nutation(float $jd): array + (217 - 0.5 * $T) * sin(deg2rad(-2 * $D - $M + 2 * $F + 2 * $omega)) + (-158) * sin(deg2rad(-2 * $D + $M_accent)) + (129 + 0.1 * $T) * sin(deg2rad(-2 * $D + 2 * $F + $omega)) - + (123) * sin(deg2rad(-$M_accent + 2 * $F + 2 * $omega)) - + (63) * sin(deg2rad(2 * $D)) + + 123 * sin(deg2rad(-$M_accent + 2 * $F + 2 * $omega)) + + 63 * sin(deg2rad(2 * $D)) + (63 + 0.1 * $T) * sin(deg2rad($M_accent + $omega)) + (-59) * sin(deg2rad(2 * $D - $M_accent + 2 * $F + 2 * $omega)) + (-58 - 0.1 * $T) * sin(deg2rad(-$M_accent + $omega)) + (-51) * sin(deg2rad($M_accent + 2 * $F + $omega)) - + (48) * sin(deg2rad(-2 * $D + 2 * $M_accent)) - + (46) * sin(deg2rad(-2 * $M_accent + 2 * $F + $omega)) + + 48 * sin(deg2rad(-2 * $D + 2 * $M_accent)) + + 46 * sin(deg2rad(-2 * $M_accent + 2 * $F + $omega)) + (-38) * sin(deg2rad(2 * $D + 2 * $F + 2 * $omega)) + (-31) * sin(deg2rad(2 * $M_accent + 2 * $F + 2 * $omega)) - + (29) * sin(deg2rad(2 * $M_accent)) - + (29) * sin(deg2rad(-2 * $D + $M_accent + 2 * $F + 2 * $omega)) - + (26) * sin(deg2rad(2 * $F)) + + 29 * sin(deg2rad(2 * $M_accent)) + + 29 * sin(deg2rad(-2 * $D + $M_accent + 2 * $F + 2 * $omega)) + + 26 * sin(deg2rad(2 * $F)) + (-22) * sin(deg2rad(-2 * $D + 2 * $F)) - + (21) * sin(deg2rad(-$M_accent + 2 * $F + $omega)) + + 21 * sin(deg2rad(-$M_accent + 2 * $F + $omega)) + (17 - 0.1 * $T) * sin(deg2rad(2 * $M)) - + (16) * sin(deg2rad(2 * $D - $M_accent + $omega)) + + 16 * sin(deg2rad(2 * $D - $M_accent + $omega)) + (-16 + 0.1 * $T) * sin(deg2rad(-2 * $D + 2 * $M + 2 * $F + 2 * $omega)) + (-15) * sin(deg2rad($M + $omega)) + (-13) * sin(deg2rad(-2 * $D + $M_accent + $omega)) + (-12) * sin(deg2rad(-$M + $omega)) - + (11) * sin(deg2rad(2 * $M_accent - 2 * $F)) + + 11 * sin(deg2rad(2 * $M_accent - 2 * $F)) + (-10) * sin(deg2rad(2 * $D - $M_accent + 2 * $F + $omega)) + (-8) * sin(deg2rad(2 * $D + $M_accent + 2 * $F + 2 * $omega)) - + (7) * sin(deg2rad($M + 2 * $F + 2 * $omega)) + + 7 * sin(deg2rad($M + 2 * $F + 2 * $omega)) + (-7) * sin(deg2rad(-2 * $D + $M + $M_accent)) + (-7) * sin(deg2rad(-$M + 2 * $F + 2 * $omega)) + (-7) * sin(deg2rad(2 * $D + 2 * $F + $omega)) - + (6) * sin(deg2rad(2 * $D + $M_accent)) - + (6) * sin(deg2rad(-2 * $D + 2 * $M_accent + 2 * $F + 2 * $omega)) - + (6) * sin(deg2rad(-2 * $D + $M_accent + 2 * $F + $omega)) + + 6 * sin(deg2rad(2 * $D + $M_accent)) + + 6 * sin(deg2rad(-2 * $D + 2 * $M_accent + 2 * $F + 2 * $omega)) + + 6 * sin(deg2rad(-2 * $D + $M_accent + 2 * $F + $omega)) + (-6) * sin(deg2rad(2 * $D - 2 * $M_accent + $omega)) + (-6) * sin(deg2rad(2 * $D + $omega)) - + (5) * sin(deg2rad(-$M + $M_accent)) + + 5 * sin(deg2rad(-$M + $M_accent)) + (-5) * sin(deg2rad(-2 * $D - $M + 2 * $F + $omega)) + (-5) * sin(deg2rad(-2 * $D + $omega)) + (-5) * sin(deg2rad(2 * $M_accent + 2 * $F + $omega)) - + (4) * sin(deg2rad(-2 * $D + 2 * $M_accent + $omega)) - + (4) * sin(deg2rad(-2 * $D + $M + 2 * $F + $omega)) - + (4) * sin(deg2rad($M_accent - 2 * $F)) + + 4 * sin(deg2rad(-2 * $D + 2 * $M_accent + $omega)) + + 4 * sin(deg2rad(-2 * $D + $M + 2 * $F + $omega)) + + 4 * sin(deg2rad($M_accent - 2 * $F)) + (-4) * sin(deg2rad(-$D + $M_accent)) + (-4) * sin(deg2rad(-2 * $D + $M)) + (-4) * sin(deg2rad($D)) - + (3) * sin(deg2rad($M_accent + 2 * $F)) + + 3 * sin(deg2rad($M_accent + 2 * $F)) + (-3) * sin(deg2rad(-2 * $M_accent + 2 * $F + 2 * $omega)) + (-3) * sin(deg2rad(-$D - $M + $M_accent)) + (-3) * sin(deg2rad($M + $M_accent)) @@ -437,37 +433,37 @@ public static function nutation(float $jd): array + (54 - 0.1 * $T) * cos(deg2rad($M)) + (-7) * cos(deg2rad($M_accent)) + (224 - 0.6 * $T) * cos(deg2rad(-2 * $D + $M + 2 * $F + 2 * $omega)) - + (200) * cos(deg2rad(2 * $F + $omega)) + + 200 * cos(deg2rad(2 * $F + $omega)) + (129 - 0.1 * $T) * cos(deg2rad($M_accent + 2 * $F + 2 * $omega)) + (-95 + 0.3 * $T) * cos(deg2rad(-2 * $D - $M + 2 * $F + 2 * $omega)) + (-70) * cos(deg2rad(-2 * $D + 2 * $F + $omega)) + (-53) * cos(deg2rad(-$M_accent + 2 * $F + 2 * $omega)) + (-33) * cos(deg2rad($M_accent + $omega)) - + (26) * cos(deg2rad(2 * $D - $M_accent + 2 * $F + 2 * $omega)) - + (32) * cos(deg2rad(-$M_accent + $omega)) - + (27) * cos(deg2rad($M_accent + 2 * $F + $omega)) + + 26 * cos(deg2rad(2 * $D - $M_accent + 2 * $F + 2 * $omega)) + + 32 * cos(deg2rad(-$M_accent + $omega)) + + 27 * cos(deg2rad($M_accent + 2 * $F + $omega)) + (-24) * cos(deg2rad(-2 * $M_accent + 2 * $F + $omega)) - + (16) * cos(deg2rad(2 * $D + 2 * $F + 2 * $omega)) - + (13) * cos(deg2rad(2 * $M_accent + 2 * $F + 2 * $omega)) + + 16 * cos(deg2rad(2 * $D + 2 * $F + 2 * $omega)) + + 13 * cos(deg2rad(2 * $M_accent + 2 * $F + 2 * $omega)) + (-12) * cos(deg2rad(-2 * $D + $M_accent + 2 * $F + 2 * $omega)) + (-10) * cos(deg2rad(-$M_accent + 2 * $F + $omega)) + (-8) * cos(deg2rad(2 * $D - $M_accent + $omega)) - + (7) * cos(deg2rad(-2 * $D + 2 * $M + 2 * $F + 2 * $omega)) - + (9) * cos(deg2rad($M + $omega)) - + (7) * cos(deg2rad(-2 * $D + $M_accent + $omega)) - + (6) * cos(deg2rad(-$M + $omega)) - + (5) * cos(deg2rad(2 * $D - $M_accent + 2 * $F + $omega)) - + (3) * cos(deg2rad(2 * $D + $M_accent + 2 * $F + 2 * $omega)) + + 7 * cos(deg2rad(-2 * $D + 2 * $M + 2 * $F + 2 * $omega)) + + 9 * cos(deg2rad($M + $omega)) + + 7 * cos(deg2rad(-2 * $D + $M_accent + $omega)) + + 6 * cos(deg2rad(-$M + $omega)) + + 5 * cos(deg2rad(2 * $D - $M_accent + 2 * $F + $omega)) + + 3 * cos(deg2rad(2 * $D + $M_accent + 2 * $F + 2 * $omega)) + (-3) * cos(deg2rad($M + 2 * $F + 2 * $omega)) - + (3) * cos(deg2rad(-$M + 2 * $F + 2 * $omega)) - + (3) * cos(deg2rad(2 * $D + 2 * $F + $omega)) + + 3 * cos(deg2rad(-$M + 2 * $F + 2 * $omega)) + + 3 * cos(deg2rad(2 * $D + 2 * $F + $omega)) + (-3) * cos(deg2rad(-2 * $D + 2 * $M_accent + 2 * $F + 2 * $omega)) + (-3) * cos(deg2rad(-2 * $D + $M_accent + 2 * $F + $omega)) - + (3) * cos(deg2rad(2 * $D - 2 * $M_accent + $omega)) - + (3) * cos(deg2rad(2 * $D + $omega)) - + (3) * cos(deg2rad(-2 * $D - $M + 2 * $F + $omega)) - + (3) * cos(deg2rad(-2 * $D + $omega)) - + (3) * cos(deg2rad(2 * $M_accent + 2 * $F + $omega)); + + 3 * cos(deg2rad(2 * $D - 2 * $M_accent + $omega)) + + 3 * cos(deg2rad(2 * $D + $omega)) + + 3 * cos(deg2rad(-2 * $D - $M + 2 * $F + $omega)) + + 3 * cos(deg2rad(-2 * $D + $omega)) + + 3 * cos(deg2rad(2 * $M_accent + 2 * $F + $omega)); $nutObliquity /= 10000.0; @@ -497,8 +493,7 @@ public static function nutation(float $jd): array * Returns the date of spring for the given year * Chapter 27 of Astronomical Algorithms. * - * @param Carbon $date The date, with the year for which to calculate spring. - * + * @param Carbon $date The date, with the year for which to calculate spring. * @return Carbon The correct time and date for spring */ public static function getSpring(Carbon $date): Carbon @@ -520,8 +515,7 @@ public static function getSpring(Carbon $date): Carbon * Returns the date of summer for the given year * Chapter 27 of Astronomical Algorithms. * - * @param Carbon $date The date, with the year for which to calculate summer. - * + * @param Carbon $date The date, with the year for which to calculate summer. * @return Carbon The correct time and date for summer */ public static function getSummer(Carbon $date): Carbon @@ -543,8 +537,7 @@ public static function getSummer(Carbon $date): Carbon * Returns the date of autumn for the given year * Chapter 27 of Astronomical Algorithms. * - * @param Carbon $date The date, with the year for which to calculate autumn. - * + * @param Carbon $date The date, with the year for which to calculate autumn. * @return Carbon The correct time and date for autumn */ public static function getAutumn(Carbon $date): Carbon @@ -566,8 +559,7 @@ public static function getAutumn(Carbon $date): Carbon * Returns the date of winter for the given year * Chapter 27 of Astronomical Algorithms. * - * @param Carbon $date The date, with the year for which to calculate winter. - * + * @param Carbon $date The date, with the year for which to calculate winter. * @return Carbon The correct time and date for winter */ public static function getWinter(Carbon $date): Carbon diff --git a/tests/Unit/ContrastTest.php b/tests/Unit/ContrastTest.php index 12b2d86..7c9299c 100644 --- a/tests/Unit/ContrastTest.php +++ b/tests/Unit/ContrastTest.php @@ -5,8 +5,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -21,8 +23,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class ContrastTest extends BaseTestCase diff --git a/tests/Unit/EclipticalCoordinatesTest.php b/tests/Unit/EclipticalCoordinatesTest.php index 7ebed0a..353d1df 100644 --- a/tests/Unit/EclipticalCoordinatesTest.php +++ b/tests/Unit/EclipticalCoordinatesTest.php @@ -5,8 +5,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -22,8 +24,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class EclipticalCoordinatesTest extends BaseTestCase diff --git a/tests/Unit/GalacticCoordinatesTest.php b/tests/Unit/GalacticCoordinatesTest.php index 06a01e7..359028f 100644 --- a/tests/Unit/GalacticCoordinatesTest.php +++ b/tests/Unit/GalacticCoordinatesTest.php @@ -5,8 +5,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -21,8 +23,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class GalacticCoordinatesTest extends BaseTestCase diff --git a/tests/Unit/GeographicalCoordinatesTest.php b/tests/Unit/GeographicalCoordinatesTest.php index e84ec76..c6a2d1b 100644 --- a/tests/Unit/GeographicalCoordinatesTest.php +++ b/tests/Unit/GeographicalCoordinatesTest.php @@ -5,8 +5,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -21,8 +23,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class GeographicalCoordinatesTest extends BaseTestCase diff --git a/tests/Unit/HorizontalCoordinatesTest.php b/tests/Unit/HorizontalCoordinatesTest.php index 2400320..8eea3b2 100644 --- a/tests/Unit/HorizontalCoordinatesTest.php +++ b/tests/Unit/HorizontalCoordinatesTest.php @@ -5,8 +5,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -24,8 +26,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class HorizontalCoordinatesTest extends BaseTestCase diff --git a/tests/Unit/MagnitudeTest.php b/tests/Unit/MagnitudeTest.php index d482dd8..7168db4 100644 --- a/tests/Unit/MagnitudeTest.php +++ b/tests/Unit/MagnitudeTest.php @@ -5,8 +5,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -21,8 +23,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class MagnitudeTest extends BaseTestCase diff --git a/tests/Unit/TargetTest.php b/tests/Unit/TargetTest.php index 6b69377..2301718 100644 --- a/tests/Unit/TargetTest.php +++ b/tests/Unit/TargetTest.php @@ -5,8 +5,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -38,8 +40,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class TargetTest extends BaseTestCase diff --git a/tests/Unit/TimeTest.php b/tests/Unit/TimeTest.php index 60a94c8..f515d38 100644 --- a/tests/Unit/TimeTest.php +++ b/tests/Unit/TimeTest.php @@ -5,8 +5,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ @@ -25,8 +27,10 @@ * PHP Version 8 * * @category Tests + * * @author Deepsky Developers * @license GPL3 + * * @link http://www.deepskylog.org */ class TimeTest extends BaseTestCase