From 90c3ad32cb06531ac48f163770cd0b25214eaf3e Mon Sep 17 00:00:00 2001 From: salam Date: Thu, 30 Apr 2026 08:38:04 +0200 Subject: [PATCH] wip --- app/Actions/Statistics/LoadEvents.php | 159 ++++++-- app/Actions/Statistics/MedianVsMittelwert.md | 34 ++ app/Actions/Statistics/MoveingAverage.php | 45 +++ app/Filament/Widgets/MovingAverageChart.php | 31 +- app/Filament/Widgets/PunctualChart.php | 17 +- composer.lock | 377 +++++++++---------- 6 files changed, 399 insertions(+), 264 deletions(-) create mode 100644 app/Actions/Statistics/MedianVsMittelwert.md create mode 100644 app/Actions/Statistics/MoveingAverage.php diff --git a/app/Actions/Statistics/LoadEvents.php b/app/Actions/Statistics/LoadEvents.php index 8d8ed623..9d7ad5ab 100644 --- a/app/Actions/Statistics/LoadEvents.php +++ b/app/Actions/Statistics/LoadEvents.php @@ -6,11 +6,21 @@ use App\Models\StatistikoEvent; class LoadEvents { + public static $last_query = []; + public static function load($filter) { + + if (self::$last_query) { + return self::$last_query; + } + $league_id = (int) $filter['league_id'] ?? 0; + $team_id = (int) $filter['team_id'] ?? 0; + $team_position = $filter['team_position']; + if (! $league_id) { return []; } @@ -46,40 +56,127 @@ class LoadEvents // $tmp['exp_away'] = (float) $value['expgoalsaway_value']; // $tmp['exp_home'] = (float) $value['expgoalshome_value']; - switch ($filter['statistic_type']) { - case 'gls': - $tmp['gls_a'] = (int) $value['gls_a']; - $tmp['gls_h'] = (int) $value['gls_h']; - break; - case 'crn': - $tmp['crn_a'] = (int) $value['crn_a']; - $tmp['crn_h'] = (int) $value['crn_h']; - break; - case 'fls': - $tmp['fls_a'] = (int) $value['fls_a']; - $tmp['fls_h'] = (int) $value['fls_h']; - break; - case 'ofs': - $tmp['ofs_a'] = (int) $value['ofs_a']; - $tmp['ofs_h'] = (int) $value['ofs_h']; - break; - case 'crd': - $tmp['crd_a'] = (int) $value['crd_a']; - $tmp['crd_h'] = (int) $value['crd_h']; - break; - case 'snt': - $tmp['snt_a'] = (int) $value['snt_a']; - $tmp['snt_h'] = (int) $value['snt_h']; - break; - case 'tsh': - $tmp['tsh_a'] = (int) $value['tsh_a']; - $tmp['tsh_h'] = (int) $value['tsh_h']; - break; + if ($team_position == 'home') { + + switch ($filter['statistic_type']) { + case 'gls': + $val = (int) $value['gls_h']; + break; + case 'crn': + $val = (int) $value['crn_h']; + break; + case 'fls': + $val = (int) $value['fls_h']; + break; + case 'ofs': + $val = (int) $value['ofs_h']; + break; + case 'crd': + $val = (int) $value['crd_h']; + break; + case 'snt': + $val = (int) $value['snt_h']; + break; + case 'tsh': + $val = (int) $value['tsh_h']; + break; + } + } elseif ($team_position == 'away') { + + switch ($filter['statistic_type']) { + case 'gls': + $val = (int) $value['gls_a']; + break; + case 'crn': + $val = (int) $value['crn_a']; + break; + case 'fls': + $val = (int) $value['fls_a']; + break; + case 'ofs': + $val = (int) $value['ofs_a']; + break; + case 'crd': + $val = (int) $value['crd_a']; + break; + case 'snt': + $val = (int) $value['snt_a']; + break; + case 'tsh': + $val = (int) $value['tsh_a']; + break; + } + } else { + + switch ($filter['statistic_type']) { + case 'gls': + if ($team_id == $value['home_id']) { + $val = (int) $value['gls_a']; + } else { + $val = (int) $value['gls_h']; + } + break; + case 'crn': + if ($team_id == $value['home_id']) { + $val = (int) $value['crn_a']; + } else { + $val = (int) $value['crn_h']; + } + break; + case 'fls': + if ($team_id == $value['home_id']) { + $val = (int) $value['fls_a']; + } else { + $val = (int) $value['fls_h']; + } + break; + case 'ofs': + if ($team_id == $value['home_id']) { + $val = (int) $value['ofs_a']; + } else { + $val = (int) $value['ofs_h']; + } + break; + case 'crd': + if ($team_id == $value['home_id']) { + $val = (int) $value['crd_a']; + } else { + $val = (int) $value['crd_h']; + } + break; + case 'snt': + if ($team_id == $value['home_id']) { + $val = (int) $value['snt_a']; + } else { + $val = (int) $value['snt_h']; + } + break; + case 'tsh': + if ($team_id == $value['home_id']) { + $val = (int) $value['tsh_a']; + } else { + $val = (int) $value['tsh_h']; + } + break; + } } - $datasets[] = $tmp; + $datasets[] = $val; } - return ['lables' => $labels, 'datasets' => $datasets]; + $data = [ + 'datasets' => [ + [ + 'label' => ucfirst($team_position), + 'data' => $datasets, + 'borderColor' => '#36A2EB', + ], + ], + 'labels' => $labels, + ]; + + self::$last_query = $data; + + return $data; } } diff --git a/app/Actions/Statistics/MedianVsMittelwert.md b/app/Actions/Statistics/MedianVsMittelwert.md new file mode 100644 index 00000000..10e06191 --- /dev/null +++ b/app/Actions/Statistics/MedianVsMittelwert.md @@ -0,0 +1,34 @@ +Median +Wikipedia +https://de.wikipedia.org › wiki › Median +Der Median der Messwerte einer Urliste ist derjenige Messwert, der genau „in der Mitte“ steht, wenn man die Messwerte der Größe nach sortiert. Beispielsweise ... +Weitere Fragen +Was sagt der Medianwert aus? + +Was ist der Unterschied von Median- und Mittelwert? + +Der Hauptunterschied liegt in der Berechnung und Robustheit: Der Durchschnitt (arithmetisches Mittel) summiert alle Werte und teilt durch deren Anzahl, ist aber anfällig für Ausreißer. Der Median ist der exakte Mittelwert einer sortierten Reihe; er teilt Daten in zwei Hälften und ist robuster gegenüber extremen Werten. +Hier sind die Details: + + Durchschnitt (Arithmetisches Mittel): + Berechnung: + + Summe aller Werte/ Anzahl der Werte + + Eigenschaft: Berücksichtigt jeden Datenpunkt. + Nachteil: Extremwerte (sehr hohe oder niedrige Zahlen) verzerren das Ergebnis stark. + Beispiel: Bei Einkommen von 1.000€, 1.500€, 2.000€ und 50.000€ liegt der Durchschnitt bei 13.625€, was nicht die Situation der Mehrheit widerspiegelt. + +Median (Zentralwert): + + Berechnung: Daten sortieren, der mittlere Wert ist der Median. Bei gerader Anzahl: Mittelwert der beiden mittleren Werte. + Eigenschaft: Teilt die Daten in zwei gleich große Hälften (50 % sind kleiner, 50 % größer). + Vorteil: Unempfindlich gegenüber Ausreißern (robust). + Beispiel: Im obigen Einkommensbeispiel (1.000, 1.500, 2.000, 50.000) ist der Median 1.750€ ( + (1.500 + 2.000)/2 (bei gerader Anzahle der Werte) + ), was die Situation besser repräsentiert. + +Wann was verwenden? + + Durchschnitt: Bei gleichmäßiger Verteilung ohne große Ausreißer. + Median: Bei ungleichmäßiger Verteilung (schiefe Verteilung), wie bei Einkommen oder Immobilienpreisen. \ No newline at end of file diff --git a/app/Actions/Statistics/MoveingAverage.php b/app/Actions/Statistics/MoveingAverage.php new file mode 100644 index 00000000..65ce9c72 --- /dev/null +++ b/app/Actions/Statistics/MoveingAverage.php @@ -0,0 +1,45 @@ + $value) { + switch ($key) { + case 0: + $new[] = $value; + break; + case 1: + $new[] = ($arr[0] + $value) / 2; + break; + case $second_last: + $new[] = ($arr[$second_last] + $arr[$last]) / 2; + break; + case $last: + $new[] = $arr[$last]; + break; + default: + $before = $key--; + $after = $key++; + $new[] = ($arr[$before] + $value + $arr[$after]) / 3; + break; + } + } + // $data['datasets'][0]['backgroundColor'] = '#00a63e'; + $data['datasets'][0]['borderColor'] = '#00a63e'; + // $data['datasets'][0]['fill'] = true; + $data['datasets'][0]['tension'] = 0.5; + // $data['datasets'][0]['borderRadius'] = 30; + $data['datasets'][0]['data'] = $new; + } +} diff --git a/app/Filament/Widgets/MovingAverageChart.php b/app/Filament/Widgets/MovingAverageChart.php index fb07ebf2..94d7b0e2 100644 --- a/app/Filament/Widgets/MovingAverageChart.php +++ b/app/Filament/Widgets/MovingAverageChart.php @@ -3,11 +3,10 @@ namespace App\Filament\Widgets; use App\Actions\Statistics\LoadEvents; +use App\Actions\Statistics\MoveingAverage; use App\Actions\Statistics\StatisticType; -use Filament\Notifications\Notification; use Filament\Widgets\ChartWidget; use Filament\Widgets\Concerns\InteractsWithPageFilters; -use Illuminate\Support\Facades\Log; class MovingAverageChart extends ChartWidget { @@ -26,33 +25,9 @@ class MovingAverageChart extends ChartWidget { $this->heading = StatisticType::get($this->filters); - if (! $this->filters['league_id']) { - return []; - } - if (! $this->filters['team_id']) { - // Notification::make() - // ->title('Team is missing') - // ->warning() - // ->send(); - return []; - } + $data = LoadEvents::load($this->filters); - // Log::info($this->filters); - - // $tmp = LoadEvents::load($this->filters); - // Log::info($tmp); - - $data = [ - 'datasets' => [ - [ - 'label' => 'test', - 'data' => [0, 10, 5, 2, 21, 32, 45, 74, 65, 45, 77, 89], - 'borderColor' => '#00c950', - 'backgroundColor' => '#00c950', - ], - ], - 'labels' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], - ]; + MoveingAverage::get($data); return $data; } diff --git a/app/Filament/Widgets/PunctualChart.php b/app/Filament/Widgets/PunctualChart.php index b3cdbb41..183f608f 100644 --- a/app/Filament/Widgets/PunctualChart.php +++ b/app/Filament/Widgets/PunctualChart.php @@ -3,6 +3,7 @@ namespace App\Filament\Widgets; // use App\Actions\Statistics\StatisticEvents; +use App\Actions\Statistics\LoadEvents; use App\Actions\Statistics\StatisticType; use Filament\Widgets\ChartWidget; use Filament\Widgets\Concerns\InteractsWithPageFilters; @@ -11,6 +12,11 @@ class PunctualChart extends ChartWidget { use InteractsWithPageFilters; + /** + * 1. Ein Diagramm, das die Werte des ausgewählten Feldes GRUPPE 2 (HEIM/AUSWÄRTS/VERANSTALTUNG) darstellt, + * mit dem Punktwert auf der Ordinate und dem aufsteigenden Datum auf der Abszisse, + * und das den Mittelwert und den Medianwert für die ausgewählte Statistik an den ausgewählten Daten enthält. + */ protected ?string $pollingInterval = null; public ?string $header; @@ -24,16 +30,7 @@ class PunctualChart extends ChartWidget { $this->heading = StatisticType::get($this->filters); - $data = [ - 'datasets' => [ - [ - 'label' => 'test', - 'data' => [0, 10, 5, 2, 21, 32, 45, 74, 65, 45, 77, 89], - 'backgroundColor' => '#36A2EB', - ], - ], - 'labels' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], - ]; + $data = LoadEvents::load($this->filters); return $data; } diff --git a/composer.lock b/composer.lock index 1e13a886..c9932537 100644 --- a/composer.lock +++ b/composer.lock @@ -2955,20 +2955,20 @@ }, { "name": "laravel/framework", - "version": "v12.58.0", + "version": "v11.51.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "6172ae1f44ba5d89e111057ee4a4e7c27f5a610d" + "reference": "c8f9a04594b7044a189a3194cfb3594251eb74e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/6172ae1f44ba5d89e111057ee4a4e7c27f5a610d", - "reference": "6172ae1f44ba5d89e111057ee4a4e7c27f5a610d", + "url": "https://api.github.com/repos/laravel/framework/zipball/c8f9a04594b7044a189a3194cfb3594251eb74e5", + "reference": "c8f9a04594b7044a189a3194cfb3594251eb74e5", "shasum": "" }, "require": { - "brick/math": "^0.11|^0.12|^0.13|^0.14", + "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12|^0.13|^0.14", "composer-runtime-api": "^2.2", "doctrine/inflector": "^2.0.5", "dragonmantank/cron-expression": "^3.4", @@ -2983,34 +2983,32 @@ "fruitcake/php-cors": "^1.3", "guzzlehttp/guzzle": "^7.8.2", "guzzlehttp/uri-template": "^1.0", - "laravel/prompts": "^0.3.0", + "laravel/prompts": "^0.1.18|^0.2.0|^0.3.0", "laravel/serializable-closure": "^1.3|^2.0", - "league/commonmark": "^2.8.1", + "league/commonmark": "^2.7", "league/flysystem": "^3.25.1", "league/flysystem-local": "^3.25.1", "league/uri": "^7.5.1", "monolog/monolog": "^3.0", - "nesbot/carbon": "^3.8.4", + "nesbot/carbon": "^2.72.6|^3.8.4", "nunomaduro/termwind": "^2.0", "php": "^8.2", "psr/container": "^1.1.1|^2.0.1", "psr/log": "^1.0|^2.0|^3.0", "psr/simple-cache": "^1.0|^2.0|^3.0", "ramsey/uuid": "^4.7", - "symfony/console": "^7.2.0", - "symfony/error-handler": "^7.2.0", - "symfony/finder": "^7.2.0", + "symfony/console": "^7.0.3", + "symfony/error-handler": "^7.0.3", + "symfony/finder": "^7.0.3", "symfony/http-foundation": "^7.2.0", - "symfony/http-kernel": "^7.2.0", - "symfony/mailer": "^7.2.0", - "symfony/mime": "^7.2.0", - "symfony/polyfill-php83": "^1.33", - "symfony/polyfill-php84": "^1.34", - "symfony/polyfill-php85": "^1.34", - "symfony/process": "^7.2.0", - "symfony/routing": "^7.2.0", - "symfony/uid": "^7.2.0", - "symfony/var-dumper": "^7.2.0", + "symfony/http-kernel": "^7.0.3", + "symfony/mailer": "^7.0.3", + "symfony/mime": "^7.0.3", + "symfony/polyfill-php83": "^1.31", + "symfony/process": "^7.0.3", + "symfony/routing": "^7.0.3", + "symfony/uid": "^7.0.3", + "symfony/var-dumper": "^7.0.3", "tijsverkoyen/css-to-inline-styles": "^2.2.5", "vlucas/phpdotenv": "^5.6.1", "voku/portable-ascii": "^2.0.2" @@ -3042,7 +3040,6 @@ "illuminate/filesystem": "self.version", "illuminate/hashing": "self.version", "illuminate/http": "self.version", - "illuminate/json-schema": "self.version", "illuminate/log": "self.version", "illuminate/macroable": "self.version", "illuminate/mail": "self.version", @@ -3052,7 +3049,6 @@ "illuminate/process": "self.version", "illuminate/queue": "self.version", "illuminate/redis": "self.version", - "illuminate/reflection": "self.version", "illuminate/routing": "self.version", "illuminate/session": "self.version", "illuminate/support": "self.version", @@ -3076,18 +3072,17 @@ "league/flysystem-read-only": "^3.25.1", "league/flysystem-sftp-v3": "^3.25.1", "mockery/mockery": "^1.6.10", - "opis/json-schema": "^2.4.1", - "orchestra/testbench-core": "^10.9.0", - "pda/pheanstalk": "^5.0.6|^7.0.0", + "orchestra/testbench-core": "^9.18.0", + "pda/pheanstalk": "^5.0.6", "php-http/discovery": "^1.15", - "phpstan/phpstan": "^2.1.41", - "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", - "predis/predis": "^2.3|^3.0", - "resend/resend-php": "^0.10.0|^1.0", - "symfony/cache": "^7.2.0", - "symfony/http-client": "^7.2.0", - "symfony/psr-http-message-bridge": "^7.2.0", - "symfony/translation": "^7.2.0" + "phpstan/phpstan": "2.1.41", + "phpunit/phpunit": "^10.5.35|^11.3.6|^12.0.1", + "predis/predis": "^2.3", + "resend/resend-php": "^0.10.0", + "symfony/cache": "^7.0.3", + "symfony/http-client": "^7.0.3", + "symfony/psr-http-message-bridge": "^7.0.3", + "symfony/translation": "^7.0.3" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", @@ -3102,7 +3097,7 @@ "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|^6.0).", - "fakerphp/faker": "Required to generate fake data using the fake() helper (^1.23).", + "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", "filp/whoops": "Required for friendly error pages in development (^2.14.3).", "laravel/tinker": "Required to use the tinker console command (^2.0).", "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.25.1).", @@ -3113,22 +3108,22 @@ "mockery/mockery": "Required to use mocking (^1.6).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).", "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).", - "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.5.3|^12.0.1).", - "predis/predis": "Required to use the predis connector (^2.3|^3.0).", + "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.3.6|^12.0.1).", + "predis/predis": "Required to use the predis connector (^2.3).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", - "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0|^1.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^7.2).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).", - "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).", - "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.2).", - "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.2).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.2)." + "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^7.0).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^7.0).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.0).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.0).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.0).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.0)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "12.x-dev" + "dev-master": "11.x-dev" } }, "autoload": { @@ -3139,7 +3134,6 @@ "src/Illuminate/Filesystem/functions.php", "src/Illuminate/Foundation/helpers.php", "src/Illuminate/Log/functions.php", - "src/Illuminate/Reflection/helpers.php", "src/Illuminate/Support/functions.php", "src/Illuminate/Support/helpers.php" ], @@ -3148,8 +3142,7 @@ "Illuminate\\Support\\": [ "src/Illuminate/Macroable/", "src/Illuminate/Collections/", - "src/Illuminate/Conditionable/", - "src/Illuminate/Reflection/" + "src/Illuminate/Conditionable/" ] } }, @@ -3173,7 +3166,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-04-26T16:42:04+00:00" + "time": "2026-03-26T14:54:53+00:00" }, { "name": "laravel/prompts", @@ -4420,27 +4413,27 @@ }, { "name": "mongodb/laravel-mongodb", - "version": "5.7.1", + "version": "5.1.1", "source": { "type": "git", - "url": "https://github.com/mongodb/laravel-mongodb", - "reference": "6e371e8e6deb9193f99a84c578e6c9d0a960e43a" + "url": "https://github.com/mongodb/laravel-mongodb.git", + "reference": "cc7e5ffd0e8e3a9acfebd7aa5a5aabac2fc5eac4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mongodb/laravel-mongodb/zipball/6e371e8e6deb9193f99a84c578e6c9d0a960e43a", - "reference": "6e371e8e6deb9193f99a84c578e6c9d0a960e43a", + "url": "https://api.github.com/repos/mongodb/laravel-mongodb/zipball/cc7e5ffd0e8e3a9acfebd7aa5a5aabac2fc5eac4", + "reference": "cc7e5ffd0e8e3a9acfebd7aa5a5aabac2fc5eac4", "shasum": "" }, "require": { "composer-runtime-api": "^2.0.0", - "ext-mongodb": "^1.21|^2", - "illuminate/cache": "^10.36|^11|^12|^13.0", - "illuminate/container": "^10.0|^11|^12|^13.0", - "illuminate/database": "^10.30|^11|^12|^13.0", - "illuminate/events": "^10.0|^11|^12|^13.0", - "illuminate/support": "^10.0|^11|^12|^13.0", - "mongodb/mongodb": "^1.21|^2", + "ext-mongodb": "^1.15", + "illuminate/cache": "^10.36|^11", + "illuminate/container": "^10.0|^11", + "illuminate/database": "^10.30|^11", + "illuminate/events": "^10.0|^11", + "illuminate/support": "^10.0|^11", + "mongodb/mongodb": "^1.18", "php": "^8.1" }, "conflict": { @@ -4450,19 +4443,20 @@ "jenssegers/mongodb": "self.version" }, "require-dev": { - "doctrine/coding-standard": "^12.0", - "laravel/scout": "^10.3", + "doctrine/coding-standard": "12.0.x-dev", "league/flysystem-gridfs": "^3.28", "league/flysystem-read-only": "^3.0", "mockery/mockery": "^1.4.4", - "orchestra/testbench": "^8.0|^9.0|^10.0|^11.0", - "phpstan/phpstan": "^1.10|^2.1", - "phpunit/phpunit": "^10.3|^11.5.3|^12.5.12", - "rector/rector": "^1.2|^2.3", - "spatie/laravel-query-builder": "^5.6|^6" + "mongodb/builder": "^0.2", + "orchestra/testbench": "^8.0|^9.0", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.3", + "rector/rector": "^1.2", + "spatie/laravel-query-builder": "^5.6" }, "suggest": { - "league/flysystem-gridfs": "Filesystem storage in MongoDB with GridFS" + "league/flysystem-gridfs": "Filesystem storage in MongoDB with GridFS", + "mongodb/builder": "Provides a fluent aggregation builder for MongoDB pipelines" }, "type": "library", "extra": { @@ -4488,11 +4482,6 @@ "email": "andreas.braun@mongodb.com", "role": "Leader" }, - { - "name": "Pauline Vos", - "email": "pauline.vos@mongodb.com", - "role": "Maintainer" - }, { "name": "Jérôme Tamarelle", "email": "jerome.tamarelle@mongodb.com", @@ -4521,40 +4510,41 @@ ], "support": { "issues": "https://www.mongodb.com/support", - "security": "https://www.mongodb.com/security" + "security": "https://www.mongodb.com/security", + "source": "https://github.com/mongodb/laravel-mongodb/tree/5.1.1" }, - "time": "2026-04-15T12:18:12+00:00" + "time": "2025-01-06T09:22:28+00:00" }, { "name": "mongodb/mongodb", - "version": "2.2.0", + "version": "1.20.0", "source": { "type": "git", "url": "https://github.com/mongodb/mongo-php-library.git", - "reference": "bbb13f969e37e047fd822527543df55fdc1c9298" + "reference": "75da9ea3b63d97b05e0e8648d8c09a17bc54c0b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/bbb13f969e37e047fd822527543df55fdc1c9298", - "reference": "bbb13f969e37e047fd822527543df55fdc1c9298", + "url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/75da9ea3b63d97b05e0e8648d8c09a17bc54c0b6", + "reference": "75da9ea3b63d97b05e0e8648d8c09a17bc54c0b6", "shasum": "" }, "require": { "composer-runtime-api": "^2.0", - "ext-mongodb": "^2.2", - "php": "^8.1", + "ext-hash": "*", + "ext-json": "*", + "ext-mongodb": "^1.20.0", + "php": "^7.4 || ^8.0", "psr/log": "^1.1.4|^2|^3", - "symfony/polyfill-php85": "^1.32" - }, - "replace": { - "mongodb/builder": "*" + "symfony/polyfill-php80": "^1.27", + "symfony/polyfill-php81": "^1.27" }, "require-dev": { "doctrine/coding-standard": "^12.0", - "phpunit/phpunit": "^10.5.35", - "rector/rector": "^2.3.4", + "rector/rector": "^1.1", "squizlabs/php_codesniffer": "^3.7", - "vimeo/psalm": "~6.14.2" + "symfony/phpunit-bridge": "^5.2", + "vimeo/psalm": "^5.13" }, "type": "library", "extra": { @@ -4598,9 +4588,9 @@ ], "support": { "issues": "https://github.com/mongodb/mongo-php-library/issues", - "source": "https://github.com/mongodb/mongo-php-library/tree/2.2.0" + "source": "https://github.com/mongodb/mongo-php-library/tree/1.20.0" }, - "time": "2026-02-11T11:39:56+00:00" + "time": "2024-09-25T12:54:08+00:00" }, { "name": "monolog/monolog", @@ -6579,34 +6569,31 @@ }, { "name": "spatie/laravel-permission", - "version": "7.4.1", + "version": "6.25.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-permission.git", - "reference": "ef42ecb781e5534d368a3853fa161e420ad51397" + "reference": "d7d4cb0d58616722f1afc90e0484e4825155b9b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/ef42ecb781e5534d368a3853fa161e420ad51397", - "reference": "ef42ecb781e5534d368a3853fa161e420ad51397", + "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/d7d4cb0d58616722f1afc90e0484e4825155b9b3", + "reference": "d7d4cb0d58616722f1afc90e0484e4825155b9b3", "shasum": "" }, "require": { - "illuminate/auth": "^12.0|^13.0", - "illuminate/container": "^12.0|^13.0", - "illuminate/contracts": "^12.0|^13.0", - "illuminate/database": "^12.0|^13.0", - "php": "^8.3", - "spatie/laravel-package-tools": "^1.0" + "illuminate/auth": "^8.12|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/container": "^8.12|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/contracts": "^8.12|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/database": "^8.12|^9.0|^10.0|^11.0|^12.0|^13.0", + "php": "^8.0" }, "require-dev": { - "larastan/larastan": "^3.9", - "laravel/passport": "^13.0", + "laravel/passport": "^11.0|^12.0|^13.0", "laravel/pint": "^1.0", - "orchestra/testbench": "^10.0|^11.0", - "pestphp/pest": "^3.0|^4.0", - "pestphp/pest-plugin-laravel": "^3.0|^4.1", - "phpstan/phpstan": "^2.1" + "orchestra/testbench": "^6.23|^7.0|^8.0|^9.0|^10.0|^11.0", + "pestphp/pest": "^2.0|^3.0|^4.0", + "pestphp/pest-plugin-laravel": "^2.0|^3.0|^4.0" }, "type": "library", "extra": { @@ -6616,8 +6603,8 @@ ] }, "branch-alias": { - "dev-main": "7.x-dev", - "dev-master": "7.x-dev" + "dev-main": "6.x-dev", + "dev-master": "6.x-dev" } }, "autoload": { @@ -6640,7 +6627,7 @@ "role": "Developer" } ], - "description": "Permission handling for Laravel 12 and up", + "description": "Permission handling for Laravel 8.0 and up", "homepage": "https://github.com/spatie/laravel-permission", "keywords": [ "acl", @@ -6654,7 +6641,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-permission/issues", - "source": "https://github.com/spatie/laravel-permission/tree/7.4.1" + "source": "https://github.com/spatie/laravel-permission/tree/6.25.0" }, "funding": [ { @@ -6662,7 +6649,7 @@ "type": "github" } ], - "time": "2026-04-29T07:59:45+00:00" + "time": "2026-03-17T22:46:46+00:00" }, { "name": "spatie/shiki-php", @@ -8511,6 +8498,86 @@ ], "time": "2026-04-10T16:19:22+00:00" }, + { + "name": "symfony/polyfill-php81", + "version": "v1.37.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "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.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.37.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, { "name": "symfony/polyfill-php83", "version": "v1.37.0", @@ -8591,86 +8658,6 @@ ], "time": "2026-04-10T17:25:58+00:00" }, - { - "name": "symfony/polyfill-php84", - "version": "v1.37.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php84.git", - "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/88486db2c389b290bf87ff1de7ebc1e13e42bb06", - "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php84\\": "" - }, - "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.4+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.37.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-04-10T18:47:49+00:00" - }, { "name": "symfony/polyfill-php85", "version": "v1.37.0", @@ -13593,12 +13580,12 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": true, "prefer-lowest": false, "platform": { "php": "^8.3" }, - "platform-dev": [], - "plugin-api-version": "2.6.0" + "platform-dev": {}, + "plugin-api-version": "2.9.0" }