This commit is contained in:
salam committed 2026-04-30 08:38:04 +02:00
1 parent fb8518597f
commit 90c3ad32cb
6 files changed
+399 -264

No files matched your search

+128 -31
View File
@@ -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;
}
}
@@ -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.
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace App\Actions\Statistics;
class MoveingAverage
{
public static function get(&$data)
{
// dd($data);
$arr = $data['datasets'][0]['data'];
$new = [];
$last = count($arr);
$second_last = $last--;
foreach ($arr as $key => $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;
}
}
+3 -28
View File
@@ -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;
}
+7 -10
View File
@@ -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;
}
Generated
+182 -195
View File
@@ -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"
}