Date: Wed, 12 Nov 2025 22:56:57 +0000
Subject: [PATCH 6/9] feat: move static pages to laravel module (#80)
---
app/Http/Controllers/PageController.php | 142 --------
app/Http/Requests/PageRequest.php | 81 -----
app/Models/Page.php | 73 -----
app/Observers/PageObserver.php | 24 --
app/Policies/PagePolicy.php | 80 -----
app/Providers/AuthServiceProvider.php | 3 -
app/Providers/ObserverServiceProvider.php | 3 -
app/View/Composers/MainMenuComposer.php | 7 +-
composer.json | 11 +-
composer.lock | 147 ++++++++-
config/modules.php | 309 ++++++++++++++++++
...2025_11_12_224500_move_pages_to_module.php | 35 ++
.../Http/Controllers/StaticPageController.php | 35 ++
.../app/Providers/EventServiceProvider.php | 27 ++
.../app/Providers/RouteServiceProvider.php | 53 +++
.../Providers/StaticPageServiceProvider.php | 157 +++++++++
modules/StaticPage/composer.json | 22 ++
modules/StaticPage/config/config.php | 5 +
modules/StaticPage/module.json | 9 +
modules/StaticPage/package.json | 15 +
.../resources/views/about.blade.php | 47 +++
.../StaticPage/resources/views/faq.blade.php | 61 ++++
.../resources/views/landing.blade.php | 26 ++
.../resources/views/links.blade.php | 69 ++++
.../resources/views/privacy-policy.blade.php | 120 +++++++
modules/StaticPage/routes/api.php | 1 +
modules/StaticPage/routes/web.php | 10 +
.../tests/Feature/StaticPageTest.php | 45 +++
modules/StaticPage/tests/Unit/.gitkeep | 0
modules/StaticPage/vite.config.js | 21 ++
modules_statuses.json | 3 +
phpunit.xml | 10 +
resources/assets/sass/partials/_pages.scss | 30 --
resources/assets/sass/partials/partials.scss | 4 -
resources/views/app/includes/footer.blade.php | 6 +-
resources/views/home.blade.php | 15 -
resources/views/pages/create.blade.php | 23 --
resources/views/pages/edit.blade.php | 23 --
resources/views/pages/form.blade.php | 37 ---
resources/views/pages/index.blade.php | 72 ----
resources/views/pages/view.blade.php | 10 -
routes/web.php | 8 -
routes/web/page.php | 46 ---
tests/Feature/.gitkeep | 0
tests/Feature/PagesTest.php | 29 --
45 files changed, 1242 insertions(+), 712 deletions(-)
delete mode 100755 app/Http/Controllers/PageController.php
delete mode 100755 app/Http/Requests/PageRequest.php
delete mode 100755 app/Models/Page.php
delete mode 100755 app/Observers/PageObserver.php
delete mode 100755 app/Policies/PagePolicy.php
create mode 100644 config/modules.php
create mode 100644 database/migrations/2025_11_12_224500_move_pages_to_module.php
create mode 100644 modules/StaticPage/app/Http/Controllers/StaticPageController.php
create mode 100644 modules/StaticPage/app/Providers/EventServiceProvider.php
create mode 100644 modules/StaticPage/app/Providers/RouteServiceProvider.php
create mode 100644 modules/StaticPage/app/Providers/StaticPageServiceProvider.php
create mode 100644 modules/StaticPage/composer.json
create mode 100644 modules/StaticPage/config/config.php
create mode 100644 modules/StaticPage/module.json
create mode 100644 modules/StaticPage/package.json
create mode 100644 modules/StaticPage/resources/views/about.blade.php
create mode 100644 modules/StaticPage/resources/views/faq.blade.php
create mode 100644 modules/StaticPage/resources/views/landing.blade.php
create mode 100644 modules/StaticPage/resources/views/links.blade.php
create mode 100644 modules/StaticPage/resources/views/privacy-policy.blade.php
create mode 100644 modules/StaticPage/routes/api.php
create mode 100644 modules/StaticPage/routes/web.php
create mode 100644 modules/StaticPage/tests/Feature/StaticPageTest.php
create mode 100644 modules/StaticPage/tests/Unit/.gitkeep
create mode 100644 modules/StaticPage/vite.config.js
create mode 100644 modules_statuses.json
delete mode 100755 resources/assets/sass/partials/_pages.scss
delete mode 100755 resources/views/home.blade.php
delete mode 100755 resources/views/pages/create.blade.php
delete mode 100755 resources/views/pages/edit.blade.php
delete mode 100755 resources/views/pages/form.blade.php
delete mode 100755 resources/views/pages/index.blade.php
delete mode 100755 resources/views/pages/view.blade.php
delete mode 100755 routes/web/page.php
create mode 100644 tests/Feature/.gitkeep
delete mode 100644 tests/Feature/PagesTest.php
diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php
deleted file mode 100755
index 015b10fd..00000000
--- a/app/Http/Controllers/PageController.php
+++ /dev/null
@@ -1,142 +0,0 @@
-middleware('auth')->except('show');
- }
-
- /**
- * Display a listing of the resource.
- *
- * @return \Illuminate\Http\Response
- */
- public function index()
- {
- $this->authorize('index', Page::class);
-
- $pages = Page::orderBy('title')->paginate(15);
- $this->checkPage($pages);
-
- return view('pages.index')->with('pages', $pages);
- }
-
- /**
- * Show the form for creating a new resource.
- *
- * @return \Illuminate\Http\Response
- */
- public function create()
- {
- $this->authorize('create', Page::class);
-
- $page = new Page([
- 'user_id' => Auth::user()->id,
- 'published' => 1,
- ]);
-
- return view('pages.create')->with('page', $page);
- }
-
- /**
- * Store a newly created resource in storage.
- *
- * @param \App\Http\Requests\PageRequest $request
- *
- * @return \Illuminate\Http\Response
- */
- public function store(PageRequest $request)
- {
- $page = Page::create(clean($request->only('title', 'slug', 'content', 'published', 'user_id')));
- Notify::success('Page created');
-
- return redirect()->route('page.show', ['slug' => $page->slug]);
- }
-
- /**
- * Display the specified resource.
- *
- * @param $slug
- *
- * @return \Illuminate\Http\Response
- */
- public function show($slug)
- {
- $page = Page::findBySlugOrFail($slug);
-
- // Check if the page is published. This is a bit of a
- // hack as authorisation doesn't support guest users.
- if (!$page->published) {
- if (Auth::check() && Auth::user()->isAdmin()) {
- Notify::warning(
- 'This page will not be viewable by non-admins until it is published.',
- 'Page not published',
- );
- } elseif (!Auth::check()) {
- return redirect()->guest('login');
- } else {
- app()->abort(404);
- }
- }
-
- return view('pages.view')->with('page', $page);
- }
-
- /**
- * Show the form for editing the specified resource.
- *
- * @param $slug
- *
- * @return \Illuminate\Http\Response
- */
- public function edit($slug)
- {
- $page = Page::findBySlugOrFail($slug);
- $this->authorize('update', $page);
-
- return view('pages.edit')->with('page', $page);
- }
-
- /*
- * Update the specified resource in storage.
- * @param \Illuminate\Http\Request $request
- * @param $slug
- * @return \Illuminate\Http\Response
- */
- public function update(PageRequest $request, $slug)
- {
- $page = Page::findBySlugOrFail($slug);
-
- $page->update(clean($request->only('title', 'slug', 'content', 'published', 'user_id')));
- Notify::success('Page updated');
- return redirect()->route('page.index');
- }
-
- /**
- * Remove the specified resource from storage.
- *
- * @param $slug
- *
- * @return \Illuminate\Http\Response
- */
- public function destroy($slug)
- {
- $page = Page::findBySlugOrFail($slug);
- $this->authorize('delete', $page);
-
- $page->delete();
- Notify::success('Page deleted');
- return redirect()->route('page.index');
- }
-}
diff --git a/app/Http/Requests/PageRequest.php b/app/Http/Requests/PageRequest.php
deleted file mode 100755
index 21698b17..00000000
--- a/app/Http/Requests/PageRequest.php
+++ /dev/null
@@ -1,81 +0,0 @@
-route == 'page.store') {
- return $this->user()->can('create', Page::class);
- } elseif ($this->route == 'page.update') {
- $page = Page::findBySlug($this->route('slug'));
-
- return $this->user()->can('update', $page);
- } else {
- return false;
- }
- }
-
- /**
- * Override the default validationData method to automatically create the slug if needed.
- *
- * @return array
- */
- public function validationData()
- {
- $slug = $this->has('slug') ? $this->get('slug') : Str::slug($this->get('title'));
- $this->merge([
- 'slug' => $slug,
- ]);
-
- return $this->all();
- }
-
- /**
- * Get the validation rules that apply to the request.
- *
- * @return array
- */
- public function rules()
- {
- $route = $this->route()->getName();
- $slug_rule = $route == 'page.update' ? 'unique:pages,slug,' . $this->get('slug') . ',slug' : 'unique:pages';
-
- return [
- 'title' => 'required',
- 'slug' => 'required|' . $slug_rule . '|alpha_dash',
- 'content' => 'required',
- 'published' => 'required|boolean',
- 'user_id' => 'required|exists:users,id',
- ];
- }
-
- /**
- * Define the custom error messages.
- *
- * @return array
- */
- public function messages()
- {
- return [
- 'title.required' => 'Please enter the page\'s title',
- 'slug.required' => 'Please enter the page\'s slug',
- 'slug.unique' => 'That slug is already used by another page',
- 'slug.alpha_dash' => 'Please use letters, numbers and dashes only for the slug',
- 'content.required' => 'Please enter the page\'s content',
- 'published.required' => 'Please select the page\'s published state',
- 'published.boolean' => 'Please select \'Yes\' or \'No\'',
- 'user_id.required' => 'Please select the page\'s author',
- 'user_id.exists' => 'Please select the page\'s author',
- ];
- }
-}
diff --git a/app/Models/Page.php b/app/Models/Page.php
deleted file mode 100755
index b50c0f79..00000000
--- a/app/Models/Page.php
+++ /dev/null
@@ -1,73 +0,0 @@
- $slug])
- ->get()
- ->first();
- }
-
- /**
- * Method automatically throw a 404 if the page isn't found, or isn't published.
- *
- * @param $slug
- *
- * @return \App\Page
- */
- public static function findBySlugOrFail($slug)
- {
- if (!($page = static::findBySlug($slug))) {
- throw new NotFoundHttpException();
- }
-
- return $page;
- }
-
- /**
- * Create the foreign key link.
- *
- * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
- */
- public function author()
- {
- return $this->belongsTo('App\Models\Users\User', 'user_id');
- }
-
- /**
- * The scope that allows filtering pages by whether they're published or not.
- *
- * @param $query
- */
- public function scopePublished($query)
- {
- $query->where('published', 1);
- }
-}
diff --git a/app/Observers/PageObserver.php b/app/Observers/PageObserver.php
deleted file mode 100755
index 3c885797..00000000
--- a/app/Observers/PageObserver.php
+++ /dev/null
@@ -1,24 +0,0 @@
-getCreatedAttributes($page));
- }
-
- public function updated(Page $page)
- {
- Logger::log('page.edit', true, $this->getUpdatedAttributes($page));
- }
-
- public function deleted(Page $page)
- {
- Logger::log('page.delete', true, $this->getDeletedAttributes($page));
- }
-}
diff --git a/app/Policies/PagePolicy.php b/app/Policies/PagePolicy.php
deleted file mode 100755
index e57c74c3..00000000
--- a/app/Policies/PagePolicy.php
+++ /dev/null
@@ -1,80 +0,0 @@
-isAdmin();
- }
-
- /**
- * Determine whether the user can view the page.
- *
- * @param \App\Models\Users\User $user
- * @param \App\Models\Page $page
- *
- * @return mixed
- */
- public function view(User $user, Page $page)
- {
- if ($page->published == 1) {
- return true;
- } elseif ($user->isAdmin()) {
- Notify::warning(
- 'This page will not be viewable by non-admins until it is published.',
- 'Page not published',
- );
- return true;
- }
-
- return false;
- }
-
- /**
- * Determine whether the user can create pages.
- * @param \App\Models\Users\User $user
- * @return mixed
- */
- public function create(User $user)
- {
- return $user->isAdmin();
- }
-
- /**
- * Determine whether the user can update the page.
- * @param \App\Models\Users\User $user
- * @param \App\Models\Page $page
- * @return mixed
- */
- public function update(User $user, Page $page)
- {
- return $user->isAdmin();
- }
-
- /**
- * Determine whether the user can delete the page.
- * @param \App\Models\Users\User $user
- * @param \App\Models\Page $page
- * @return mixed
- */
- public function delete(User $user, Page $page)
- {
- return $user->isAdmin();
- }
-}
diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php
index d78001f7..48c0fc51 100755
--- a/app/Providers/AuthServiceProvider.php
+++ b/app/Providers/AuthServiceProvider.php
@@ -13,7 +13,6 @@
use App\Models\Events\Crew as EventCrew;
use App\Models\Events\Event;
use App\Models\Events\Time as EventTime;
-use App\Models\Page;
use App\Models\Quote;
use App\Models\Resources\Category as ResourceCategory;
use App\Models\Resources\Resource;
@@ -33,7 +32,6 @@
use App\Policies\Events\EventPolicy;
use App\Policies\Events\EventTimePolicy;
use App\Policies\Members\UserPolicy;
-use App\Policies\PagePolicy;
use App\Policies\QuotePolicy;
use App\Policies\Resources\CategoryPolicy as ResourceCategoryPolicy;
use App\Policies\Resources\ResourcePolicy;
@@ -63,7 +61,6 @@ class AuthServiceProvider extends ServiceProvider
Event::class => EventPolicy::class,
EventCrew::class => EventCrewPolicy::class,
EventTime::class => EventTimePolicy::class,
- Page::class => PagePolicy::class,
Application::class => ApplicationPolicy::class,
Quote::class => QuotePolicy::class,
Resource::class => ResourcePolicy::class,
diff --git a/app/Providers/ObserverServiceProvider.php b/app/Providers/ObserverServiceProvider.php
index 3fd262d0..4b43143c 100755
--- a/app/Providers/ObserverServiceProvider.php
+++ b/app/Providers/ObserverServiceProvider.php
@@ -14,7 +14,6 @@
use App\Models\Events\Email;
use App\Models\Events\Event;
use App\Models\Events\Time;
-use App\Models\Page;
use App\Models\Quote;
use App\Models\Resources\Category;
use App\Models\Resources\Issue;
@@ -38,7 +37,6 @@
use App\Observers\Events\EmailObserver;
use App\Observers\Events\EventObserver;
use App\Observers\Events\TimeObserver;
-use App\Observers\PageObserver;
use App\Observers\QuoteObserver;
use App\Observers\Resources\CategoryObserver;
use App\Observers\Resources\IssueObserver;
@@ -70,7 +68,6 @@ public function boot()
$this->observeTraining();
$this->observeUsers();
- Page::observe(PageObserver::class);
Quote::observe(QuoteObserver::class);
}
diff --git a/app/View/Composers/MainMenuComposer.php b/app/View/Composers/MainMenuComposer.php
index f382d51b..a3fe847a 100644
--- a/app/View/Composers/MainMenuComposer.php
+++ b/app/View/Composers/MainMenuComposer.php
@@ -47,7 +47,7 @@ public function compose(View $view)
{
$mainMenu = $this->menu->make('mainMenu', function (Builder $menu) {
$menu->add('Home', route('home'));
- $menu->add('About Us', route('page.show', ['slug' => 'about']));
+ $menu->add('About Us', route('page.about'));
$this->addMediaMenu($menu);
$menu->add('The Committee', route('committee.view'));
$this->addEventsMenu($menu);
@@ -151,7 +151,6 @@ private function addMembersMenu(Builder $menu)
}
if ($this->isAdmin) {
$miscMenu->add('Backups', route('backup.index'));
- $miscMenu->add('Webpages', route('page.index'));
}
// H&S reporting
@@ -180,7 +179,7 @@ private function addResourcesMenu(Builder $menu)
$resourcesMenu->add('Meeting Agendas', route('resource.search', ['category' => 'meeting-agendas']));
}
- $resourcesMenu->add('Links', route('page.show', ['slug' => 'links']));
- $resourcesMenu->add('FAQ', route('page.show', ['slug' => 'faq']));
+ $resourcesMenu->add('Links', route('page.links'));
+ $resourcesMenu->add('FAQ', route('page.faq'));
}
}
diff --git a/composer.json b/composer.json
index dc316b1a..65072c5a 100755
--- a/composer.json
+++ b/composer.json
@@ -26,6 +26,7 @@
"mews/purifier": "^3.0",
"moment/moment": "^2.17",
"nunomaduro/collision": "^8.1",
+ "nwidart/laravel-modules": "^12.0",
"select2/select2": "^4.0",
"spatie/laravel-backup": "^9.1",
"spatie/laravel-db-snapshots": "^2.6",
@@ -56,6 +57,13 @@
"Tests\\": "tests/"
}
},
+ "extra": {
+ "merge-plugin": {
+ "include": [
+ "modules/*/composer.json"
+ ]
+ }
+ },
"scripts": {
"post-root-package-install": [
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
@@ -86,7 +94,8 @@
"composer/installers": true,
"oomphinc/composer-installers-extender": true,
"pestphp/pest-plugin": true,
- "robloach/component-installer": true
+ "robloach/component-installer": true,
+ "wikimedia/composer-merge-plugin": true
}
},
"repositories": []
diff --git a/composer.lock b/composer.lock
index e371b8d7..af0c854d 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "bc7f43c3a9e2d49d6b1622ec91709103",
+ "content-hash": "9cbc76c0df809a797a628c042445c2a9",
"packages": [
{
"name": "alaouy/youtube",
@@ -4326,6 +4326,95 @@
],
"time": "2025-05-08T08:14:37+00:00"
},
+ {
+ "name": "nwidart/laravel-modules",
+ "version": "v12.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nWidart/laravel-modules.git",
+ "reference": "6e1f50de63366206b06ec53bbc823282977ddd06"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nWidart/laravel-modules/zipball/6e1f50de63366206b06ec53bbc823282977ddd06",
+ "reference": "6e1f50de63366206b06ec53bbc823282977ddd06",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-simplexml": "*",
+ "php": ">=8.2",
+ "wikimedia/composer-merge-plugin": "^2.1"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^v3.52",
+ "laravel/framework": "^v12.0",
+ "laravel/pint": "^1.16",
+ "mockery/mockery": "^1.6",
+ "orchestra/testbench": "^v10.0",
+ "phpstan/phpstan": "^2.0",
+ "phpunit/phpunit": "^11.5.3|^12.0.",
+ "spatie/phpunit-snapshot-assertions": "^5.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "aliases": {
+ "Module": "Nwidart\\Modules\\Facades\\Module"
+ },
+ "providers": [
+ "Nwidart\\Modules\\LaravelModulesServiceProvider"
+ ]
+ },
+ "branch-alias": {
+ "dev-master": "12.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Nwidart\\Modules\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Widart",
+ "email": "n.widart@gmail.com",
+ "homepage": "https://nicolaswidart.com",
+ "role": "Developer"
+ }
+ ],
+ "description": "Laravel Module management",
+ "keywords": [
+ "laravel",
+ "module",
+ "modules",
+ "nwidart",
+ "rad"
+ ],
+ "support": {
+ "issues": "https://github.com/nWidart/laravel-modules/issues",
+ "source": "https://github.com/nWidart/laravel-modules/tree/v12.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/dcblogdev",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nwidart",
+ "type": "github"
+ }
+ ],
+ "time": "2025-06-29T09:23:53+00:00"
+ },
{
"name": "oomphinc/composer-installers-extender",
"version": "2.0.1",
@@ -8744,6 +8833,62 @@
"source": "https://github.com/webmozarts/assert/tree/1.11.0"
},
"time": "2022-06-03T18:03:27+00:00"
+ },
+ {
+ "name": "wikimedia/composer-merge-plugin",
+ "version": "v2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/wikimedia/composer-merge-plugin.git",
+ "reference": "a03d426c8e9fb2c9c569d9deeb31a083292788bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/wikimedia/composer-merge-plugin/zipball/a03d426c8e9fb2c9c569d9deeb31a083292788bc",
+ "reference": "a03d426c8e9fb2c9c569d9deeb31a083292788bc",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.1||^2.0",
+ "php": ">=7.2.0"
+ },
+ "require-dev": {
+ "composer/composer": "^1.1||^2.0",
+ "ext-json": "*",
+ "mediawiki/mediawiki-phan-config": "0.11.1",
+ "php-parallel-lint/php-parallel-lint": "~1.3.1",
+ "phpspec/prophecy": "~1.15.0",
+ "phpunit/phpunit": "^8.5||^9.0",
+ "squizlabs/php_codesniffer": "~3.7.1"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Wikimedia\\Composer\\Merge\\V2\\MergePlugin",
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Wikimedia\\Composer\\Merge\\V2\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bryan Davis",
+ "email": "bd808@wikimedia.org"
+ }
+ ],
+ "description": "Composer plugin to merge multiple composer.json files",
+ "support": {
+ "issues": "https://github.com/wikimedia/composer-merge-plugin/issues",
+ "source": "https://github.com/wikimedia/composer-merge-plugin/tree/v2.1.0"
+ },
+ "time": "2023-04-15T19:07:00+00:00"
}
],
"packages-dev": [
diff --git a/config/modules.php b/config/modules.php
new file mode 100644
index 00000000..9dead139
--- /dev/null
+++ b/config/modules.php
@@ -0,0 +1,309 @@
+ 'Modules',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Module Stubs
+ |--------------------------------------------------------------------------
+ |
+ | Default module stubs.
+ |
+ */
+ 'stubs' => [
+ 'enabled' => false,
+ 'path' => base_path('vendor/nwidart/laravel-modules/src/Commands/stubs'),
+ 'files' => [
+ 'routes/web' => 'routes/web.php',
+ 'routes/api' => 'routes/api.php',
+ 'views/index' => 'resources/views/index.blade.php',
+ 'views/master' => 'resources/views/components/layouts/master.blade.php',
+ 'scaffold/config' => 'config/config.php',
+ 'composer' => 'composer.json',
+ 'assets/js/app' => 'resources/assets/js/app.js',
+ 'assets/sass/app' => 'resources/assets/sass/app.scss',
+ 'vite' => 'vite.config.js',
+ 'package' => 'package.json',
+ ],
+ 'replacements' => [
+ /**
+ * Define custom replacements for each section.
+ * You can specify a closure for dynamic values.
+ *
+ * Example:
+ *
+ * 'composer' => [
+ * 'CUSTOM_KEY' => fn (\Nwidart\Modules\Generators\ModuleGenerator $generator) => $generator->getModule()->getLowerName() . '-module',
+ * 'CUSTOM_KEY2' => fn () => 'custom text',
+ * 'LOWER_NAME',
+ * 'STUDLY_NAME',
+ * // ...
+ * ],
+ *
+ * Note: Keys should be in UPPERCASE.
+ */
+ 'routes/web' => [
+ 'LOWER_NAME',
+ 'STUDLY_NAME',
+ 'PLURAL_LOWER_NAME',
+ 'KEBAB_NAME',
+ 'MODULE_NAMESPACE',
+ 'CONTROLLER_NAMESPACE',
+ ],
+ 'routes/api' => [
+ 'LOWER_NAME',
+ 'STUDLY_NAME',
+ 'PLURAL_LOWER_NAME',
+ 'KEBAB_NAME',
+ 'MODULE_NAMESPACE',
+ 'CONTROLLER_NAMESPACE',
+ ],
+ 'vite' => ['LOWER_NAME', 'STUDLY_NAME', 'KEBAB_NAME'],
+ 'json' => ['LOWER_NAME', 'STUDLY_NAME', 'KEBAB_NAME', 'MODULE_NAMESPACE', 'PROVIDER_NAMESPACE'],
+ 'views/index' => ['LOWER_NAME'],
+ 'views/master' => ['LOWER_NAME', 'STUDLY_NAME', 'KEBAB_NAME'],
+ 'scaffold/config' => ['STUDLY_NAME'],
+ 'composer' => [
+ 'LOWER_NAME',
+ 'STUDLY_NAME',
+ 'VENDOR',
+ 'AUTHOR_NAME',
+ 'AUTHOR_EMAIL',
+ 'MODULE_NAMESPACE',
+ 'PROVIDER_NAMESPACE',
+ 'APP_FOLDER_NAME',
+ ],
+ ],
+ 'gitkeep' => true,
+ ],
+ 'paths' => [
+ /*
+ |--------------------------------------------------------------------------
+ | Modules path
+ |--------------------------------------------------------------------------
+ |
+ | This path is used to save the generated module.
+ | This path will also be added automatically to the list of scanned folders.
+ |
+ */
+ 'modules' => base_path('modules'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Modules assets path
+ |--------------------------------------------------------------------------
+ |
+ | Here you may update the modules' assets path.
+ |
+ */
+ 'assets' => public_path('modules'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | The migrations' path
+ |--------------------------------------------------------------------------
+ |
+ | Where you run the 'module:publish-migration' command, where do you publish the
+ | the migration files?
+ |
+ */
+ 'migration' => base_path('database/migrations'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | The app path
+ |--------------------------------------------------------------------------
+ |
+ | app folder name
+ | for example can change it to 'src' or 'App'
+ */
+ 'app_folder' => 'app/',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Generator path
+ |--------------------------------------------------------------------------
+ | Customise the paths where the folders will be generated.
+ | Setting the generate key to false will not generate that folder
+ */
+ 'generator' => [
+ // app/
+ 'actions' => ['path' => 'app/Actions', 'generate' => false],
+ 'casts' => ['path' => 'app/Casts', 'generate' => false],
+ 'channels' => ['path' => 'app/Broadcasting', 'generate' => false],
+ 'class' => ['path' => 'app/Classes', 'generate' => false],
+ 'command' => ['path' => 'app/Console', 'generate' => false],
+ 'component-class' => ['path' => 'app/View/Components', 'generate' => false],
+ 'emails' => ['path' => 'app/Emails', 'generate' => false],
+ 'event' => ['path' => 'app/Events', 'generate' => false],
+ 'enums' => ['path' => 'app/Enums', 'generate' => false],
+ 'exceptions' => ['path' => 'app/Exceptions', 'generate' => false],
+ 'jobs' => ['path' => 'app/Jobs', 'generate' => false],
+ 'helpers' => ['path' => 'app/Helpers', 'generate' => false],
+ 'interfaces' => ['path' => 'app/Interfaces', 'generate' => false],
+ 'listener' => ['path' => 'app/Listeners', 'generate' => false],
+ 'model' => ['path' => 'app/Models', 'generate' => false],
+ 'notifications' => ['path' => 'app/Notifications', 'generate' => false],
+ 'observer' => ['path' => 'app/Observers', 'generate' => false],
+ 'policies' => ['path' => 'app/Policies', 'generate' => false],
+ 'provider' => ['path' => 'app/Providers', 'generate' => true],
+ 'repository' => ['path' => 'app/Repositories', 'generate' => false],
+ 'resource' => ['path' => 'app/Transformers', 'generate' => false],
+ 'route-provider' => ['path' => 'app/Providers', 'generate' => true],
+ 'rules' => ['path' => 'app/Rules', 'generate' => false],
+ 'services' => ['path' => 'app/Services', 'generate' => false],
+ 'scopes' => ['path' => 'app/Models/Scopes', 'generate' => false],
+ 'traits' => ['path' => 'app/Traits', 'generate' => false],
+
+ // app/Http/
+ 'controller' => ['path' => 'app/Http/Controllers', 'generate' => true],
+ 'filter' => ['path' => 'app/Http/Middleware', 'generate' => false],
+ 'request' => ['path' => 'app/Http/Requests', 'generate' => false],
+
+ // config/
+ 'config' => ['path' => 'config', 'generate' => true],
+
+ // database/
+ 'factory' => ['path' => 'database/factories', 'generate' => true],
+ 'migration' => ['path' => 'database/migrations', 'generate' => true],
+ 'seeder' => ['path' => 'database/seeders', 'generate' => true],
+
+ // lang/
+ 'lang' => ['path' => 'lang', 'generate' => false],
+
+ // resource/
+ 'assets' => ['path' => 'resources/assets', 'generate' => true],
+ 'component-view' => ['path' => 'resources/views/components', 'generate' => false],
+ 'views' => ['path' => 'resources/views', 'generate' => true],
+
+ // routes/
+ 'routes' => ['path' => 'routes', 'generate' => true],
+
+ // tests/
+ 'test-feature' => ['path' => 'tests/Feature', 'generate' => true],
+ 'test-unit' => ['path' => 'tests/Unit', 'generate' => true],
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Auto Discover of Modules
+ |--------------------------------------------------------------------------
+ |
+ | Here you configure auto discover of module
+ | This is useful for simplify module providers.
+ |
+ */
+ 'auto-discover' => [
+ /*
+ |--------------------------------------------------------------------------
+ | Migrations
+ |--------------------------------------------------------------------------
+ |
+ | This option for register migration automatically.
+ |
+ */
+ 'migrations' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Translations
+ |--------------------------------------------------------------------------
+ |
+ | This option for register lang file automatically.
+ |
+ */
+ 'translations' => false,
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Package commands
+ |--------------------------------------------------------------------------
+ |
+ | Here you can define which commands will be visible and used in your
+ | application. You can add your own commands to merge section.
+ |
+ */
+ 'commands' => ConsoleServiceProvider::defaultCommands()
+ ->merge([
+ // New commands go here
+ ])
+ ->toArray(),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Scan Path
+ |--------------------------------------------------------------------------
+ |
+ | Here you define which folder will be scanned. By default will scan vendor
+ | directory. This is useful if you host the package in packagist website.
+ |
+ */
+ 'scan' => [
+ 'enabled' => false,
+ 'paths' => [base_path('vendor/*/*')],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Composer File Template
+ |--------------------------------------------------------------------------
+ |
+ | Here is the config for the composer.json file, generated by this package
+ |
+ */
+ 'composer' => [
+ 'vendor' => env('MODULE_VENDOR', 'nwidart'),
+ 'author' => [
+ 'name' => env('MODULE_AUTHOR_NAME', 'Nicolas Widart'),
+ 'email' => env('MODULE_AUTHOR_EMAIL', 'n.widart@gmail.com'),
+ ],
+ 'composer-output' => false,
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Choose what laravel-modules will register as custom namespaces.
+ | Setting one to false will require you to register that part
+ | in your own Service Provider class.
+ |--------------------------------------------------------------------------
+ */
+ 'register' => [
+ 'translations' => true,
+ /**
+ * load files on boot or register method
+ */
+ 'files' => 'register',
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Activators
+ |--------------------------------------------------------------------------
+ |
+ | You can define new types of activators here, file, database, etc. The only
+ | required parameter is 'class'.
+ | The file activator will store the activation status in storage/installed_modules
+ */
+ 'activators' => [
+ 'file' => [
+ 'class' => FileActivator::class,
+ 'statuses-file' => base_path('modules_statuses.json'),
+ ],
+ ],
+
+ 'activator' => 'file',
+];
diff --git a/database/migrations/2025_11_12_224500_move_pages_to_module.php b/database/migrations/2025_11_12_224500_move_pages_to_module.php
new file mode 100644
index 00000000..e6d34d0d
--- /dev/null
+++ b/database/migrations/2025_11_12_224500_move_pages_to_module.php
@@ -0,0 +1,35 @@
+increments('id');
+ $table->string('title');
+ $table->string('slug')->unique();
+ $table->text('content');
+ $table->boolean('published');
+ $table->unsignedInteger('user_id');
+ $table->timestamps();
+
+ $table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade');
+ });
+ }
+};
diff --git a/modules/StaticPage/app/Http/Controllers/StaticPageController.php b/modules/StaticPage/app/Http/Controllers/StaticPageController.php
new file mode 100644
index 00000000..6e55e11d
--- /dev/null
+++ b/modules/StaticPage/app/Http/Controllers/StaticPageController.php
@@ -0,0 +1,35 @@
+>
+ */
+ protected $listen = [];
+
+ /**
+ * Indicates if events should be discovered.
+ *
+ * @var bool
+ */
+ protected static $shouldDiscoverEvents = true;
+
+ /**
+ * Configure the proper event listeners for email verification.
+ */
+ protected function configureEmailVerification(): void {}
+}
diff --git a/modules/StaticPage/app/Providers/RouteServiceProvider.php b/modules/StaticPage/app/Providers/RouteServiceProvider.php
new file mode 100644
index 00000000..7d7b186a
--- /dev/null
+++ b/modules/StaticPage/app/Providers/RouteServiceProvider.php
@@ -0,0 +1,53 @@
+mapApiRoutes();
+ $this->mapWebRoutes();
+ }
+
+ /**
+ * Define the "web" routes for the application.
+ *
+ * These routes all receive session state, CSRF protection, etc.
+ */
+ protected function mapWebRoutes(): void
+ {
+ Route::middleware('web')->group(module_path($this->name, '/routes/web.php'));
+ }
+
+ /**
+ * Define the "api" routes for the application.
+ *
+ * These routes are typically stateless.
+ */
+ protected function mapApiRoutes(): void
+ {
+ Route::middleware('api')
+ ->prefix('api')
+ ->name('api.')
+ ->group(module_path($this->name, '/routes/api.php'));
+ }
+}
diff --git a/modules/StaticPage/app/Providers/StaticPageServiceProvider.php b/modules/StaticPage/app/Providers/StaticPageServiceProvider.php
new file mode 100644
index 00000000..f0e70513
--- /dev/null
+++ b/modules/StaticPage/app/Providers/StaticPageServiceProvider.php
@@ -0,0 +1,157 @@
+registerCommands();
+ $this->registerCommandSchedules();
+ $this->registerTranslations();
+ $this->registerConfig();
+ $this->registerViews();
+ $this->loadMigrationsFrom(module_path($this->name, 'database/migrations'));
+ }
+
+ /**
+ * Register the service provider.
+ */
+ public function register(): void
+ {
+ $this->app->register(EventServiceProvider::class);
+ $this->app->register(RouteServiceProvider::class);
+ }
+
+ /**
+ * Register commands in the format of Command::class
+ */
+ protected function registerCommands(): void
+ {
+ // $this->commands([]);
+ }
+
+ /**
+ * Register command Schedules.
+ */
+ protected function registerCommandSchedules(): void
+ {
+ // $this->app->booted(function () {
+ // $schedule = $this->app->make(Schedule::class);
+ // $schedule->command('inspire')->hourly();
+ // });
+ }
+
+ /**
+ * Register translations.
+ */
+ public function registerTranslations(): void
+ {
+ $langPath = resource_path('lang/modules/' . $this->nameLower);
+
+ if (is_dir($langPath)) {
+ $this->loadTranslationsFrom($langPath, $this->nameLower);
+ $this->loadJsonTranslationsFrom($langPath);
+ } else {
+ $this->loadTranslationsFrom(module_path($this->name, 'lang'), $this->nameLower);
+ $this->loadJsonTranslationsFrom(module_path($this->name, 'lang'));
+ }
+ }
+
+ /**
+ * Register config.
+ */
+ protected function registerConfig(): void
+ {
+ $configPath = module_path($this->name, config('modules.paths.generator.config.path'));
+
+ if (is_dir($configPath)) {
+ $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($configPath));
+
+ foreach ($iterator as $file) {
+ if ($file->isFile() && $file->getExtension() === 'php') {
+ $config = str_replace($configPath . DIRECTORY_SEPARATOR, '', $file->getPathname());
+ $config_key = str_replace([DIRECTORY_SEPARATOR, '.php'], ['.', ''], $config);
+ $segments = explode('.', $this->nameLower . '.' . $config_key);
+
+ // Remove duplicated adjacent segments
+ $normalized = [];
+ foreach ($segments as $segment) {
+ if (end($normalized) !== $segment) {
+ $normalized[] = $segment;
+ }
+ }
+
+ $key = $config === 'config.php' ? $this->nameLower : implode('.', $normalized);
+
+ $this->publishes([$file->getPathname() => config_path($config)], 'config');
+ $this->merge_config_from($file->getPathname(), $key);
+ }
+ }
+ }
+ }
+
+ /**
+ * Merge config from the given path recursively.
+ */
+ protected function merge_config_from(string $path, string $key): void
+ {
+ $existing = config($key, []);
+ $module_config = require $path;
+
+ config([$key => array_replace_recursive($existing, $module_config)]);
+ }
+
+ /**
+ * Register views.
+ */
+ public function registerViews(): void
+ {
+ $viewPath = resource_path('views/modules/' . $this->nameLower);
+ $sourcePath = module_path($this->name, 'resources/views');
+
+ $this->publishes([$sourcePath => $viewPath], ['views', $this->nameLower . '-module-views']);
+
+ $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->nameLower);
+
+ Blade::componentNamespace(
+ config('modules.namespace') . '\\' . $this->name . '\\View\\Components',
+ $this->nameLower,
+ );
+ }
+
+ /**
+ * Get the services provided by the provider.
+ */
+ public function provides(): array
+ {
+ return [];
+ }
+
+ private function getPublishableViewPaths(): array
+ {
+ $paths = [];
+ foreach (config('view.paths') as $path) {
+ if (is_dir($path . '/modules/' . $this->nameLower)) {
+ $paths[] = $path . '/modules/' . $this->nameLower;
+ }
+ }
+
+ return $paths;
+ }
+}
diff --git a/modules/StaticPage/composer.json b/modules/StaticPage/composer.json
new file mode 100644
index 00000000..cd993f7e
--- /dev/null
+++ b/modules/StaticPage/composer.json
@@ -0,0 +1,22 @@
+{
+ "name": "backstagetechnicalservices/staticpage",
+ "description": "",
+ "extra": {
+ "laravel": {
+ "providers": [],
+ "aliases": {}
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Modules\\StaticPage\\": "app/",
+ "Modules\\StaticPage\\Database\\Factories\\": "database/factories/",
+ "Modules\\StaticPage\\Database\\Seeders\\": "database/seeders/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Modules\\StaticPage\\Tests\\": "tests/"
+ }
+ }
+}
diff --git a/modules/StaticPage/config/config.php b/modules/StaticPage/config/config.php
new file mode 100644
index 00000000..59af3557
--- /dev/null
+++ b/modules/StaticPage/config/config.php
@@ -0,0 +1,5 @@
+ 'StaticPage',
+];
diff --git a/modules/StaticPage/module.json b/modules/StaticPage/module.json
new file mode 100644
index 00000000..6397e926
--- /dev/null
+++ b/modules/StaticPage/module.json
@@ -0,0 +1,9 @@
+{
+ "name": "StaticPage",
+ "alias": "staticpage",
+ "description": "",
+ "keywords": [],
+ "priority": 0,
+ "providers": ["Modules\\StaticPage\\Providers\\StaticPageServiceProvider"],
+ "files": []
+}
diff --git a/modules/StaticPage/package.json b/modules/StaticPage/package.json
new file mode 100644
index 00000000..946ad993
--- /dev/null
+++ b/modules/StaticPage/package.json
@@ -0,0 +1,15 @@
+{
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build"
+ },
+ "devDependencies": {
+ "axios": "^1.1.2",
+ "laravel-vite-plugin": "^0.7.5",
+ "sass": "^1.69.5",
+ "postcss": "^8.3.7",
+ "vite": "^4.0.0"
+ }
+}
diff --git a/modules/StaticPage/resources/views/about.blade.php b/modules/StaticPage/resources/views/about.blade.php
new file mode 100644
index 00000000..84a00109
--- /dev/null
+++ b/modules/StaticPage/resources/views/about.blade.php
@@ -0,0 +1,47 @@
+@extends('app.main')
+
+@section('title', 'About Us')
+@section('header-main', 'About Us')
+
+@section('content')
+ What is Backstage?
+
+ Backstage Technical Services is a group of student volunteers who provide technical expertise to other Students'
+ Union Societies and University departments. We provide support in areas such as event management, sound, lighting,
+ video and stage management to over 60 events per year.
+
+
+ What types of event do we provide services for?
+
+ All of the big events (and most of the smaller events) are crewed by members of Backstage - all of the bands that
+ appear in the Tub, the experience that is Freshers' Week, The Summer Ball, plays by Bath University Student Theatre
+ (BUST), musicals by Bath University Student Musical Society (BUSMS) and many, many more.
+
+
+ We also provide support for high profile events, such as the SU Blues awards, One Young World Bath and other
+ corporate conferences.
+
+
+ Backstage works both on- and off-campus providing lighting, sound, set design, pyrotechnic, stage management and
+ event management expertise.
+
+
+ Training
+
+ Backstage run a training course which provides continuous training from basic to advanced level on a wide range of
+ subjects. Our training is open (and completely free) to all members. We also offer teaching on-event through our
+ mentorship programme, where an experienced member will teach you how to perform a crew role.
+
+
+ Industry
+
+ Backstage works closely with a variety of companies in the events and enterainment industry. Members have gone on to
+ work for companies such as Enlightened ,
+ TAIT , IPS ,
+ Assembly Festival , theSpaceUK
+ and PMY Group .
+
+
+ Booking
+ You can submit a booking for Backstage using the online booking form .
+@endsection
diff --git a/modules/StaticPage/resources/views/faq.blade.php b/modules/StaticPage/resources/views/faq.blade.php
new file mode 100644
index 00000000..910bfa01
--- /dev/null
+++ b/modules/StaticPage/resources/views/faq.blade.php
@@ -0,0 +1,61 @@
+@extends('app.main')
+
+@section('title', 'Frequently Asked Questions')
+@section('header-main', 'Frequently Asked Questions')
+
+@section('content')
+ How can I book Backstage?
+
+ Only via the website. It doesn't matter if you've spoken to every person in the society; we only accept bookings via
+ our web booking system. Booking Backstage as early as possible gives us more opportunity to ensure that the correct
+ equipment, volunteers and planning is available. This generally means that we are booked around a month in advance
+ (less than two weeks notice may result in a financial surcharge). Please note that we will not crew your event until
+ the production manager has explicitly informed you that your booking request has been accepted.
+
+
+ Do members get paid?
+
+ No. All our members are volunteers, doing full-time degrees here at the university. They sometimes work over 15
+ hours/day for an event, unpaid. To give an indication of cost, an experienced technician from an external company
+ would cost over ÂŁ100/day.
+
+
+ Why can't you do this/that event for free?
+
+ Because we need to pay for insurance, repairs, replacements, transport, photocopying costs, telephones, tape, bulbs,
+ batteries, smoke fluid etc etc. Every year these costs add upto about ÂŁ10,000 (not including hires) and we therefore
+ need to issue a charge to break even at the end of each year.
+
+
+ Whilst BTS do receive a budget from the SU, it can't cover all our costs, especially for the upkeep of equipment
+ that may be used over one hundred times a year.
+
+
+ Backstage is very expensive! I can get it cheaper elsewhere
+ To hire the equipment externally it would usually cost well over ÂŁ250 per event plus labour costs.
+
+ You will only be charged fees that relate to hire of equipment, insurance and upkeep. All of the supervision is
+ given free through volunteers' time.
+
+
+ You are quite welcome to use an external company; we would recommend
+ Enlightened Lighting in Bath, and
+ Audio Forum in Bristol.
+
+
+ Can I borrow Backstage equipment?
+
+ The majority of our equipment requires experience (and usually training) before it can be used and therefore it is
+ rare for Backstage to run dry hires (providing equipment without personnel). For insurance and safety reasons, BTS
+ doesn't lend out equipment to private individuals. Societies have borrowed some of our equipment in the past but
+ each request is considered on an individual basis. Please contact us for
+ more information.
+
+
+ I want to join Backstage!
+
+ Great idea - we're open to all members of Bath University Students' Union. Our weekly meetings happen on Wednesdays
+ at 13:15. For further details, please contact our Secretary at
+ sec@bts-crew.com .
+
+@endsection
diff --git a/modules/StaticPage/resources/views/landing.blade.php b/modules/StaticPage/resources/views/landing.blade.php
new file mode 100644
index 00000000..3203c6f5
--- /dev/null
+++ b/modules/StaticPage/resources/views/landing.blade.php
@@ -0,0 +1,26 @@
+@extends('app.main')
+
+@section('title', 'Home')
+
+@section('content')
+
+
+
+
+ Backstage Technical Services is a society formed of students at the University of Bath, who provide technical
+ expertise to other Students' Union Clubs and Societies and event organisers in Sound, Lighting and Stage Management.
+
+
+ We offer support at a wide range of events including the Students' Union's Summer Ball and Freshers' Week, theatre
+ performances from student and external performers, band and club nights in The Tub and many more.
+
+
+ We work both on- and off-campus providing lighting, sound, set design, pyrotechnic, stage management and event
+ management expertise.
+
+
+ Whether you're interested in booking us to support your event, or are a student at the University of Bath interested
+ in joining us, please explore the site and do not hesitate to
+ contact us if you have any questions.
+
+@endsection
diff --git a/modules/StaticPage/resources/views/links.blade.php b/modules/StaticPage/resources/views/links.blade.php
new file mode 100644
index 00000000..f8fa3858
--- /dev/null
+++ b/modules/StaticPage/resources/views/links.blade.php
@@ -0,0 +1,69 @@
+@extends('app.main')
+
+@section('title', 'Links')
+@section('header-main', 'Links')
+
+@section('content')
+
+ This page contains links to many other web resources, divided by category. Please note that these sites are not
+ associated with BTS unless otherwise stated. If you would like a link to be added then please
+ contact us .
+
+
+ Lighting Manufacturers
+
+
+ Sound Manufacturers
+
+
+ Discussion Boards and Forums
+
+
+ Professional Bodies
+
+ ABTT - The Association of British Theatre Technicians
+ PLASA - The Professional Lighting and Sound Association
+ ALD - The Association of Lighting Designers (a UK body)
+ PSA - The Production Services Association
+
+
+ Lighting Suppliers
+
+
+ Sound Equipment Suppliers
+
+
+ Other Useful Links
+
+ NSDF - The National Student Drama Festival
+ Northern Lights - Norther Lights Fireworks Company
+ Modelbox - CAD libraries and models of performance spaces
+
+@endsection
diff --git a/modules/StaticPage/resources/views/privacy-policy.blade.php b/modules/StaticPage/resources/views/privacy-policy.blade.php
new file mode 100644
index 00000000..d417485b
--- /dev/null
+++ b/modules/StaticPage/resources/views/privacy-policy.blade.php
@@ -0,0 +1,120 @@
+@extends('app.main')
+
+@section('title', 'Privacy Policy')
+@section('header-main', 'Privacy Policy')
+
+@section('content')
+ What is this Privacy Policy for?
+
+ This privacy policy is for this website www.bts-crew.com and served by
+ Backstage Technical Services and governs the privacy of its users who choose to use it.
+
+
+ The policy sets out the different areas where user privacy is concerned and outlines the obligations
+ & requirements of the users, the website and website owners. Furthermore the way this website processes, stores
+ and protects user data and information will also be detailed within this policy.
+
+
+ The Website
+
+ This website and it's owners take a proactive approach to user privacy and ensure the necessary steps are taken
+ to protect the privacy of its users throughout their visiting experience. Please note at any time you may contact
+ sec@bts-crew.com to have any data remove for inquire about data held.
+
+
+ Use of Cookies
+
+ This website uses cookies to better the users experience while visiting the website. Where applicable this website
+ uses a cookie control system allowing the user on their first visit to the website to allow or disallow the use of
+ cookies on their computer/device. This complies with recent legislation requirements for websites to obtain explicit
+ consent from users before leaving behind or reading files such as cookies on a user's computer/device.
+
+
+ Cookies are small files saved to the user's hard drive that track, save and store information about the
+ user's interactions and usage of the website. This allows the website to provide the user with a tailored
+ experience within this website.
+
+
+ Users are advised that if they wish to deny the use and saving of cookies from this website on their computers hard
+ drive they should take necessary steps within their web browsers security settings to block all cookies from this
+ website and it’s external serving vendors. Website functionality may affected by disabling cookies.
+
+
+ Use of Account Data
+
+ Members and other stakeholders who own an account with bts-crew.com permit the use of their account data as is
+ required for basic website functionality.
+
+
+
+ Email addresses are used for communication purposes as part of the website functionality, for example to allow
+ event managers to send event crew members emails. They may also be visible to other registered members however
+ this can be hidden on your profile page.
+
+
+ Your name will be publicly available on event crew lists and may be used to identify your event history.
+
+
+ Other account data is provided by the user at their discretion (e.g. tool colours or contact numbers) and may be
+ altered or removed by the user.
+
+
+
+ User account data is not linked to other third party systems including the University of Bath or University of Bath
+ Student's Union (The SU) with the following exception; as part of an agreement with "The SU", accidents (both to
+ person or equipment) must be reported to the University of Bath using a dedicated form on this website. This may
+ require the limited use of data from your user account or otherwise to assist in factually reporting the accident
+ and notifying a next-of-kin or similar.
+
+
+ By providing your information to BTS for the purposes of initial account creation, you agree to this privacy policy
+ and the action constitutes a consensual collection and maintaining of your data. This does not affect your right to
+ have your account or data permanently deleted, however this request must be made in writing to
+ sec@bts-crew.com .
+
+
+ The website archives user accounts by default to enable the continued functionality of some services. This does not
+ affect your right to have your account permanently deleted, however this request must be made in
+ writing to sec@bts-crew.com .
+
+
+ Contact & Communication
+
+ Users contacting this website and/or its owners do so at their own discretion and provide any such personal details
+ requested at their own risk. Your personal information is kept private and stored securely until a time it is no
+ longer required or has no use, as detailed in the Data Protection Act 1998.
+
+
+ This website and its owners use any information submitted to provide you with further information about the
+ products/services they offer or to assist you in answering any questions or queries you may have submitted.
+
+
+ Some elements of this website invoke the use of third party contact services including Google Forms . In
+ these cases, use of those services are covered by the separate, third party privacy policy.
+
+
+ External Links
+
+ Although this website only looks to include quality, safe and relevant external links, users are advised adopt a
+ policy of caution before clicking any external web links mentioned throughout this website.
+
+
+ The owners of this website cannot guarantee or verify the contents of any externally linked website despite their
+ best efforts. Users should therefore note they click on external links at their own risk and this website and
+ it's owners cannot be held liable for any damages or implications caused by visiting any external links mentioned.
+
+
+ Social Media Platforms
+
+ Communication, engagement and actions taken through external social media platforms that this website and it's
+ owners participate on are custom to the terms and conditions as well as the privacy policies held with each social
+ media platform respectively.
+
+
+ Users are advised to use social media platforms wisely and communicate/engage upon them with due care and caution
+ in regard to their own privacy and personal details. This website nor it's owners will never forcibly require
+ personal or sensitive information through social media platforms and encourage users wishing to discuss sensitive
+ details to contact them through primary communication channels such as by telephone or email if they prefer to do
+ so.
+
+@endsection
diff --git a/modules/StaticPage/routes/api.php b/modules/StaticPage/routes/api.php
new file mode 100644
index 00000000..b3d9bbc7
--- /dev/null
+++ b/modules/StaticPage/routes/api.php
@@ -0,0 +1 @@
+name('home');
+Route::get('/page/about', [StaticPageController::class, 'about'])->name('page.about');
+Route::get('/page/faq', [StaticPageController::class, 'faq'])->name('page.faq');
+Route::get('/page/links', [StaticPageController::class, 'links'])->name('page.links');
+Route::get('/page/privacy-policy', [StaticPageController::class, 'privacyPolicy'])->name('page.privacy-policy');
diff --git a/modules/StaticPage/tests/Feature/StaticPageTest.php b/modules/StaticPage/tests/Feature/StaticPageTest.php
new file mode 100644
index 00000000..135a3938
--- /dev/null
+++ b/modules/StaticPage/tests/Feature/StaticPageTest.php
@@ -0,0 +1,45 @@
+assertSuccessful()
+ ->assertSeeText('Backstage Technical Services is a society formed of students at the University of Bath');
+});
+
+it('should show the about page', function () {
+ get('/page/about')
+ ->assertSuccessful()
+ ->assertSeeHtml('')
+ ->assertSeeText('What is Backstage?');
+});
+
+it('should show the faq page', function () {
+ get('/page/faq')
+ ->assertSuccessful()
+ ->assertSeeHtml('')
+ ->assertSeeText('How can I book Backstage?');
+});
+
+it('should show the links page', function () {
+ get('/page/links')
+ ->assertSuccessful()
+ ->assertSeeHtml('')
+ ->assertSeeText('Other Useful Links');
+});
+
+it('should show the privacy policy page', function () {
+ get('/page/privacy-policy')
+ ->assertSuccessful()
+ ->assertSeeHtml('')
+ ->assertSeeText('What is this Privacy Policy for?');
+});
+
+it('should show the terms and conditions page', function () {
+ get('/contact/book/terms')
+ ->assertSuccessful()
+ ->assertSeeHtml('')
+ ->assertSeeText('Please read these terms and conditions carefully.');
+});
diff --git a/modules/StaticPage/tests/Unit/.gitkeep b/modules/StaticPage/tests/Unit/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/modules/StaticPage/vite.config.js b/modules/StaticPage/vite.config.js
new file mode 100644
index 00000000..d233f329
--- /dev/null
+++ b/modules/StaticPage/vite.config.js
@@ -0,0 +1,21 @@
+import { defineConfig } from 'vite';
+import laravel from 'laravel-vite-plugin';
+import { readdirSync, statSync } from 'fs';
+import { join, relative, dirname } from 'path';
+import { fileURLToPath } from 'url';
+
+export default defineConfig({
+ build: {
+ outDir: '../../public/build-staticpage',
+ emptyOutDir: true,
+ manifest: true,
+ },
+ plugins: [
+ laravel({
+ publicDirectory: '../../public',
+ buildDirectory: 'build-staticpage',
+ input: [__dirname + '/resources/assets/sass/app.scss', __dirname + '/resources/assets/js/app.js'],
+ refresh: true,
+ }),
+ ],
+});
diff --git a/modules_statuses.json b/modules_statuses.json
new file mode 100644
index 00000000..f5698aa5
--- /dev/null
+++ b/modules_statuses.json
@@ -0,0 +1,3 @@
+{
+ "StaticPage": true
+}
diff --git a/phpunit.xml b/phpunit.xml
index 110ccc00..3758c65b 100755
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -11,15 +11,25 @@
tests/Unit
+ ./modules/*/tests/Unit
tests/Feature
+ ./modules/*/tests/Feature
app
+ ./modules
+
+ ./modules/*/config
+ ./modules/*/database
+ ./modules/*/resources
+ ./modules/*/routes
+ ./modules/*/tests
+
diff --git a/resources/assets/sass/partials/_pages.scss b/resources/assets/sass/partials/_pages.scss
deleted file mode 100755
index 5ec2cd51..00000000
--- a/resources/assets/sass/partials/_pages.scss
+++ /dev/null
@@ -1,30 +0,0 @@
-&[page-id="index"] {
- table.table {
- td {
- vertical-align: middle;
- }
- .page-title {
- font-size: 1.133em;
- }
- .page-author {
- width: 20%;
- }
- .page-published {
- font-size: 20px;
- width: 2em;
-
- .fa-check {
- color: green;
- }
- }
- .page-actions {
- width: 6em;
- }
- }
-}
-&[page-id="create"],
-&[page-id="edit"] {
- div#content {
- max-width: 700px;
- }
-}
diff --git a/resources/assets/sass/partials/partials.scss b/resources/assets/sass/partials/partials.scss
index e6ca64e6..d39b04bc 100755
--- a/resources/assets/sass/partials/partials.scss
+++ b/resources/assets/sass/partials/partials.scss
@@ -45,10 +45,6 @@ body[page-section*="members"] {
@import "members";
}
-body[page-section*="pages"] {
- @import "pages";
-}
-
body[page-section*="quotes"] {
@import "quotes";
}
diff --git a/resources/views/app/includes/footer.blade.php b/resources/views/app/includes/footer.blade.php
index 17c0eea2..62a8a4a7 100755
--- a/resources/views/app/includes/footer.blade.php
+++ b/resources/views/app/includes/footer.blade.php
@@ -39,10 +39,10 @@
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php
deleted file mode 100755
index 8a4caa26..00000000
--- a/resources/views/home.blade.php
+++ /dev/null
@@ -1,15 +0,0 @@
-@extends('app.main')
-
-@section('title', 'Home')
-@section('page-section', 'page')
-@section('page-id', 'home')
-
-@section('content')
-
-
-
- Backstage Technical Services is a society formed of students at the University of Bath, who provide technical expertise to other Students' Union Clubs and Societies and event organisers in Sound, Lighting and Stage Management.
- We offer support at a wide range of events including the Students' Union's Summer Ball and Freshers' Week, theatre performances from student and external performers, band and club nights in The Tub and many more.
- We work both on- and off-campus providing lighting, sound, set design, pyrotechnic, stage management and event management expertise.
- Whether you're interested in booking us to support your event, or are a student at the University of Bath interested in joining us, please explore the site and do not hesitate to contact us if you have any questions.
-@endsection
diff --git a/resources/views/pages/create.blade.php b/resources/views/pages/create.blade.php
deleted file mode 100755
index 8a8e0cb4..00000000
--- a/resources/views/pages/create.blade.php
+++ /dev/null
@@ -1,23 +0,0 @@
-@extends('app.main')
-
-@section('title', 'Create a Page')
-@section('page-section', 'pages')
-@section('page-id', 'create')
-@section('header-main', 'Page Editor')
-@section('header-sub', 'Create a New Page')
-
-@section('content')
- {!! Form::model($page, ['route' => ['page.store']]) !!}
- @include('pages.form')
-
-
-
-
- Create Page
-
-
- or {!! link_to_route('page.index', 'Cancel') !!}
-
-
- {!! Form::close() !!}
-@endsection
\ No newline at end of file
diff --git a/resources/views/pages/edit.blade.php b/resources/views/pages/edit.blade.php
deleted file mode 100755
index ed33677a..00000000
--- a/resources/views/pages/edit.blade.php
+++ /dev/null
@@ -1,23 +0,0 @@
-@extends('app.main')
-
-@section('title', 'Edit a Page')
-@section('page-section', 'pages')
-@section('page-id', 'create')
-@section('header-main', 'Page Editor')
-@section('header-sub', 'Edit a Page')
-
-@section('content')
- {!! Form::model($page, ['route' => ['page.update', $page->slug]]) !!}
- @include('pages.form')
-
-
-
-
- Update Page
-
-
- or {!! link_to_route('page.index', 'Cancel') !!}
-
-
- {!! Form::close() !!}
-@endsection
\ No newline at end of file
diff --git a/resources/views/pages/form.blade.php b/resources/views/pages/form.blade.php
deleted file mode 100755
index af34ecb0..00000000
--- a/resources/views/pages/form.blade.php
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
- {!! Form::label('title', 'Page Title:', ['class' => 'control-label']) !!}
- {!! Form::text('title', null, ['class' => 'form-control']) !!}
- @InputError('title')
-
-
-
-
- {!! Form::label('slug', 'Page Slug:', ['class' => 'control-label']) !!}
- {!! Form::text('slug', null, ['class' => 'form-control']) !!}
- @InputError('slug')
-
-
-
-
- {!! Form::label('content', 'Content:', ['class' => 'control-label']) !!}
-
- {!! Form::textarea('content', null, ['class' => 'form-control', 'data-type' => 'simplemde']) !!}
-
- @InputError('content')
-
Use {!! link_to('https://simplemde.com/markdown-guide', 'markdown', ['target' => '_blank']) !!} to style the text.
-
-
-
-
- {!! Form::label('published', 'Published:', ['class' => 'control-label']) !!}
- {!! Form::select('published', [0 => 'No', 1 => 'Yes'], null, ['class' => 'form-control', 'id' => 'published']) !!}
- @InputError('published')
-
-
-
-
- {!! Form::label('user_id', 'Author:', ['class' => 'control-label']) !!}
- {!! Form::memberList('user_id', null, ['class' => 'form-control', 'include_blank' => true]) !!}
- @InputError('user_id')
-
\ No newline at end of file
diff --git a/resources/views/pages/index.blade.php b/resources/views/pages/index.blade.php
deleted file mode 100755
index 72f326ff..00000000
--- a/resources/views/pages/index.blade.php
+++ /dev/null
@@ -1,72 +0,0 @@
-@extends('app.main')
-
-@section('title', 'Page Editor')
-@section('page-section', 'pages')
-@section('page-id', 'index')
-@section('header-main', 'Page Editor')
-
-@section('content')
-
-
-
- ID
- Page
- Author
-
-
-
-
-
- @if(count($pages))
- @foreach($pages as $page)
-
- {{ $page->id }}
-
- {{ $page->title }}
- {{ route('page.show', ['slug' => $page->slug], false) }}
-
- {{ $page->author->name }}
-
- @if($page->published)
-
- @else
-
- @endif
-
-
-
-
-
-
-
-
-
-
- @endforeach
- @else
-
- No webpages
-
- @endif
-
-
-
-
-
- New Page
-
-
-
- {{ $pages }}
-@endsection
\ No newline at end of file
diff --git a/resources/views/pages/view.blade.php b/resources/views/pages/view.blade.php
deleted file mode 100755
index 3f7b4ff7..00000000
--- a/resources/views/pages/view.blade.php
+++ /dev/null
@@ -1,10 +0,0 @@
-@extends('app.main')
-
-@section('title', $page->title)
-@section('page-section', 'pages')
-@section('page-id', 'view')
-@section('header-main', $page->title)
-
-@section('content')
- {!! Markdown::convertToHtml($page->content) !!}
-@endsection
\ No newline at end of file
diff --git a/routes/web.php b/routes/web.php
index 7d480430..8b958a88 100755
--- a/routes/web.php
+++ b/routes/web.php
@@ -11,13 +11,6 @@
|
*/
-Route::get('/', [
- 'as' => 'home',
- 'uses' => function () {
- return view('home');
- },
-]);
-
include base_path('routes/web/auth.php');
include base_path('routes/web/awards.php');
include base_path('routes/web/backups.php');
@@ -29,7 +22,6 @@
include base_path('routes/web/logs.php');
include base_path('routes/web/media.php');
include base_path('routes/web/members.php');
-include base_path('routes/web/page.php');
include base_path('routes/web/quotes.php');
include base_path('routes/web/resources.php');
include base_path('routes/web/training.php');
diff --git a/routes/web/page.php b/routes/web/page.php
deleted file mode 100755
index 7dd416b6..00000000
--- a/routes/web/page.php
+++ /dev/null
@@ -1,46 +0,0 @@
- 'page',
- ],
- function () {
- Route::get('', [
- 'as' => 'page.index',
- 'uses' => 'PageController@index',
- ]);
- Route::get('create', [
- 'as' => 'page.create',
- 'uses' => 'PageController@create',
- ]);
- Route::post('', [
- 'as' => 'page.store',
- 'uses' => 'PageController@store',
- ]);
- Route::group(
- [
- 'prefix' => '{slug}',
- 'where' => [
- 'slug' => '[\w-]+',
- ],
- ],
- function () {
- Route::get('', [
- 'as' => 'page.show',
- 'uses' => 'PageController@show',
- ]);
- Route::get('edit', [
- 'as' => 'page.edit',
- 'uses' => 'PageController@edit',
- ]);
- Route::post('edit', [
- 'as' => 'page.update',
- 'uses' => 'PageController@update',
- ]);
- Route::get('delete', [
- 'as' => 'page.destroy',
- 'uses' => 'PageController@destroy',
- ]);
- },
- );
- },
-);
diff --git a/tests/Feature/.gitkeep b/tests/Feature/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Feature/PagesTest.php b/tests/Feature/PagesTest.php
deleted file mode 100644
index 110e8fb8..00000000
--- a/tests/Feature/PagesTest.php
+++ /dev/null
@@ -1,29 +0,0 @@
-assertSuccessful()
- ->assertSeeText('Backstage Technical Services is a society formed of students at the University of Bath');
-});
-
-it('should show the about page', function () {
- get('/page/about')->assertSuccessful()->assertSeeText('About Us');
-})->skip('Needs to be made a static page');
-
-it('should show the faq page', function () {
- get('/page/faq')->assertSuccessful()->assertSeeText('Frequently Asked Questions');
-})->skip('Needs to be made a static page');
-
-it('should show the links page', function () {
- get('/page/links')->assertSuccessful()->assertSeeText('Links');
-})->skip('Needs to be made a static page');
-
-it('should show the privacy policy page', function () {
- get('/page/privacy-policy')->assertSuccessful()->assertSeeText('Privacy Policy');
-})->skip('Needs to be made a static page');
-
-it('should show the terms and conditions page', function () {
- get('/contact/book/terms')->assertSuccessful()->assertSeeText('Terms and Conditions');
-});
From ab19a16c49bb85197804b2ea152f95e66b20a6d0 Mon Sep 17 00:00:00 2001
From: Ben Jones
Date: Wed, 12 Nov 2025 23:55:42 +0000
Subject: [PATCH 7/9] build: add phpstan (#73)
---
.github/workflows/checks.yml | 24 +-
composer.json | 3 +
composer.lock | 1018 ++-
.../Presenters/Bootstrap4NavbarPresenter.php | 156 -
.../Bootstrap4NavbarRightPresenter.php | 16 -
phpstan-baseline.neon | 7651 +++++++++++++++++
phpstan.neon | 17 +
scripts/set_env.sh | 20 +
tests/Pest.php | 9 -
9 files changed, 8360 insertions(+), 554 deletions(-)
delete mode 100755 packages/WebDevTools/Laravel/Presenters/Bootstrap4NavbarPresenter.php
delete mode 100755 packages/WebDevTools/Laravel/Presenters/Bootstrap4NavbarRightPresenter.php
create mode 100644 phpstan-baseline.neon
create mode 100644 phpstan.neon
create mode 100755 scripts/set_env.sh
diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml
index e9824d44..5642d2fd 100644
--- a/.github/workflows/checks.yml
+++ b/.github/workflows/checks.yml
@@ -19,6 +19,28 @@ jobs:
- run: yarn install --frozen-lockfile
- run: yarn check:format
+ phpstan:
+ name: PHPStan
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ persist-credentials: 'false'
+ - uses: shivammathur/setup-php@v2
+ with:
+ php-version: 8.4
+ tools: composer
+ - run: composer install --no-interaction --prefer-dist
+ - name: Configure app
+ run: |
+ cp .env.example .env
+ php artisan key:generate
+ scripts/set_env.sh YOUTUBE_API_KEY dummy
+ php artisan ide-helper:generate
+ - run: |
+ ./vendor/bin/phpstan analyse \
+ --memory-limit 1G \
+ --error-format github
test:
name: Tests
runs-on: ubuntu-latest
@@ -29,7 +51,7 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
- fetch-depth: 1
+ persist-credentials: 'false'
- uses: shivammathur/setup-php@v2
with:
php-version: 8.4
diff --git a/composer.json b/composer.json
index 65072c5a..2b778ffa 100755
--- a/composer.json
+++ b/composer.json
@@ -39,9 +39,12 @@
"barryvdh/laravel-ide-helper": "^3.6",
"fakerphp/faker": "^1.9.1",
"filp/whoops": "^2.0",
+ "larastan/larastan": "^3.0",
"mockery/mockery": "^1.4.2",
"pestphp/pest": "^4.0",
"pestphp/pest-plugin-laravel": "^4.0",
+ "phpstan/phpstan": "^2.1",
+ "phpstan/phpstan-phpunit": "^2.0",
"phpunit/php-code-coverage": "^12"
},
"autoload": {
diff --git a/composer.lock b/composer.lock
index af0c854d..fb2dc310 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "9cbc76c0df809a797a628c042445c2a9",
+ "content-hash": "9a01c46af8dac073106784fd2b01f5c9",
"packages": [
{
"name": "alaouy/youtube",
@@ -133,25 +133,25 @@
},
{
"name": "brick/math",
- "version": "0.12.3",
+ "version": "0.14.0",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba"
+ "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/866551da34e9a618e64a819ee1e01c20d8a588ba",
- "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba",
+ "url": "https://api.github.com/repos/brick/math/zipball/113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2",
+ "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2",
"shasum": ""
},
"require": {
- "php": "^8.1"
+ "php": "^8.2"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^10.1",
- "vimeo/psalm": "6.8.8"
+ "phpstan/phpstan": "2.1.22",
+ "phpunit/phpunit": "^11.5"
},
"type": "library",
"autoload": {
@@ -181,7 +181,7 @@
],
"support": {
"issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.12.3"
+ "source": "https://github.com/brick/math/tree/0.14.0"
},
"funding": [
{
@@ -189,7 +189,7 @@
"type": "github"
}
],
- "time": "2025-02-28T13:11:00+00:00"
+ "time": "2025-08-29T12:40:03+00:00"
},
{
"name": "bugsnag/bugsnag",
@@ -494,16 +494,16 @@
},
{
"name": "composer/ca-bundle",
- "version": "1.5.8",
+ "version": "1.5.9",
"source": {
"type": "git",
"url": "https://github.com/composer/ca-bundle.git",
- "reference": "719026bb30813accb68271fee7e39552a58e9f65"
+ "reference": "1905981ee626e6f852448b7aaa978f8666c5bc54"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/ca-bundle/zipball/719026bb30813accb68271fee7e39552a58e9f65",
- "reference": "719026bb30813accb68271fee7e39552a58e9f65",
+ "url": "https://api.github.com/repos/composer/ca-bundle/zipball/1905981ee626e6f852448b7aaa978f8666c5bc54",
+ "reference": "1905981ee626e6f852448b7aaa978f8666c5bc54",
"shasum": ""
},
"require": {
@@ -550,7 +550,7 @@
"support": {
"irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/ca-bundle/issues",
- "source": "https://github.com/composer/ca-bundle/tree/1.5.8"
+ "source": "https://github.com/composer/ca-bundle/tree/1.5.9"
},
"funding": [
{
@@ -562,7 +562,7 @@
"type": "github"
}
],
- "time": "2025-08-20T18:49:47+00:00"
+ "time": "2025-11-06T11:46:17+00:00"
},
{
"name": "composer/installers",
@@ -787,16 +787,16 @@
},
{
"name": "doctrine/dbal",
- "version": "3.10.1",
+ "version": "3.10.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
- "reference": "3626601014388095d3af9de7e9e958623b7ef005"
+ "reference": "65edaca19a752730f290ec2fb89d593cb40afb43"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/3626601014388095d3af9de7e9e958623b7ef005",
- "reference": "3626601014388095d3af9de7e9e958623b7ef005",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/65edaca19a752730f290ec2fb89d593cb40afb43",
+ "reference": "65edaca19a752730f290ec2fb89d593cb40afb43",
"shasum": ""
},
"require": {
@@ -812,14 +812,14 @@
},
"require-dev": {
"doctrine/cache": "^1.11|^2.0",
- "doctrine/coding-standard": "13.0.0",
+ "doctrine/coding-standard": "14.0.0",
"fig/log-test": "^1",
"jetbrains/phpstorm-stubs": "2023.1",
- "phpstan/phpstan": "2.1.17",
+ "phpstan/phpstan": "2.1.30",
"phpstan/phpstan-strict-rules": "^2",
- "phpunit/phpunit": "9.6.23",
- "slevomat/coding-standard": "8.16.2",
- "squizlabs/php_codesniffer": "3.13.1",
+ "phpunit/phpunit": "9.6.29",
+ "slevomat/coding-standard": "8.24.0",
+ "squizlabs/php_codesniffer": "4.0.0",
"symfony/cache": "^5.4|^6.0|^7.0",
"symfony/console": "^4.4|^5.4|^6.0|^7.0"
},
@@ -881,7 +881,7 @@
],
"support": {
"issues": "https://github.com/doctrine/dbal/issues",
- "source": "https://github.com/doctrine/dbal/tree/3.10.1"
+ "source": "https://github.com/doctrine/dbal/tree/3.10.3"
},
"funding": [
{
@@ -897,7 +897,7 @@
"type": "tidelift"
}
],
- "time": "2025-08-05T12:18:06+00:00"
+ "time": "2025-10-09T09:05:12+00:00"
},
{
"name": "doctrine/deprecations",
@@ -1207,29 +1207,28 @@
},
{
"name": "dragonmantank/cron-expression",
- "version": "v3.4.0",
+ "version": "v3.6.0",
"source": {
"type": "git",
"url": "https://github.com/dragonmantank/cron-expression.git",
- "reference": "8c784d071debd117328803d86b2097615b457500"
+ "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500",
- "reference": "8c784d071debd117328803d86b2097615b457500",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/d61a8a9604ec1f8c3d150d09db6ce98b32675013",
+ "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013",
"shasum": ""
},
"require": {
- "php": "^7.2|^8.0",
- "webmozart/assert": "^1.0"
+ "php": "^8.2|^8.3|^8.4|^8.5"
},
"replace": {
"mtdowling/cron-expression": "^1.0"
},
"require-dev": {
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^1.0",
- "phpunit/phpunit": "^7.0|^8.0|^9.0"
+ "phpstan/extension-installer": "^1.4.3",
+ "phpstan/phpstan": "^1.12.32|^2.1.31",
+ "phpunit/phpunit": "^8.5.48|^9.0"
},
"type": "library",
"extra": {
@@ -1260,7 +1259,7 @@
],
"support": {
"issues": "https://github.com/dragonmantank/cron-expression/issues",
- "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0"
+ "source": "https://github.com/dragonmantank/cron-expression/tree/v3.6.0"
},
"funding": [
{
@@ -1268,7 +1267,7 @@
"type": "github"
}
],
- "time": "2024-10-09T13:47:03+00:00"
+ "time": "2025-10-31T18:51:33+00:00"
},
{
"name": "egulias/email-validator",
@@ -1441,20 +1440,20 @@
},
{
"name": "ezyang/htmlpurifier",
- "version": "v4.18.0",
+ "version": "v4.19.0",
"source": {
"type": "git",
"url": "https://github.com/ezyang/htmlpurifier.git",
- "reference": "cb56001e54359df7ae76dc522d08845dc741621b"
+ "reference": "b287d2a16aceffbf6e0295559b39662612b77fcf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/cb56001e54359df7ae76dc522d08845dc741621b",
- "reference": "cb56001e54359df7ae76dc522d08845dc741621b",
+ "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/b287d2a16aceffbf6e0295559b39662612b77fcf",
+ "reference": "b287d2a16aceffbf6e0295559b39662612b77fcf",
"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 || ~8.3.0 || ~8.4.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 || ~8.4.0 || ~8.5.0"
},
"require-dev": {
"cerdic/css-tidy": "^1.7 || ^2.0",
@@ -1496,9 +1495,9 @@
],
"support": {
"issues": "https://github.com/ezyang/htmlpurifier/issues",
- "source": "https://github.com/ezyang/htmlpurifier/tree/v4.18.0"
+ "source": "https://github.com/ezyang/htmlpurifier/tree/v4.19.0"
},
- "time": "2024-11-01T03:51:45+00:00"
+ "time": "2025-10-17T16:34:55+00:00"
},
{
"name": "filp/whoops",
@@ -2333,16 +2332,16 @@
},
{
"name": "konekt/html",
- "version": "6.6.0",
+ "version": "6.7.0",
"source": {
"type": "git",
"url": "https://github.com/artkonekt/html.git",
- "reference": "bde98454f6ad17e0047d914d824f32fc1bb797ec"
+ "reference": "b69b78dcd047e99ef506ad8c98e6cff42fae9bae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/artkonekt/html/zipball/bde98454f6ad17e0047d914d824f32fc1bb797ec",
- "reference": "bde98454f6ad17e0047d914d824f32fc1bb797ec",
+ "url": "https://api.github.com/repos/artkonekt/html/zipball/b69b78dcd047e99ef506ad8c98e6cff42fae9bae",
+ "reference": "b69b78dcd047e99ef506ad8c98e6cff42fae9bae",
"shasum": ""
},
"require": {
@@ -2408,7 +2407,7 @@
"issues": "https://github.com/artkonekt/html/issues",
"source": "https://github.com/artkonekt/html"
},
- "time": "2025-02-26T11:43:04+00:00"
+ "time": "2025-11-10T20:02:03+00:00"
},
{
"name": "kriswallsmith/assetic",
@@ -2459,30 +2458,30 @@
},
{
"name": "laminas/laminas-stdlib",
- "version": "3.20.0",
+ "version": "3.21.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-stdlib.git",
- "reference": "8974a1213be42c3e2f70b2c27b17f910291ab2f4"
+ "reference": "b1c81514cfe158aadf724c42b34d3d0a8164c096"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/8974a1213be42c3e2f70b2c27b17f910291ab2f4",
- "reference": "8974a1213be42c3e2f70b2c27b17f910291ab2f4",
+ "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/b1c81514cfe158aadf724c42b34d3d0a8164c096",
+ "reference": "b1c81514cfe158aadf724c42b34d3d0a8164c096",
"shasum": ""
},
"require": {
- "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0"
+ "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0"
},
"conflict": {
"zendframework/zend-stdlib": "*"
},
"require-dev": {
- "laminas/laminas-coding-standard": "^3.0",
- "phpbench/phpbench": "^1.3.1",
- "phpunit/phpunit": "^10.5.38",
- "psalm/plugin-phpunit": "^0.19.0",
- "vimeo/psalm": "^5.26.1"
+ "laminas/laminas-coding-standard": "^3.1.0",
+ "phpbench/phpbench": "^1.4.1",
+ "phpunit/phpunit": "^11.5.42",
+ "psalm/plugin-phpunit": "^0.19.5",
+ "vimeo/psalm": "^6.13.1"
},
"type": "library",
"autoload": {
@@ -2514,24 +2513,24 @@
"type": "community_bridge"
}
],
- "time": "2024-10-29T13:46:07+00:00"
+ "time": "2025-10-11T18:13:12+00:00"
},
{
"name": "laravel/framework",
- "version": "v11.45.2",
+ "version": "v11.46.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "d134bf11e2208c0c5bd488cf19e612ca176b820a"
+ "reference": "5fd457f807570a962a53b403b1346efe4cc80bb8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/d134bf11e2208c0c5bd488cf19e612ca176b820a",
- "reference": "d134bf11e2208c0c5bd488cf19e612ca176b820a",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/5fd457f807570a962a53b403b1346efe4cc80bb8",
+ "reference": "5fd457f807570a962a53b403b1346efe4cc80bb8",
"shasum": ""
},
"require": {
- "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12",
+ "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",
@@ -2635,7 +2634,7 @@
"league/flysystem-read-only": "^3.25.1",
"league/flysystem-sftp-v3": "^3.25.1",
"mockery/mockery": "^1.6.10",
- "orchestra/testbench-core": "^9.16.0",
+ "orchestra/testbench-core": "^9.16.1",
"pda/pheanstalk": "^5.0.6",
"php-http/discovery": "^1.15",
"phpstan/phpstan": "^2.0",
@@ -2729,20 +2728,20 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2025-08-13T20:28:00+00:00"
+ "time": "2025-09-30T14:51:32+00:00"
},
{
"name": "laravel/prompts",
- "version": "v0.3.6",
+ "version": "v0.3.7",
"source": {
"type": "git",
"url": "https://github.com/laravel/prompts.git",
- "reference": "86a8b692e8661d0fb308cec64f3d176821323077"
+ "reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/prompts/zipball/86a8b692e8661d0fb308cec64f3d176821323077",
- "reference": "86a8b692e8661d0fb308cec64f3d176821323077",
+ "url": "https://api.github.com/repos/laravel/prompts/zipball/a1891d362714bc40c8d23b0b1d7090f022ea27cc",
+ "reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc",
"shasum": ""
},
"require": {
@@ -2759,8 +2758,8 @@
"illuminate/collections": "^10.0|^11.0|^12.0",
"mockery/mockery": "^1.5",
"pestphp/pest": "^2.3|^3.4",
- "phpstan/phpstan": "^1.11",
- "phpstan/phpstan-mockery": "^1.1"
+ "phpstan/phpstan": "^1.12.28",
+ "phpstan/phpstan-mockery": "^1.1.3"
},
"suggest": {
"ext-pcntl": "Required for the spinner to be animated."
@@ -2786,22 +2785,22 @@
"description": "Add beautiful and user-friendly forms to your command-line applications.",
"support": {
"issues": "https://github.com/laravel/prompts/issues",
- "source": "https://github.com/laravel/prompts/tree/v0.3.6"
+ "source": "https://github.com/laravel/prompts/tree/v0.3.7"
},
- "time": "2025-07-07T14:17:42+00:00"
+ "time": "2025-09-19T13:47:56+00:00"
},
{
"name": "laravel/serializable-closure",
- "version": "v2.0.4",
+ "version": "v2.0.6",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
- "reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841"
+ "reference": "038ce42edee619599a1debb7e81d7b3759492819"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b352cf0534aa1ae6b4d825d1e762e35d43f8a841",
- "reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/038ce42edee619599a1debb7e81d7b3759492819",
+ "reference": "038ce42edee619599a1debb7e81d7b3759492819",
"shasum": ""
},
"require": {
@@ -2849,7 +2848,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
- "time": "2025-03-19T13:51:03+00:00"
+ "time": "2025-10-09T13:42:30+00:00"
},
{
"name": "laravel/tinker",
@@ -3227,16 +3226,16 @@
},
{
"name": "league/flysystem",
- "version": "3.30.0",
+ "version": "3.30.2",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "2203e3151755d874bb2943649dae1eb8533ac93e"
+ "reference": "5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/2203e3151755d874bb2943649dae1eb8533ac93e",
- "reference": "2203e3151755d874bb2943649dae1eb8533ac93e",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277",
+ "reference": "5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277",
"shasum": ""
},
"require": {
@@ -3304,22 +3303,22 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/3.30.0"
+ "source": "https://github.com/thephpleague/flysystem/tree/3.30.2"
},
- "time": "2025-06-25T13:29:59+00:00"
+ "time": "2025-11-10T17:13:11+00:00"
},
{
"name": "league/flysystem-local",
- "version": "3.30.0",
+ "version": "3.30.2",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-local.git",
- "reference": "6691915f77c7fb69adfb87dcd550052dc184ee10"
+ "reference": "ab4f9d0d672f601b102936aa728801dd1a11968d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/6691915f77c7fb69adfb87dcd550052dc184ee10",
- "reference": "6691915f77c7fb69adfb87dcd550052dc184ee10",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/ab4f9d0d672f601b102936aa728801dd1a11968d",
+ "reference": "ab4f9d0d672f601b102936aa728801dd1a11968d",
"shasum": ""
},
"require": {
@@ -3353,9 +3352,9 @@
"local"
],
"support": {
- "source": "https://github.com/thephpleague/flysystem-local/tree/3.30.0"
+ "source": "https://github.com/thephpleague/flysystem-local/tree/3.30.2"
},
- "time": "2025-05-21T10:34:19+00:00"
+ "time": "2025-11-10T11:23:37+00:00"
},
{
"name": "league/mime-type-detection",
@@ -3828,16 +3827,16 @@
},
{
"name": "nesbot/carbon",
- "version": "3.10.2",
+ "version": "3.10.3",
"source": {
"type": "git",
"url": "https://github.com/CarbonPHP/carbon.git",
- "reference": "76b5c07b8a9d2025ed1610e14cef1f3fd6ad2c24"
+ "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/76b5c07b8a9d2025ed1610e14cef1f3fd6ad2c24",
- "reference": "76b5c07b8a9d2025ed1610e14cef1f3fd6ad2c24",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f",
+ "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f",
"shasum": ""
},
"require": {
@@ -3855,13 +3854,13 @@
"require-dev": {
"doctrine/dbal": "^3.6.3 || ^4.0",
"doctrine/orm": "^2.15.2 || ^3.0",
- "friendsofphp/php-cs-fixer": "^3.75.0",
+ "friendsofphp/php-cs-fixer": "^v3.87.1",
"kylekatarnls/multi-tester": "^2.5.3",
"phpmd/phpmd": "^2.15.0",
"phpstan/extension-installer": "^1.4.3",
- "phpstan/phpstan": "^2.1.17",
- "phpunit/phpunit": "^10.5.46",
- "squizlabs/php_codesniffer": "^3.13.0"
+ "phpstan/phpstan": "^2.1.22",
+ "phpunit/phpunit": "^10.5.53",
+ "squizlabs/php_codesniffer": "^3.13.4"
},
"bin": [
"bin/carbon"
@@ -3929,29 +3928,29 @@
"type": "tidelift"
}
],
- "time": "2025-08-02T09:36:06+00:00"
+ "time": "2025-09-06T13:39:36+00:00"
},
{
"name": "nette/schema",
- "version": "v1.3.2",
+ "version": "v1.3.3",
"source": {
"type": "git",
"url": "https://github.com/nette/schema.git",
- "reference": "da801d52f0354f70a638673c4a0f04e16529431d"
+ "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d",
- "reference": "da801d52f0354f70a638673c4a0f04e16529431d",
+ "url": "https://api.github.com/repos/nette/schema/zipball/2befc2f42d7c715fd9d95efc31b1081e5d765004",
+ "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004",
"shasum": ""
},
"require": {
"nette/utils": "^4.0",
- "php": "8.1 - 8.4"
+ "php": "8.1 - 8.5"
},
"require-dev": {
"nette/tester": "^2.5.2",
- "phpstan/phpstan-nette": "^1.0",
+ "phpstan/phpstan-nette": "^2.0@stable",
"tracy/tracy": "^2.8"
},
"type": "library",
@@ -3961,6 +3960,9 @@
}
},
"autoload": {
+ "psr-4": {
+ "Nette\\": "src"
+ },
"classmap": [
"src/"
]
@@ -3989,9 +3991,9 @@
],
"support": {
"issues": "https://github.com/nette/schema/issues",
- "source": "https://github.com/nette/schema/tree/v1.3.2"
+ "source": "https://github.com/nette/schema/tree/v1.3.3"
},
- "time": "2024-10-06T23:10:23+00:00"
+ "time": "2025-10-30T22:57:59+00:00"
},
{
"name": "nette/utils",
@@ -4084,16 +4086,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v5.6.1",
+ "version": "v5.6.2",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2"
+ "reference": "3a454ca033b9e06b63282ce19562e892747449bb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2",
- "reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3a454ca033b9e06b63282ce19562e892747449bb",
+ "reference": "3a454ca033b9e06b63282ce19562e892747449bb",
"shasum": ""
},
"require": {
@@ -4136,9 +4138,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.1"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.2"
},
- "time": "2025-08-13T20:13:15+00:00"
+ "time": "2025-10-21T19:32:17+00:00"
},
{
"name": "nunomaduro/collision",
@@ -4241,31 +4243,31 @@
},
{
"name": "nunomaduro/termwind",
- "version": "v2.3.1",
+ "version": "v2.3.2",
"source": {
"type": "git",
"url": "https://github.com/nunomaduro/termwind.git",
- "reference": "dfa08f390e509967a15c22493dc0bac5733d9123"
+ "reference": "eb61920a53057a7debd718a5b89c2178032b52c0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/dfa08f390e509967a15c22493dc0bac5733d9123",
- "reference": "dfa08f390e509967a15c22493dc0bac5733d9123",
+ "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/eb61920a53057a7debd718a5b89c2178032b52c0",
+ "reference": "eb61920a53057a7debd718a5b89c2178032b52c0",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"php": "^8.2",
- "symfony/console": "^7.2.6"
+ "symfony/console": "^7.3.4"
},
"require-dev": {
- "illuminate/console": "^11.44.7",
- "laravel/pint": "^1.22.0",
+ "illuminate/console": "^11.46.1",
+ "laravel/pint": "^1.25.1",
"mockery/mockery": "^1.6.12",
- "pestphp/pest": "^2.36.0 || ^3.8.2",
- "phpstan/phpstan": "^1.12.25",
+ "pestphp/pest": "^2.36.0 || ^3.8.4",
+ "phpstan/phpstan": "^1.12.32",
"phpstan/phpstan-strict-rules": "^1.6.2",
- "symfony/var-dumper": "^7.2.6",
+ "symfony/var-dumper": "^7.3.4",
"thecodingmachine/phpstan-strict-rules": "^1.0.0"
},
"type": "library",
@@ -4308,7 +4310,7 @@
],
"support": {
"issues": "https://github.com/nunomaduro/termwind/issues",
- "source": "https://github.com/nunomaduro/termwind/tree/v2.3.1"
+ "source": "https://github.com/nunomaduro/termwind/tree/v2.3.2"
},
"funding": [
{
@@ -4324,7 +4326,7 @@
"type": "github"
}
],
- "time": "2025-05-08T08:14:37+00:00"
+ "time": "2025-10-18T11:10:27+00:00"
},
{
"name": "nwidart/laravel-modules",
@@ -5010,16 +5012,16 @@
},
{
"name": "psy/psysh",
- "version": "v0.12.10",
+ "version": "v0.12.14",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
- "reference": "6e80abe6f2257121f1eb9a4c55bf29d921025b22"
+ "reference": "95c29b3756a23855a30566b745d218bee690bef2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/6e80abe6f2257121f1eb9a4c55bf29d921025b22",
- "reference": "6e80abe6f2257121f1eb9a4c55bf29d921025b22",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/95c29b3756a23855a30566b745d218bee690bef2",
+ "reference": "95c29b3756a23855a30566b745d218bee690bef2",
"shasum": ""
},
"require": {
@@ -5034,11 +5036,12 @@
"symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.2"
+ "bamarni/composer-bin-plugin": "^1.2",
+ "composer/class-map-generator": "^1.6"
},
"suggest": {
+ "composer/class-map-generator": "Improved tab completion performance with better class discovery.",
"ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
- "ext-pdo-sqlite": "The doc command requires SQLite to work.",
"ext-posix": "If you have PCNTL, you'll want the POSIX extension as well."
},
"bin": [
@@ -5082,9 +5085,9 @@
],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.12.10"
+ "source": "https://github.com/bobthecow/psysh/tree/v0.12.14"
},
- "time": "2025-08-04T12:39:37+00:00"
+ "time": "2025-10-27T17:15:31+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -5208,20 +5211,20 @@
},
{
"name": "ramsey/uuid",
- "version": "4.9.0",
+ "version": "4.9.1",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0"
+ "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/4e0e23cc785f0724a0e838279a9eb03f28b092a0",
- "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440",
+ "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440",
"shasum": ""
},
"require": {
- "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13",
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14",
"php": "^8.0",
"ramsey/collection": "^1.2 || ^2.0"
},
@@ -5280,9 +5283,9 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.9.0"
+ "source": "https://github.com/ramsey/uuid/tree/4.9.1"
},
- "time": "2025-06-25T14:20:11+00:00"
+ "time": "2025-09-04T20:59:21+00:00"
},
{
"name": "robloach/component-installer",
@@ -5730,16 +5733,16 @@
},
{
"name": "spatie/laravel-backup",
- "version": "9.3.4",
+ "version": "9.3.6",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-backup.git",
- "reference": "707e27eb1746296ac7e111179ec5da842f64e235"
+ "reference": "d378a07b580aa8bf440b50decdbab7b5d6f63c46"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/laravel-backup/zipball/707e27eb1746296ac7e111179ec5da842f64e235",
- "reference": "707e27eb1746296ac7e111179ec5da842f64e235",
+ "url": "https://api.github.com/repos/spatie/laravel-backup/zipball/d378a07b580aa8bf440b50decdbab7b5d6f63c46",
+ "reference": "d378a07b580aa8bf440b50decdbab7b5d6f63c46",
"shasum": ""
},
"require": {
@@ -5767,7 +5770,7 @@
"league/flysystem-aws-s3-v3": "^2.0|^3.0",
"mockery/mockery": "^1.4",
"orchestra/testbench": "^8.0|^9.0|^10.0",
- "pestphp/pest": "^1.20|^2.0|^3.0",
+ "pestphp/pest": "^1.20|^2.0|^3.0|^4.0",
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan-deprecation-rules": "^1.0",
"phpstan/phpstan-phpunit": "^1.1",
@@ -5814,7 +5817,7 @@
],
"support": {
"issues": "https://github.com/spatie/laravel-backup/issues",
- "source": "https://github.com/spatie/laravel-backup/tree/9.3.4"
+ "source": "https://github.com/spatie/laravel-backup/tree/9.3.6"
},
"funding": [
{
@@ -5826,7 +5829,7 @@
"type": "other"
}
],
- "time": "2025-07-25T07:51:20+00:00"
+ "time": "2025-11-05T11:25:01+00:00"
},
{
"name": "spatie/laravel-db-snapshots",
@@ -6266,16 +6269,16 @@
},
{
"name": "symfony/console",
- "version": "v7.3.3",
+ "version": "v7.3.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7"
+ "reference": "c28ad91448f86c5f6d9d2c70f0cf68bf135f252a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7",
- "reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7",
+ "url": "https://api.github.com/repos/symfony/console/zipball/c28ad91448f86c5f6d9d2c70f0cf68bf135f252a",
+ "reference": "c28ad91448f86c5f6d9d2c70f0cf68bf135f252a",
"shasum": ""
},
"require": {
@@ -6340,7 +6343,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v7.3.3"
+ "source": "https://github.com/symfony/console/tree/v7.3.6"
},
"funding": [
{
@@ -6360,20 +6363,20 @@
"type": "tidelift"
}
],
- "time": "2025-08-25T06:35:40+00:00"
+ "time": "2025-11-04T01:21:42+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v7.3.0",
+ "version": "v7.3.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2"
+ "reference": "84321188c4754e64273b46b406081ad9b18e8614"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/601a5ce9aaad7bf10797e3663faefce9e26c24e2",
- "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/84321188c4754e64273b46b406081ad9b18e8614",
+ "reference": "84321188c4754e64273b46b406081ad9b18e8614",
"shasum": ""
},
"require": {
@@ -6409,7 +6412,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v7.3.0"
+ "source": "https://github.com/symfony/css-selector/tree/v7.3.6"
},
"funding": [
{
@@ -6420,12 +6423,16 @@
"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-25T14:21:43+00:00"
+ "time": "2025-10-29T17:24:25+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -6496,16 +6503,16 @@
},
{
"name": "symfony/error-handler",
- "version": "v7.3.2",
+ "version": "v7.3.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "0b31a944fcd8759ae294da4d2808cbc53aebd0c3"
+ "reference": "bbe40bfab84323d99dab491b716ff142410a92a8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/0b31a944fcd8759ae294da4d2808cbc53aebd0c3",
- "reference": "0b31a944fcd8759ae294da4d2808cbc53aebd0c3",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/bbe40bfab84323d99dab491b716ff142410a92a8",
+ "reference": "bbe40bfab84323d99dab491b716ff142410a92a8",
"shasum": ""
},
"require": {
@@ -6553,7 +6560,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/v7.3.2"
+ "source": "https://github.com/symfony/error-handler/tree/v7.3.6"
},
"funding": [
{
@@ -6573,7 +6580,7 @@
"type": "tidelift"
}
],
- "time": "2025-07-07T08:17:57+00:00"
+ "time": "2025-10-31T19:12:50+00:00"
},
{
"name": "symfony/event-dispatcher",
@@ -6737,16 +6744,16 @@
},
{
"name": "symfony/finder",
- "version": "v7.3.2",
+ "version": "v7.3.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "2a6614966ba1074fa93dae0bc804227422df4dfe"
+ "reference": "9f696d2f1e340484b4683f7853b273abff94421f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/2a6614966ba1074fa93dae0bc804227422df4dfe",
- "reference": "2a6614966ba1074fa93dae0bc804227422df4dfe",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/9f696d2f1e340484b4683f7853b273abff94421f",
+ "reference": "9f696d2f1e340484b4683f7853b273abff94421f",
"shasum": ""
},
"require": {
@@ -6781,7 +6788,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v7.3.2"
+ "source": "https://github.com/symfony/finder/tree/v7.3.5"
},
"funding": [
{
@@ -6801,20 +6808,20 @@
"type": "tidelift"
}
],
- "time": "2025-07-15T13:41:35+00:00"
+ "time": "2025-10-15T18:45:57+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v7.3.3",
+ "version": "v7.3.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "7475561ec27020196c49bb7c4f178d33d7d3dc00"
+ "reference": "db488a62f98f7a81d5746f05eea63a74e55bb7c4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/7475561ec27020196c49bb7c4f178d33d7d3dc00",
- "reference": "7475561ec27020196c49bb7c4f178d33d7d3dc00",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/db488a62f98f7a81d5746f05eea63a74e55bb7c4",
+ "reference": "db488a62f98f7a81d5746f05eea63a74e55bb7c4",
"shasum": ""
},
"require": {
@@ -6864,7 +6871,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v7.3.3"
+ "source": "https://github.com/symfony/http-foundation/tree/v7.3.7"
},
"funding": [
{
@@ -6884,20 +6891,20 @@
"type": "tidelift"
}
],
- "time": "2025-08-20T08:04:18+00:00"
+ "time": "2025-11-08T16:41:12+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v7.3.3",
+ "version": "v7.3.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "72c304de37e1a1cec6d5d12b81187ebd4850a17b"
+ "reference": "10b8e9b748ea95fa4539c208e2487c435d3c87ce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/72c304de37e1a1cec6d5d12b81187ebd4850a17b",
- "reference": "72c304de37e1a1cec6d5d12b81187ebd4850a17b",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/10b8e9b748ea95fa4539c208e2487c435d3c87ce",
+ "reference": "10b8e9b748ea95fa4539c208e2487c435d3c87ce",
"shasum": ""
},
"require": {
@@ -6982,7 +6989,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/v7.3.3"
+ "source": "https://github.com/symfony/http-kernel/tree/v7.3.7"
},
"funding": [
{
@@ -7002,20 +7009,20 @@
"type": "tidelift"
}
],
- "time": "2025-08-29T08:23:45+00:00"
+ "time": "2025-11-12T11:38:40+00:00"
},
{
"name": "symfony/mailer",
- "version": "v7.3.2",
+ "version": "v7.3.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
- "reference": "d43e84d9522345f96ad6283d5dfccc8c1cfc299b"
+ "reference": "fd497c45ba9c10c37864e19466b090dcb60a50ba"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mailer/zipball/d43e84d9522345f96ad6283d5dfccc8c1cfc299b",
- "reference": "d43e84d9522345f96ad6283d5dfccc8c1cfc299b",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/fd497c45ba9c10c37864e19466b090dcb60a50ba",
+ "reference": "fd497c45ba9c10c37864e19466b090dcb60a50ba",
"shasum": ""
},
"require": {
@@ -7066,7 +7073,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/mailer/tree/v7.3.2"
+ "source": "https://github.com/symfony/mailer/tree/v7.3.5"
},
"funding": [
{
@@ -7086,20 +7093,20 @@
"type": "tidelift"
}
],
- "time": "2025-07-15T11:36:08+00:00"
+ "time": "2025-10-24T14:27:20+00:00"
},
{
"name": "symfony/mime",
- "version": "v7.3.2",
+ "version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "e0a0f859148daf1edf6c60b398eb40bfc96697d1"
+ "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/e0a0f859148daf1edf6c60b398eb40bfc96697d1",
- "reference": "e0a0f859148daf1edf6c60b398eb40bfc96697d1",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/b1b828f69cbaf887fa835a091869e55df91d0e35",
+ "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35",
"shasum": ""
},
"require": {
@@ -7154,7 +7161,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v7.3.2"
+ "source": "https://github.com/symfony/mime/tree/v7.3.4"
},
"funding": [
{
@@ -7174,7 +7181,7 @@
"type": "tidelift"
}
],
- "time": "2025-07-15T13:41:35+00:00"
+ "time": "2025-09-16T08:38:17+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -7847,16 +7854,16 @@
},
{
"name": "symfony/process",
- "version": "v7.3.3",
+ "version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "32241012d521e2e8a9d713adb0812bb773b907f1"
+ "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/32241012d521e2e8a9d713adb0812bb773b907f1",
- "reference": "32241012d521e2e8a9d713adb0812bb773b907f1",
+ "url": "https://api.github.com/repos/symfony/process/zipball/f24f8f316367b30810810d4eb30c543d7003ff3b",
+ "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b",
"shasum": ""
},
"require": {
@@ -7888,7 +7895,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v7.3.3"
+ "source": "https://github.com/symfony/process/tree/v7.3.4"
},
"funding": [
{
@@ -7908,20 +7915,20 @@
"type": "tidelift"
}
],
- "time": "2025-08-18T09:42:54+00:00"
+ "time": "2025-09-11T10:12:26+00:00"
},
{
"name": "symfony/routing",
- "version": "v7.3.2",
+ "version": "v7.3.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "7614b8ca5fa89b9cd233e21b627bfc5774f586e4"
+ "reference": "c97abe725f2a1a858deca629a6488c8fc20c3091"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/7614b8ca5fa89b9cd233e21b627bfc5774f586e4",
- "reference": "7614b8ca5fa89b9cd233e21b627bfc5774f586e4",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/c97abe725f2a1a858deca629a6488c8fc20c3091",
+ "reference": "c97abe725f2a1a858deca629a6488c8fc20c3091",
"shasum": ""
},
"require": {
@@ -7973,7 +7980,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v7.3.2"
+ "source": "https://github.com/symfony/routing/tree/v7.3.6"
},
"funding": [
{
@@ -7993,20 +8000,20 @@
"type": "tidelift"
}
],
- "time": "2025-07-15T11:36:08+00:00"
+ "time": "2025-11-05T07:57:47+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v3.6.0",
+ "version": "v3.6.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4"
+ "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4",
- "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43",
+ "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43",
"shasum": ""
},
"require": {
@@ -8060,7 +8067,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.6.0"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.6.1"
},
"funding": [
{
@@ -8071,25 +8078,29 @@
"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": "2025-04-25T09:37:31+00:00"
+ "time": "2025-07-15T11:30:57+00:00"
},
{
"name": "symfony/string",
- "version": "v7.3.3",
+ "version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c"
+ "reference": "f96476035142921000338bad71e5247fbc138872"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/17a426cce5fd1f0901fefa9b2a490d0038fd3c9c",
- "reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c",
+ "url": "https://api.github.com/repos/symfony/string/zipball/f96476035142921000338bad71e5247fbc138872",
+ "reference": "f96476035142921000338bad71e5247fbc138872",
"shasum": ""
},
"require": {
@@ -8104,7 +8115,6 @@
},
"require-dev": {
"symfony/emoji": "^7.1",
- "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",
@@ -8147,7 +8157,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v7.3.3"
+ "source": "https://github.com/symfony/string/tree/v7.3.4"
},
"funding": [
{
@@ -8167,20 +8177,20 @@
"type": "tidelift"
}
],
- "time": "2025-08-25T06:35:40+00:00"
+ "time": "2025-09-11T14:36:48+00:00"
},
{
"name": "symfony/translation",
- "version": "v7.3.3",
+ "version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "e0837b4cbcef63c754d89a4806575cada743a38d"
+ "reference": "ec25870502d0c7072d086e8ffba1420c85965174"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/e0837b4cbcef63c754d89a4806575cada743a38d",
- "reference": "e0837b4cbcef63c754d89a4806575cada743a38d",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/ec25870502d0c7072d086e8ffba1420c85965174",
+ "reference": "ec25870502d0c7072d086e8ffba1420c85965174",
"shasum": ""
},
"require": {
@@ -8247,7 +8257,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v7.3.3"
+ "source": "https://github.com/symfony/translation/tree/v7.3.4"
},
"funding": [
{
@@ -8267,20 +8277,20 @@
"type": "tidelift"
}
],
- "time": "2025-08-01T21:02:37+00:00"
+ "time": "2025-09-07T11:39:36+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v3.6.0",
+ "version": "v3.6.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d"
+ "reference": "65a8bc82080447fae78373aa10f8d13b38338977"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/df210c7a2573f1913b2d17cc95f90f53a73d8f7d",
- "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977",
+ "reference": "65a8bc82080447fae78373aa10f8d13b38338977",
"shasum": ""
},
"require": {
@@ -8329,7 +8339,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.6.0"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.6.1"
},
"funding": [
{
@@ -8340,12 +8350,16 @@
"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-27T08:32:26+00:00"
+ "time": "2025-07-15T13:41:35+00:00"
},
{
"name": "symfony/uid",
@@ -8423,16 +8437,16 @@
},
{
"name": "symfony/var-dumper",
- "version": "v7.3.3",
+ "version": "v7.3.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "34d8d4c4b9597347306d1ec8eb4e1319b1e6986f"
+ "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/34d8d4c4b9597347306d1ec8eb4e1319b1e6986f",
- "reference": "34d8d4c4b9597347306d1ec8eb4e1319b1e6986f",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/476c4ae17f43a9a36650c69879dcf5b1e6ae724d",
+ "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d",
"shasum": ""
},
"require": {
@@ -8486,7 +8500,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v7.3.3"
+ "source": "https://github.com/symfony/var-dumper/tree/v7.3.5"
},
"funding": [
{
@@ -8506,7 +8520,7 @@
"type": "tidelift"
}
],
- "time": "2025-08-13T11:49:31+00:00"
+ "time": "2025-09-27T09:00:46+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@@ -8776,64 +8790,6 @@
],
"time": "2024-11-21T01:49:47+00:00"
},
- {
- "name": "webmozart/assert",
- "version": "1.11.0",
- "source": {
- "type": "git",
- "url": "https://github.com/webmozarts/assert.git",
- "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
- "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
- "shasum": ""
- },
- "require": {
- "ext-ctype": "*",
- "php": "^7.2 || ^8.0"
- },
- "conflict": {
- "phpstan/phpstan": "<0.12.20",
- "vimeo/psalm": "<4.6.1 || 4.6.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5.13"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.10-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Webmozart\\Assert\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- }
- ],
- "description": "Assertions to validate method input/output with nice error messages.",
- "keywords": [
- "assert",
- "check",
- "validate"
- ],
- "support": {
- "issues": "https://github.com/webmozarts/assert/issues",
- "source": "https://github.com/webmozarts/assert/tree/1.11.0"
- },
- "time": "2022-06-03T18:03:27+00:00"
- },
{
"name": "wikimedia/composer-merge-plugin",
"version": "v2.1.0",
@@ -9125,16 +9081,16 @@
},
{
"name": "brianium/paratest",
- "version": "v7.12.0",
+ "version": "v7.14.2",
"source": {
"type": "git",
"url": "https://github.com/paratestphp/paratest.git",
- "reference": "6a34ddb12a3bd5bd07d831ce95f111087f3bcbd8"
+ "reference": "de06de1ae1203b11976c6ca01d6a9081c8b33d45"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/paratestphp/paratest/zipball/6a34ddb12a3bd5bd07d831ce95f111087f3bcbd8",
- "reference": "6a34ddb12a3bd5bd07d831ce95f111087f3bcbd8",
+ "url": "https://api.github.com/repos/paratestphp/paratest/zipball/de06de1ae1203b11976c6ca01d6a9081c8b33d45",
+ "reference": "de06de1ae1203b11976c6ca01d6a9081c8b33d45",
"shasum": ""
},
"require": {
@@ -9145,24 +9101,23 @@
"fidry/cpu-core-counter": "^1.3.0",
"jean85/pretty-package-versions": "^2.1.1",
"php": "~8.3.0 || ~8.4.0 || ~8.5.0",
- "phpunit/php-code-coverage": "^12.3.2",
+ "phpunit/php-code-coverage": "^12.4.0",
"phpunit/php-file-iterator": "^6",
"phpunit/php-timer": "^8",
- "phpunit/phpunit": "^12.3.6",
+ "phpunit/phpunit": "^12.4.1",
"sebastian/environment": "^8.0.3",
- "symfony/console": "^6.4.20 || ^7.3.2",
- "symfony/process": "^6.4.20 || ^7.3.0"
+ "symfony/console": "^6.4.20 || ^7.3.4",
+ "symfony/process": "^6.4.20 || ^7.3.4"
},
"require-dev": {
- "doctrine/coding-standard": "^13.0.1",
+ "doctrine/coding-standard": "^14.0.0",
"ext-pcntl": "*",
"ext-pcov": "*",
"ext-posix": "*",
- "phpstan/phpstan": "^2.1.22",
+ "phpstan/phpstan": "^2.1.31",
"phpstan/phpstan-deprecation-rules": "^2.0.3",
"phpstan/phpstan-phpunit": "^2.0.7",
- "phpstan/phpstan-strict-rules": "^2.0.6",
- "squizlabs/php_codesniffer": "^3.13.2",
+ "phpstan/phpstan-strict-rules": "^2.0.7",
"symfony/filesystem": "^6.4.13 || ^7.3.2"
},
"bin": [
@@ -9203,7 +9158,7 @@
],
"support": {
"issues": "https://github.com/paratestphp/paratest/issues",
- "source": "https://github.com/paratestphp/paratest/tree/v7.12.0"
+ "source": "https://github.com/paratestphp/paratest/tree/v7.14.2"
},
"funding": [
{
@@ -9215,7 +9170,7 @@
"type": "paypal"
}
],
- "time": "2025-08-29T05:28:31+00:00"
+ "time": "2025-10-24T07:20:53+00:00"
},
{
"name": "composer/class-map-generator",
@@ -9540,6 +9495,47 @@
},
"time": "2025-04-30T06:54:44+00:00"
},
+ {
+ "name": "iamcal/sql-parser",
+ "version": "v0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/iamcal/SQLParser.git",
+ "reference": "947083e2dca211a6f12fb1beb67a01e387de9b62"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/iamcal/SQLParser/zipball/947083e2dca211a6f12fb1beb67a01e387de9b62",
+ "reference": "947083e2dca211a6f12fb1beb67a01e387de9b62",
+ "shasum": ""
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^1.0",
+ "phpunit/phpunit": "^5|^6|^7|^8|^9"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "iamcal\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cal Henderson",
+ "email": "cal@iamcal.com"
+ }
+ ],
+ "description": "MySQL schema parser",
+ "support": {
+ "issues": "https://github.com/iamcal/SQLParser/issues",
+ "source": "https://github.com/iamcal/SQLParser/tree/v0.6"
+ },
+ "time": "2025-03-17T16:59:46+00:00"
+ },
{
"name": "jean85/pretty-package-versions",
"version": "2.1.1",
@@ -9600,6 +9596,96 @@
},
"time": "2025-03-19T14:43:43+00:00"
},
+ {
+ "name": "larastan/larastan",
+ "version": "v3.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/larastan/larastan.git",
+ "reference": "d13ef96d652d1b2a8f34f1760ba6bf5b9c98112e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/larastan/larastan/zipball/d13ef96d652d1b2a8f34f1760ba6bf5b9c98112e",
+ "reference": "d13ef96d652d1b2a8f34f1760ba6bf5b9c98112e",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "iamcal/sql-parser": "^0.6.0",
+ "illuminate/console": "^11.44.2 || ^12.4.1",
+ "illuminate/container": "^11.44.2 || ^12.4.1",
+ "illuminate/contracts": "^11.44.2 || ^12.4.1",
+ "illuminate/database": "^11.44.2 || ^12.4.1",
+ "illuminate/http": "^11.44.2 || ^12.4.1",
+ "illuminate/pipeline": "^11.44.2 || ^12.4.1",
+ "illuminate/support": "^11.44.2 || ^12.4.1",
+ "php": "^8.2",
+ "phpstan/phpstan": "^2.1.29"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^13",
+ "laravel/framework": "^11.44.2 || ^12.7.2",
+ "mockery/mockery": "^1.6.12",
+ "nikic/php-parser": "^5.4",
+ "orchestra/canvas": "^v9.2.2 || ^10.0.1",
+ "orchestra/testbench-core": "^9.12.0 || ^10.1",
+ "phpstan/phpstan-deprecation-rules": "^2.0.1",
+ "phpunit/phpunit": "^10.5.35 || ^11.5.15"
+ },
+ "suggest": {
+ "orchestra/testbench": "Using Larastan for analysing a package needs Testbench",
+ "phpmyadmin/sql-parser": "Install to enable Larastan's optional phpMyAdmin-based SQL parser automatically"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ },
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Larastan\\Larastan\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Can Vural",
+ "email": "can9119@gmail.com"
+ }
+ ],
+ "description": "Larastan - Discover bugs in your code without running it. A phpstan/phpstan extension for Laravel",
+ "keywords": [
+ "PHPStan",
+ "code analyse",
+ "code analysis",
+ "larastan",
+ "laravel",
+ "package",
+ "php",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/larastan/larastan/issues",
+ "source": "https://github.com/larastan/larastan/tree/v3.8.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/canvural",
+ "type": "github"
+ }
+ ],
+ "time": "2025-10-27T23:09:14+00:00"
+ },
{
"name": "mockery/mockery",
"version": "1.6.12",
@@ -9745,41 +9831,41 @@
},
{
"name": "pestphp/pest",
- "version": "v4.0.4",
+ "version": "v4.1.3",
"source": {
"type": "git",
"url": "https://github.com/pestphp/pest.git",
- "reference": "47fb1d77631d608022cc7af96cac90ac741c8394"
+ "reference": "477d20a54fd9329ddfb0f8d4eb90dca7bc81b027"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pestphp/pest/zipball/47fb1d77631d608022cc7af96cac90ac741c8394",
- "reference": "47fb1d77631d608022cc7af96cac90ac741c8394",
+ "url": "https://api.github.com/repos/pestphp/pest/zipball/477d20a54fd9329ddfb0f8d4eb90dca7bc81b027",
+ "reference": "477d20a54fd9329ddfb0f8d4eb90dca7bc81b027",
"shasum": ""
},
"require": {
- "brianium/paratest": "^7.11.2",
+ "brianium/paratest": "^7.14.0",
"nunomaduro/collision": "^8.8.2",
"nunomaduro/termwind": "^2.3.1",
"pestphp/pest-plugin": "^4.0.0",
"pestphp/pest-plugin-arch": "^4.0.0",
"pestphp/pest-plugin-mutate": "^4.0.1",
- "pestphp/pest-plugin-profanity": "^4.0.1",
+ "pestphp/pest-plugin-profanity": "^4.1.0",
"php": "^8.3.0",
- "phpunit/phpunit": "^12.3.7",
- "symfony/process": "^7.3.0"
+ "phpunit/phpunit": "^12.4.1",
+ "symfony/process": "^7.3.4"
},
"conflict": {
"filp/whoops": "<2.18.3",
- "phpunit/phpunit": ">12.3.7",
+ "phpunit/phpunit": ">12.4.1",
"sebastian/exporter": "<7.0.0",
"webmozart/assert": "<1.11.0"
},
"require-dev": {
"pestphp/pest-dev-tools": "^4.0.0",
- "pestphp/pest-plugin-browser": "^4.0.2",
+ "pestphp/pest-plugin-browser": "^4.1.1",
"pestphp/pest-plugin-type-coverage": "^4.0.2",
- "psy/psysh": "^0.12.10"
+ "psy/psysh": "^0.12.12"
},
"bin": [
"bin/pest"
@@ -9845,7 +9931,7 @@
],
"support": {
"issues": "https://github.com/pestphp/pest/issues",
- "source": "https://github.com/pestphp/pest/tree/v4.0.4"
+ "source": "https://github.com/pestphp/pest/tree/v4.1.3"
},
"funding": [
{
@@ -9857,7 +9943,7 @@
"type": "github"
}
],
- "time": "2025-08-28T18:19:42+00:00"
+ "time": "2025-10-29T22:45:27+00:00"
},
{
"name": "pestphp/pest-plugin",
@@ -10151,16 +10237,16 @@
},
{
"name": "pestphp/pest-plugin-profanity",
- "version": "v4.0.1",
+ "version": "v4.2.0",
"source": {
"type": "git",
"url": "https://github.com/pestphp/pest-plugin-profanity.git",
- "reference": "823d5d8ae07a265c70f5e1a9ce50639543b0bf11"
+ "reference": "c37e5e2c7136ee4eae12082e7952332bc1c6600a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pestphp/pest-plugin-profanity/zipball/823d5d8ae07a265c70f5e1a9ce50639543b0bf11",
- "reference": "823d5d8ae07a265c70f5e1a9ce50639543b0bf11",
+ "url": "https://api.github.com/repos/pestphp/pest-plugin-profanity/zipball/c37e5e2c7136ee4eae12082e7952332bc1c6600a",
+ "reference": "c37e5e2c7136ee4eae12082e7952332bc1c6600a",
"shasum": ""
},
"require": {
@@ -10201,9 +10287,9 @@
"unit"
],
"support": {
- "source": "https://github.com/pestphp/pest-plugin-profanity/tree/v4.0.1"
+ "source": "https://github.com/pestphp/pest-plugin-profanity/tree/v4.2.0"
},
- "time": "2025-08-20T12:58:03+00:00"
+ "time": "2025-10-28T23:14:11+00:00"
},
{
"name": "phar-io/manifest",
@@ -10573,16 +10659,16 @@
},
{
"name": "phpstan/phpdoc-parser",
- "version": "2.2.0",
+ "version": "2.3.0",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "b9e61a61e39e02dd90944e9115241c7f7e76bfd8"
+ "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/b9e61a61e39e02dd90944e9115241c7f7e76bfd8",
- "reference": "b9e61a61e39e02dd90944e9115241c7f7e76bfd8",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495",
+ "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495",
"shasum": ""
},
"require": {
@@ -10614,40 +10700,146 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/2.2.0"
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0"
+ },
+ "time": "2025-08-30T15:50:23+00:00"
+ },
+ {
+ "name": "phpstan/phpstan",
+ "version": "2.1.32",
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e126cad1e30a99b137b8ed75a85a676450ebb227",
+ "reference": "e126cad1e30a99b137b8ed75a85a676450ebb227",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan-shim": "*"
+ },
+ "bin": [
+ "phpstan",
+ "phpstan.phar"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPStan - PHP Static Analysis Tool",
+ "keywords": [
+ "dev",
+ "static analysis"
+ ],
+ "support": {
+ "docs": "https://phpstan.org/user-guide/getting-started",
+ "forum": "https://github.com/phpstan/phpstan/discussions",
+ "issues": "https://github.com/phpstan/phpstan/issues",
+ "security": "https://github.com/phpstan/phpstan/security/policy",
+ "source": "https://github.com/phpstan/phpstan-src"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/ondrejmirtes",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/phpstan",
+ "type": "github"
+ }
+ ],
+ "time": "2025-11-11T15:18:17+00:00"
+ },
+ {
+ "name": "phpstan/phpstan-phpunit",
+ "version": "2.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpstan-phpunit.git",
+ "reference": "2fe9fbeceaf76dd1ebaa7bbbb25e2fb5e59db2fe"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/2fe9fbeceaf76dd1ebaa7bbbb25e2fb5e59db2fe",
+ "reference": "2fe9fbeceaf76dd1ebaa7bbbb25e2fb5e59db2fe",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0",
+ "phpstan/phpstan": "^2.1.32"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<7.0"
+ },
+ "require-dev": {
+ "nikic/php-parser": "^5",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/phpstan-deprecation-rules": "^2.0",
+ "phpstan/phpstan-strict-rules": "^2.0",
+ "phpunit/phpunit": "^9.6"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "phpstan": {
+ "includes": [
+ "extension.neon",
+ "rules.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPUnit extensions and rules for PHPStan",
+ "support": {
+ "issues": "https://github.com/phpstan/phpstan-phpunit/issues",
+ "source": "https://github.com/phpstan/phpstan-phpunit/tree/2.0.8"
},
- "time": "2025-07-13T07:04:09+00:00"
+ "time": "2025-11-11T07:55:22+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "12.3.4",
+ "version": "12.4.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "7ad0e9bdc72b147600badccd694a2e57ffc9297a"
+ "reference": "67e8aed88f93d0e6e1cb7effe1a2dfc2fee6022c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7ad0e9bdc72b147600badccd694a2e57ffc9297a",
- "reference": "7ad0e9bdc72b147600badccd694a2e57ffc9297a",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/67e8aed88f93d0e6e1cb7effe1a2dfc2fee6022c",
+ "reference": "67e8aed88f93d0e6e1cb7effe1a2dfc2fee6022c",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^5.4.0",
+ "nikic/php-parser": "^5.6.1",
"php": ">=8.3",
"phpunit/php-file-iterator": "^6.0",
"phpunit/php-text-template": "^5.0",
"sebastian/complexity": "^5.0",
- "sebastian/environment": "^8.0",
+ "sebastian/environment": "^8.0.3",
"sebastian/lines-of-code": "^4.0",
"sebastian/version": "^6.0",
"theseer/tokenizer": "^1.2.3"
},
"require-dev": {
- "phpunit/phpunit": "^12.1"
+ "phpunit/phpunit": "^12.3.7"
},
"suggest": {
"ext-pcov": "PHP extension that provides line coverage",
@@ -10656,7 +10848,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "12.3.x-dev"
+ "dev-main": "12.4.x-dev"
}
},
"autoload": {
@@ -10685,7 +10877,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.3.4"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.4.0"
},
"funding": [
{
@@ -10705,7 +10897,7 @@
"type": "tidelift"
}
],
- "time": "2025-08-29T11:32:44+00:00"
+ "time": "2025-09-24T13:44:41+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -10954,16 +11146,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "12.3.7",
+ "version": "12.4.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "b8fa997c49682979ad6bfaa0d7fb25f54954965e"
+ "reference": "fc5413a2e6d240d2f6d9317bdf7f0a24e73de194"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b8fa997c49682979ad6bfaa0d7fb25f54954965e",
- "reference": "b8fa997c49682979ad6bfaa0d7fb25f54954965e",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fc5413a2e6d240d2f6d9317bdf7f0a24e73de194",
+ "reference": "fc5413a2e6d240d2f6d9317bdf7f0a24e73de194",
"shasum": ""
},
"require": {
@@ -10977,17 +11169,17 @@
"phar-io/manifest": "^2.0.4",
"phar-io/version": "^3.2.1",
"php": ">=8.3",
- "phpunit/php-code-coverage": "^12.3.3",
+ "phpunit/php-code-coverage": "^12.4.0",
"phpunit/php-file-iterator": "^6.0.0",
"phpunit/php-invoker": "^6.0.0",
"phpunit/php-text-template": "^5.0.0",
"phpunit/php-timer": "^8.0.0",
- "sebastian/cli-parser": "^4.0.0",
+ "sebastian/cli-parser": "^4.2.0",
"sebastian/comparator": "^7.1.3",
"sebastian/diff": "^7.0.0",
"sebastian/environment": "^8.0.3",
- "sebastian/exporter": "^7.0.0",
- "sebastian/global-state": "^8.0.0",
+ "sebastian/exporter": "^7.0.2",
+ "sebastian/global-state": "^8.0.2",
"sebastian/object-enumerator": "^7.0.0",
"sebastian/type": "^6.0.3",
"sebastian/version": "^6.0.0",
@@ -10999,7 +11191,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "12.3-dev"
+ "dev-main": "12.4-dev"
}
},
"autoload": {
@@ -11031,7 +11223,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/12.3.7"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/12.4.1"
},
"funding": [
{
@@ -11055,20 +11247,20 @@
"type": "tidelift"
}
],
- "time": "2025-08-28T05:15:46+00:00"
+ "time": "2025-10-09T14:08:29+00:00"
},
{
"name": "sebastian/cli-parser",
- "version": "4.0.0",
+ "version": "4.2.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "6d584c727d9114bcdc14c86711cd1cad51778e7c"
+ "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/6d584c727d9114bcdc14c86711cd1cad51778e7c",
- "reference": "6d584c727d9114bcdc14c86711cd1cad51778e7c",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/90f41072d220e5c40df6e8635f5dafba2d9d4d04",
+ "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04",
"shasum": ""
},
"require": {
@@ -11080,7 +11272,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "4.0-dev"
+ "dev-main": "4.2-dev"
}
},
"autoload": {
@@ -11104,15 +11296,27 @@
"support": {
"issues": "https://github.com/sebastianbergmann/cli-parser/issues",
"security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.0.0"
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.0"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/cli-parser",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T04:53:50+00:00"
+ "time": "2025-09-14T09:36:45+00:00"
},
{
"name": "sebastian/comparator",
@@ -11409,16 +11613,16 @@
},
{
"name": "sebastian/exporter",
- "version": "7.0.0",
+ "version": "7.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "76432aafc58d50691a00d86d0632f1217a47b688"
+ "reference": "016951ae10980765e4e7aee491eb288c64e505b7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/76432aafc58d50691a00d86d0632f1217a47b688",
- "reference": "76432aafc58d50691a00d86d0632f1217a47b688",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/016951ae10980765e4e7aee491eb288c64e505b7",
+ "reference": "016951ae10980765e4e7aee491eb288c64e505b7",
"shasum": ""
},
"require": {
@@ -11475,15 +11679,27 @@
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
"security": "https://github.com/sebastianbergmann/exporter/security/policy",
- "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.0"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.2"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T04:56:42+00:00"
+ "time": "2025-09-24T06:16:11+00:00"
},
{
"name": "sebastian/global-state",
@@ -12090,6 +12306,64 @@
}
],
"time": "2024-03-03T12:36:25+00:00"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.12.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "9be6926d8b485f55b9229203f962b51ed377ba68"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68",
+ "reference": "9be6926d8b485f55b9229203f962b51ed377ba68",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-date": "*",
+ "ext-filter": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "suggest": {
+ "ext-intl": "",
+ "ext-simplexml": "",
+ "ext-spl": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "support": {
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.12.1"
+ },
+ "time": "2025-10-29T15:56:20+00:00"
}
],
"aliases": [],
diff --git a/packages/WebDevTools/Laravel/Presenters/Bootstrap4NavbarPresenter.php b/packages/WebDevTools/Laravel/Presenters/Bootstrap4NavbarPresenter.php
deleted file mode 100755
index 67546676..00000000
--- a/packages/WebDevTools/Laravel/Presenters/Bootstrap4NavbarPresenter.php
+++ /dev/null
@@ -1,156 +0,0 @@
-' . PHP_EOL;
- }
-
- /**
- * Get close tag wrapper.
- *
- * @return string
- */
- public function getCloseTagWrapper()
- {
- return PHP_EOL . '' . PHP_EOL;
- }
-
- /**
- * Get menu tag without dropdown wrapper.
- *
- * @param \Nwidart\Menus\MenuItem $item
- * @param string $itemClass
- *
- * @return string
- */
- public function getMenuWithoutDropdownWrapper($item, $itemClass = 'nav-item nav-link')
- {
- $class = $itemClass . ' ' . $this->getItemClasses($item) . $this->getActiveClass($item);
- return 'getAttributes() .
- '>' .
- trim($item->getIcon() . ' ' . $item->title) .
- ' ';
- }
-
- /**
- * Get divider tag wrapper.
- *
- * @return string
- */
- public function getDividerWrapper()
- {
- return '
';
- }
-
- /**
- * Get divider tag wrapper.
- *
- * @param \Nwidart\Menus\MenuItem $item
- *
- * @return mixed
- */
- public function getHeaderWrapper($item)
- {
- return '';
- }
-
- /**
- * Get menu tag with dropdown wrapper.
- *
- * @param \Nwidart\Menus\MenuItem $item
- *
- * @return string
- */
- public function getMenuWithDropDownWrapper($item)
- {
- $class = 'nav-link dropdown-toggle ' . $this->getItemClasses($item);
- return '';
- }
-
- /**
- * Get child menu items.
- *
- * @param \Nwidart\Menus\MenuItem $item
- *
- * @return string
- */
- public function getChildMenuItems(MenuItem $item)
- {
- $results = '';
- foreach ($item->getChilds() as $child) {
- if ($child->hidden()) {
- continue;
- }
-
- if ($child->isHeader()) {
- $results .= $this->getHeaderWrapper($child);
- } elseif ($child->isDivider()) {
- $results .= $this->getDividerWrapper();
- } else {
- $results .= $this->getMenuWithoutDropdownWrapper($child, 'dropdown-item');
- }
- }
-
- return $results;
- }
-
- /**
- * Determine whether the include the active class for the nav item.
- *
- * @param \Nwidart\Menus\MenuItem $item
- *
- * @return string
- */
- protected function getActiveClass(MenuItem $item)
- {
- return $item->isActive() || $item->hasActiveOnChild() ? ' active' : '';
- }
-
- /**
- * Get the item classes (and remove them from the item's attributes).
- *
- * @param \Nwidart\Menus\MenuItem $item
- *
- * @return string
- */
- protected function getItemClasses(MenuItem $item)
- {
- if (isset($item->attributes['class'])) {
- $class = $item->attributes['class'];
- unset($item->attributes['class']);
- } else {
- $class = '';
- }
-
- return $class;
- }
-}
diff --git a/packages/WebDevTools/Laravel/Presenters/Bootstrap4NavbarRightPresenter.php b/packages/WebDevTools/Laravel/Presenters/Bootstrap4NavbarRightPresenter.php
deleted file mode 100755
index d2b284bc..00000000
--- a/packages/WebDevTools/Laravel/Presenters/Bootstrap4NavbarRightPresenter.php
+++ /dev/null
@@ -1,16 +0,0 @@
-' . PHP_EOL;
- }
-}
diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
new file mode 100644
index 00000000..462364cc
--- /dev/null
+++ b/phpstan-baseline.neon
@@ -0,0 +1,7651 @@
+parameters:
+ ignoreErrors:
+ -
+ message: '#^Method App\\Auth\\UserProvider\:\:checkUserStatus\(\) has parameter \$user with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Auth/UserProvider.php
+
+ -
+ message: '#^Method App\\Auth\\UserProvider\:\:retrieveByCredentials\(\) has parameter \$credentials with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Auth/UserProvider.php
+
+ -
+ message: '#^Parameter \#2 \$title of static method Package\\Notifications\\NotificationHandler\:\:error\(\) expects null, string given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Auth/UserProvider.php
+
+ -
+ message: '#^Property App\\Console\\Kernel\:\:\$commands type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Console/Kernel.php
+
+ -
+ message: '#^Method App\\Exceptions\\Handler\:\:render\(\) should return Illuminate\\Http\\Response but returns Symfony\\Component\\HttpFoundation\\Response\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Exceptions/Handler.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Exceptions\\Handler\:\:\$dontReport is not covariant with PHPDoc type array\\> of overridden property Illuminate\\Foundation\\Exceptions\\Handler\:\:\$dontReport\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Exceptions/Handler.php
+
+ -
+ message: '#^Property App\\Exceptions\\Handler\:\:\$dontReport type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Exceptions/Handler.php
+
+ -
+ message: '#^Invalid array key type float\.$#'
+ identifier: offsetAccess.invalidOffset
+ count: 2
+ path: app/Helpers/File.php
+
+ -
+ message: '#^Method App\\Helpers\\MonologLogFmtFormatter\:\:convertToString\(\) has parameter \$data with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Helpers/MonologLogFmtFormatter.php
+
+ -
+ message: '#^Method App\\Helpers\\MonologLogFmtFormatter\:\:isValidIdent\(\) has parameter \$val with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Helpers/MonologLogFmtFormatter.php
+
+ -
+ message: '#^Method App\\Helpers\\MonologLogFmtFormatter\:\:stringifyVal\(\) has parameter \$val with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Helpers/MonologLogFmtFormatter.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Auth/LoginController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Auth\\LoginController\:\:logout\(\) should return Illuminate\\Http\\Response but returns Illuminate\\Http\\JsonResponse\|Illuminate\\Http\\RedirectResponse\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Auth/LoginController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Auth/ResetPasswordController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Auth\\ResetPasswordController\:\:sendResetResponse\(\) should return Illuminate\\Http\\RedirectResponse but returns Illuminate\\Http\\JsonResponse\|Illuminate\\Http\\RedirectResponse\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Auth/ResetPasswordController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Awards\\Award\|Illuminate\\Database\\Eloquent\\Collection\\:\:delete\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Awards/AwardController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Awards\\Award\|Illuminate\\Database\\Eloquent\\Collection\\:\:update\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Http/Controllers/Awards/AwardController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 6
+ path: app/Http/Controllers/Awards/AwardController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\AwardController\:\:approve\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/AwardController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\AwardController\:\:destroy\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/AwardController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\AwardController\:\:update\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/AwardController.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$award_id\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Awards/NominationController.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$id\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Awards/NominationController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Awards\\Season\|Illuminate\\Database\\Eloquent\\Collection\\:\:nominations\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Http/Controllers/Awards/NominationController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 4
+ path: app/Http/Controllers/Awards/NominationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\NominationController\:\:approve\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/NominationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\NominationController\:\:approve\(\) has parameter \$seasonId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/NominationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\NominationController\:\:approve\(\) should return Illuminate\\Http\\RedirectResponse but returns Illuminate\\Http\\JsonResponse\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Awards/NominationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\NominationController\:\:destroy\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/NominationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\NominationController\:\:destroy\(\) has parameter \$seasonId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/NominationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\NominationController\:\:destroy\(\) should return Illuminate\\Http\\RedirectResponse but returns Illuminate\\Http\\JsonResponse\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Awards/NominationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\NominationController\:\:getNomination\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/NominationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\NominationController\:\:getNomination\(\) has parameter \$seasonId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/NominationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\NominationController\:\:index\(\) has parameter \$seasonId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/NominationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\NominationController\:\:store\(\) has parameter \$seasonId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/NominationController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Awards\\Season\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$status\.$#'
+ identifier: property.notFound
+ count: 3
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Awards\\Award\|Illuminate\\Database\\Eloquent\\Collection\\:\:userHasVoted\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Awards\\Season\|Illuminate\\Database\\Eloquent\\Collection\\:\:delete\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Awards\\Season\|Illuminate\\Database\\Eloquent\\Collection\\:\:nominations\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Awards\\Season\|Illuminate\\Database\\Eloquent\\Collection\\:\:update\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Collection\\|Illuminate\\Database\\Eloquent\\Model\:\:votes\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 11
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Cannot call method isAdmin\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\SeasonController\:\:destroy\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\SeasonController\:\:update\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\SeasonController\:\:updateStatus\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\SeasonController\:\:updateStatus\(\) with return type void returns Illuminate\\Http\\JsonResponse but should not return anything\.$#'
+ identifier: return.void
+ count: 2
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\SeasonController\:\:view\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\SeasonController\:\:view\(\) should return \$this\(App\\Http\\Controllers\\Awards\\SeasonController\) but returns Illuminate\\Http\\RedirectResponse\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\SeasonController\:\:view\(\) should return \$this\(App\\Http\\Controllers\\Awards\\SeasonController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Awards\\SeasonController\:\:vote\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Awards/SeasonController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 3
+ path: app/Http/Controllers/BackupController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\BackupController\:\:ajaxError\(\) has parameter \$errorCode with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/BackupController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\BackupController\:\:ajaxError\(\) has parameter \$errorText with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/BackupController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\BackupController\:\:ajaxResponse\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Controllers/BackupController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\BackupController\:\:ajaxResponse\(\) has parameter \$headers with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Controllers/BackupController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\BackupController\:\:ajaxResponse\(\) has parameter \$text with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/BackupController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\BackupController\:\:download\(\) has parameter \$filename with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/BackupController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Committee\\Role\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$id\.$#'
+ identifier: property.notFound
+ count: 2
+ path: app/Http/Controllers/CommitteeController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Committee\\Role\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$name\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/CommitteeController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Committee\\Role\|Illuminate\\Database\\Eloquent\\Collection\\:\:delete\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/CommitteeController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Committee\\Role\|Illuminate\\Database\\Eloquent\\Collection\\:\:update\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/CommitteeController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 3
+ path: app/Http/Controllers/CommitteeController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\CommitteeController\:\:destroy\(\) should return Illuminate\\Http\\Response but returns Illuminate\\Http\\JsonResponse\.$#'
+ identifier: return.type
+ count: 2
+ path: app/Http/Controllers/CommitteeController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\CommitteeController\:\:store\(\) should return Illuminate\\Http\\Response but returns Illuminate\\Http\\JsonResponse\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/CommitteeController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\CommitteeController\:\:update\(\) should return Illuminate\\Http\\Response but returns Illuminate\\Http\\JsonResponse\.$#'
+ identifier: return.type
+ count: 2
+ path: app/Http/Controllers/CommitteeController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\CommitteeController\:\:view\(\) has invalid return type App\\Http\\Controllers\\Response\.$#'
+ identifier: class.notFound
+ count: 1
+ path: app/Http/Controllers/CommitteeController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\CommitteeController\:\:view\(\) should return App\\Http\\Controllers\\Response but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/CommitteeController.php
+
+ -
+ message: '#^Cannot access property \$email on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Contact/NearMissController.php
+
+ -
+ message: '#^Cannot access property \$name on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Contact/NearMissController.php
+
+ -
+ message: '#^Cannot call method getName\(\) on Illuminate\\Routing\\Route\|null\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: app/Http/Controllers/Controller.php
+
+ -
+ message: '#^Cannot call method parameters\(\) on Illuminate\\Routing\\Route\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Controller.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Controller\:\:ajaxError\(\) has parameter \$errorCode with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Controller.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Controller\:\:ajaxError\(\) has parameter \$errorText with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Controller.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Controller\:\:ajaxResponse\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Controllers/Controller.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Controller\:\:ajaxResponse\(\) has parameter \$headers with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Controllers/Controller.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Controller\:\:ajaxResponse\(\) has parameter \$text with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Controller.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Controller\:\:authorizeGate\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Http/Controllers/Controller.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Controller\:\:authorizeGate\(\) has parameter \$action with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Controller.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Controller\:\:checkPage\(\) has parameter \$paginator with generic class Illuminate\\Pagination\\LengthAwarePaginator but does not specify its types\: TKey, TValue$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Http/Controllers/Controller.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Elections\\Election\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$id\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Elections\\Election\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$nominations\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Elections\\Election\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$positions\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$id\.$#'
+ identifier: property.notFound
+ count: 2
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Elections\\Election\|Illuminate\\Database\\Eloquent\\Collection\\:\:canModifyResults\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Elections\\Election\|Illuminate\\Database\\Eloquent\\Collection\\:\:delete\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Elections\\Election\|Illuminate\\Database\\Eloquent\\Collection\\:\:getManifestoPath\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Elections\\Election\|Illuminate\\Database\\Eloquent\\Collection\\:\:update\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 4
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Elections\\ElectionController\:\:create\(\) should return \$this\(App\\Http\\Controllers\\Elections\\ElectionController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Elections\\ElectionController\:\:destroy\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Elections\\ElectionController\:\:determineElectionPositions\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Elections\\ElectionController\:\:edit\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Elections\\ElectionController\:\:edit\(\) should return Illuminate\\Http\\Response but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Elections\\ElectionController\:\:elect\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Elections\\ElectionController\:\:index\(\) should return \$this\(App\\Http\\Controllers\\Elections\\ElectionController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Elections\\ElectionController\:\:update\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Elections\\ElectionController\:\:view\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Elections\\ElectionController\:\:view\(\) should return \$this\(App\\Http\\Controllers\\Elections\\ElectionController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Elections/ElectionController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Elections\\Election\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$id\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Elections\\Election\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$positions\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$id\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Elections\\Election\|Illuminate\\Database\\Eloquent\\Collection\\:\:canModifyNominations\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Elections\\Election\|Illuminate\\Database\\Eloquent\\Collection\\:\:getManifestoPath\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Elections\\Election\|Illuminate\\Database\\Eloquent\\Collection\\:\:nominations\(\)\.$#'
+ identifier: method.notFound
+ count: 3
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Model\:\:getManifestoName\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Model\:\:getManifestoPath\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 4
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Cannot call method getManifestoPath\(\) on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Elections\\NominationController\:\:destroy\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Elections\\NominationController\:\:destroy\(\) has parameter \$nominationId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Elections\\NominationController\:\:manifesto\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Elections\\NominationController\:\:manifesto\(\) has parameter \$nominationId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Elections\\NominationController\:\:store\(\) has parameter \$electionId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Parameter \#1 \$content of function response expects array\|Illuminate\\Contracts\\View\\View\|string\|null, string\|false given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Elections/NominationController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Equipment\\Breakage\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$id\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$extension\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$id\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$mime\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Equipment\\Breakage\|Illuminate\\Database\\Eloquent\\Collection\\:\:images\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Equipment\\Breakage\|Illuminate\\Database\\Eloquent\\Collection\\:\:update\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Model\:\:getImagePath\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Cannot access property \$email on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 5
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Cannot access property \$name on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Cannot access property \$username on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Equipment\\RepairsController\:\:index\(\) should return \$this\(App\\Http\\Controllers\\Equipment\\RepairsController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Equipment\\RepairsController\:\:streamImage\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Equipment\\RepairsController\:\:streamImage\(\) has parameter \$imageId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Equipment\\RepairsController\:\:update\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Equipment\\RepairsController\:\:updateBreakageStatus\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Equipment\\RepairsController\:\:view\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Parameter \#1 \$breakage of method App\\Http\\Controllers\\Equipment\\RepairsController\:\:updateBreakageStatus\(\) expects App\\Models\\Equipment\\Breakage, App\\Models\\Equipment\\Breakage\|Illuminate\\Database\\Eloquent\\Collection\ given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Parameter \#1 \$content of function response expects array\|Illuminate\\Contracts\\View\\View\|string\|null, string\|false given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Equipment/RepairsController.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$id\.$#'
+ identifier: property.notFound
+ count: 2
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\\:\:crew\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Model\:\:isGuest\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Cannot access property \$forename on App\\Models\\Users\\User\|Illuminate\\Database\\Eloquent\\Collection\\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 13
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Cannot access property \$id on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Cannot call method isCrew\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Cannot call method isTracked\(\) on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Cannot call method notify\(\) on App\\Models\\Users\\User\|Illuminate\\Database\\Eloquent\\Collection\\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Cannot call method notify\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Cannot call method notify\(\) on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\CrewController\:\:destroy\(\) has parameter \$crewId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\CrewController\:\:destroy\(\) has parameter \$eventId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\CrewController\:\:store\(\) has parameter \$eventId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\CrewController\:\:toggleVolunteer\(\) has parameter \$eventId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\CrewController\:\:update\(\) has parameter \$crewId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\CrewController\:\:update\(\) has parameter \$eventId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\CrewController\:\:update\(\) should return Illuminate\\Http\\JsonResponse but return statement is missing\.$#'
+ identifier: return.missing
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Parameter \#1 \$crew of class App\\Notifications\\Events\\UserHasVolunteered constructor expects App\\Models\\Events\\Crew, Illuminate\\Database\\Eloquent\\Model given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Parameter \#1 \$event of method App\\Http\\Controllers\\Events\\CrewController\:\:isGuestAction\(\) expects App\\Models\\Events\\Event, App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\ given\.$#'
+ identifier: argument.type
+ count: 2
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Parameter \#1 \$event of method App\\Http\\Controllers\\Events\\CrewController\:\:storeGuest\(\) expects App\\Models\\Events\\Event, App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\ given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Parameter \#1 \$event of method App\\Http\\Controllers\\Events\\CrewController\:\:storeMember\(\) expects App\\Models\\Events\\Event, App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\ given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Parameter \#1 \$event of method App\\Http\\Controllers\\Events\\CrewController\:\:unvolunteer\(\) expects App\\Models\\Events\\Event, App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\ given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Parameter \#1 \$event of method App\\Http\\Controllers\\Events\\CrewController\:\:volunteer\(\) expects App\\Models\\Events\\Event, App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\ given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Parameter \#2 \$crew of method App\\Http\\Controllers\\Events\\CrewController\:\:updateField\(\) expects App\\Models\\Events\\Crew, Illuminate\\Database\\Eloquent\\Model given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Parameter \#2 \$crew of method App\\Http\\Controllers\\Events\\CrewController\:\:updateGuest\(\) expects App\\Models\\Events\\Crew, Illuminate\\Database\\Eloquent\\Model given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Parameter \#2 \$crew of method App\\Http\\Controllers\\Events\\CrewController\:\:updateMember\(\) expects App\\Models\\Events\\Crew, Illuminate\\Database\\Eloquent\\Model given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Events/CrewController.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$end\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Events/DiaryController.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$name\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Events/DiaryController.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$start\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Events/DiaryController.php
+
+ -
+ message: '#^Cannot access property \$dayOfWeek on Carbon\\Carbon\|null\.$#'
+ identifier: property.nonObject
+ count: 2
+ path: app/Http/Controllers/Events/DiaryController.php
+
+ -
+ message: '#^Cannot access property \$month on Carbon\\Carbon\|null\.$#'
+ identifier: property.nonObject
+ count: 2
+ path: app/Http/Controllers/Events/DiaryController.php
+
+ -
+ message: '#^Cannot access property \$year on Carbon\\Carbon\|null\.$#'
+ identifier: property.nonObject
+ count: 2
+ path: app/Http/Controllers/Events/DiaryController.php
+
+ -
+ message: '#^Left side of && is always false\.$#'
+ identifier: booleanAnd.leftAlwaysFalse
+ count: 1
+ path: app/Http/Controllers/Events/DiaryController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\DiaryController\:\:view\(\) should return \$this\(App\\Http\\Controllers\\Events\\DiaryController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Events/DiaryController.php
+
+ -
+ message: '#^Parameter \#2 \$data of function hash expects string, string\|null given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Events/DiaryController.php
+
+ -
+ message: '#^Right side of && is always false\.$#'
+ identifier: booleanAnd.rightAlwaysFalse
+ count: 1
+ path: app/Http/Controllers/Events/DiaryController.php
+
+ -
+ message: '#^Variable \$user might not be defined\.$#'
+ identifier: variable.undefined
+ count: 1
+ path: app/Http/Controllers/Events/DiaryController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\\:\:emails\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Events/EmailController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Events/EmailController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\EmailController\:\:store\(\) has parameter \$eventId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/EmailController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$em\.$#'
+ identifier: property.notFound
+ count: 2
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$type\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\\:\:delete\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\\:\:hasEM\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Collection\\:\:isEvent\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:core\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:general\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:guest\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Call to function is_null\(\) with null will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 2
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Cannot access property \$email on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 8
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Cannot access property \$name on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Cannot call method can\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Cannot call method isAdmin\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Cannot call method isMember\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Cannot call method setTime\(\) on Carbon\\Carbon\|null\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\EventController\:\:destroy\(\) has parameter \$eventId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\EventController\:\:index\(\) should return \$this\(App\\Http\\Controllers\\Events\\EventController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\EventController\:\:sendFinanceEmail\(\) has parameter \$eventId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\EventController\:\:update\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\EventController\:\:update\(\) has parameter \$eventId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\EventController\:\:updateClearCrew\(\) has parameter \$mode with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\EventController\:\:updateDetails\(\) never returns \$this\(App\\Http\\Controllers\\Events\\EventController\) so it can be removed from the return type\.$#'
+ identifier: return.unusedType
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\EventController\:\:updatePaperwork\(\) has parameter \$paperwork with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\EventController\:\:updatePaperwork\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\EventController\:\:view\(\) has parameter \$eventId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\EventController\:\:view\(\) should return \$this\(App\\Http\\Controllers\\Events\\EventController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^PHPDoc tag @return has invalid value \(\)\: Unexpected token "\\n \* ", expected type at offset 136 on line 7$#'
+ identifier: phpDoc.parseError
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Parameter \#1 \$event of method App\\Http\\Controllers\\Events\\EventController\:\:updateClearCrew\(\) expects App\\Models\\Events\\Event, App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\ given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Parameter \#1 \$event of method App\\Http\\Controllers\\Events\\EventController\:\:updateDetails\(\) expects App\\Models\\Events\\Event, App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\ given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Parameter \#1 \$event of method App\\Http\\Controllers\\Events\\EventController\:\:updatePaperwork\(\) expects App\\Models\\Events\\Event, App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\ given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Parameter \#1 \$hour of method Carbon\\Traits\\Date\:\:setTime\(\) expects int, string given\.$#'
+ identifier: argument.type
+ count: 2
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Parameter \#1 \$paginator of method App\\Http\\Controllers\\Controller\:\:checkPage\(\) expects Illuminate\\Pagination\\LengthAwarePaginator, Illuminate\\Database\\Eloquent\\Builder\ given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Parameter \#2 \$event of class App\\Mail\\Events\\FinanceEmail constructor expects App\\Models\\Events\\Event, App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\ given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Parameter \#2 \$minute of method Carbon\\Traits\\Date\:\:setTime\(\) expects int, string given\.$#'
+ identifier: argument.type
+ count: 2
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Undefined variable\: \$event$#'
+ identifier: variable.undefined
+ count: 1
+ path: app/Http/Controllers/Events/EventController.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$id\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Events/TimeController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Events\\Event\|Illuminate\\Database\\Eloquent\\Collection\\|Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:create\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Events/TimeController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 4
+ path: app/Http/Controllers/Events/TimeController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\TimeController\:\:destroy\(\) has parameter \$eventId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/TimeController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\TimeController\:\:destroy\(\) has parameter \$timeId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/TimeController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\TimeController\:\:store\(\) has parameter \$eventId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/TimeController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\TimeController\:\:update\(\) has parameter \$eventId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/TimeController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Events\\TimeController\:\:update\(\) has parameter \$timeId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Events/TimeController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Media\\ImageController\:\:album\(\) should return Illuminate\\Http\\Response but returns Illuminate\\Http\\RedirectResponse\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Media/ImageController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Media\\ImageController\:\:index\(\) should return Illuminate\\Http\\Response but returns Illuminate\\Http\\RedirectResponse\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Media/ImageController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Media\\ImageController\:\:view\(\) should return Illuminate\\Http\\Response but returns Illuminate\\Http\\RedirectResponse\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Media/ImageController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Media\\VideoController\:\:index\(\) should return \$this\(App\\Http\\Controllers\\Media\\VideoController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Media/VideoController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Media\\VideoController\:\:show\(\) has parameter \$videoId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Media/VideoController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Media\\VideoController\:\:show\(\) should return \$this\(App\\Http\\Controllers\\Media\\VideoController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Media/VideoController.php
+
+ -
+ message: '#^Negated boolean expression is always false\.$#'
+ identifier: booleanNot.alwaysFalse
+ count: 1
+ path: app/Http/Controllers/Media/VideoController.php
+
+ -
+ message: '#^Cannot access property \$diary_preferences on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 2
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Cannot access property \$email on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Cannot access property \$export_token on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 2
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Cannot call method hasExportToken\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Cannot call method isMember\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Cannot call method save\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Cannot call method setAvatar\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Cannot call method update\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 3
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\MemberController\:\:dash\(\) should return Illuminate\\Http\\RedirectResponse but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\MemberController\:\:membership\(\) should return \$this\(App\\Http\\Controllers\\Members\\MemberController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\MemberController\:\:profile\(\) should return \$this\(App\\Http\\Controllers\\Members\\MemberController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\MemberController\:\:removeAvatar\(\) should return Illuminate\\Http\\JsonResponse but return statement is missing\.$#'
+ identifier: return.missing
+ count: 1
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\MemberController\:\:updateMemberFields\(\) has parameter \$fields with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\MemberController\:\:view\(\) has parameter \$username with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\MemberController\:\:view\(\) should return \$this\(App\\Http\\Controllers\\Members\\MemberController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Parameter \#1 \$user of method App\\Http\\Controllers\\Members\\MemberController\:\:removeAvatar\(\) expects App\\Models\\Users\\User, App\\Models\\Users\\User\|null given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Members/MemberController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Users\\User\|Illuminate\\Database\\Eloquent\\Collection\\:\:archive\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Users\\User\|Illuminate\\Database\\Eloquent\\Collection\\:\:makeAssociate\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Users\\User\|Illuminate\\Database\\Eloquent\\Collection\\:\:makeCommittee\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Cannot access property \$username on array\|float\|int\|string\|false\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Loose comparison using \=\= between int\<1, max\> and 0 will always evaluate to false\.$#'
+ identifier: equal.alwaysFalse
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:archiveUser\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:archiveUser\(\) has parameter \$userId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:createSummary\(\) should return \$this\(App\\Http\\Controllers\\Members\\UsersController\)\|Illuminate\\Http\\RedirectResponse but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:edit\(\) has parameter \$username with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:edit\(\) should return \$this\(App\\Http\\Controllers\\Members\\UsersController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:index\(\) should return \$this\(App\\Http\\Controllers\\Members\\UsersController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:store\(\) should return Illuminate\\Http\\RedirectResponse but returns \$this\(App\\Http\\Controllers\\Members\\UsersController\)\|Illuminate\\Http\\RedirectResponse\.$#'
+ identifier: return.type
+ count: 2
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:storeBulk\(\) never returns \$this\(App\\Http\\Controllers\\Members\\UsersController\) so it can be removed from the return type\.$#'
+ identifier: return.unusedType
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:storeSingle\(\) never returns \$this\(App\\Http\\Controllers\\Members\\UsersController\) so it can be removed from the return type\.$#'
+ identifier: return.unusedType
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:storeValidationMessages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:update\(\) has parameter \$username with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:update\(\) should return Illuminate\\Http\\RedirectResponse but returns \$this\(App\\Http\\Controllers\\Members\\UsersController\)\|Illuminate\\Http\\RedirectResponse\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:updateAvatar\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:updateBulk\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:updateDetails\(\) never returns \$this\(App\\Http\\Controllers\\Members\\UsersController\) so it can be removed from the return type\.$#'
+ identifier: return.unusedType
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:updateRemoveAvatar\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:updateResetPassword\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:updateStatus\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Members\\UsersController\:\:view\(\) has parameter \$username with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Property App\\Http\\Controllers\\Members\\UsersController\:\:\$BulkActionMap type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Property App\\Http\\Controllers\\Members\\UsersController\:\:\$BulkActions type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Controllers/Members/UsersController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Resources\\Category\|Illuminate\\Database\\Eloquent\\Collection\\:\:delete\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Resources/CategoryController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Resources\\Category\|Illuminate\\Database\\Eloquent\\Collection\\:\:update\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Resources/CategoryController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 3
+ path: app/Http/Controllers/Resources/CategoryController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\CategoryController\:\:createSlug\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Http/Controllers/Resources/CategoryController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\CategoryController\:\:destroy\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/CategoryController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\CategoryController\:\:index\(\) should return \$this\(App\\Http\\Controllers\\Resources\\CategoryController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Resources/CategoryController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\CategoryController\:\:update\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/CategoryController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Resources\\Resource\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$id\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Resources\\Resource\|Illuminate\\Database\\Eloquent\\Collection\\:\:canAccess\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Resources\\Resource\|Illuminate\\Database\\Eloquent\\Collection\\:\:delete\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Resources\\Resource\|Illuminate\\Database\\Eloquent\\Collection\\:\:getFullPath\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Resources\\Resource\|Illuminate\\Database\\Eloquent\\Collection\\:\:isFile\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Resources\\Resource\|Illuminate\\Database\\Eloquent\\Collection\\:\:isIssuable\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Resources\\Resource\|Illuminate\\Database\\Eloquent\\Collection\\:\:reissue\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Resources\\Resource\|Illuminate\\Database\\Eloquent\\Collection\\:\:tags\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Resources\\Resource\|Illuminate\\Database\\Eloquent\\Collection\\:\:update\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 4
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Cannot call method getName\(\) on Illuminate\\Routing\\Route\|null\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Cannot call method parameters\(\) on Illuminate\\Routing\\Route\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Deprecated in PHP 8\.4\: Parameter \#1 \$customQuery \(array\) is implicitly nullable via default value null\.$#'
+ identifier: parameter.implicitlyNullable
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:destroy\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:download\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:edit\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:edit\(\) should return \$this\(App\\Http\\Controllers\\Resources\\ResourceController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:getResourceWithAccessCheck\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:getResourceWithAccessCheck\(\) should return App\\Models\\Resources\\Resource but returns App\\Models\\Resources\\Resource\|Illuminate\\Database\\Eloquent\\Collection\\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:history\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:history\(\) should return Illuminate\\View\\View but returns Illuminate\\Http\\RedirectResponse\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:index\(\) should return \$this\(App\\Http\\Controllers\\Resources\\ResourceController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:issue\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:issueForm\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:issueForm\(\) should return Illuminate\\View\\View but returns Illuminate\\Http\\RedirectResponse\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:paginatorPath\(\) has parameter \$customQuery with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:stream\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:update\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\ResourceController\:\:view\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/ResourceController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\SearchController\:\:parseSearchRequest\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Controllers/Resources/SearchController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\SearchController\:\:viewResults\(\) has parameter \$category with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/SearchController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\SearchController\:\:viewResults\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/SearchController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\SearchController\:\:viewResults\(\) has parameter \$tags with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Controllers/Resources/SearchController.php
+
+ -
+ message: '#^Offset 1 might not exist on array\{0\: string, 1\?\: non\-empty\-string\}\.$#'
+ identifier: offsetAccess.notFound
+ count: 2
+ path: app/Http/Controllers/Resources/SearchController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Resources\\Tag\|Illuminate\\Database\\Eloquent\\Collection\\:\:delete\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Resources/TagController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Resources\\Tag\|Illuminate\\Database\\Eloquent\\Collection\\:\:update\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Resources/TagController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 3
+ path: app/Http/Controllers/Resources/TagController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\TagController\:\:createSlug\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Http/Controllers/Resources/TagController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\TagController\:\:destroy\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/TagController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\TagController\:\:index\(\) should return \$this\(App\\Http\\Controllers\\Resources\\TagController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Resources/TagController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Resources\\TagController\:\:update\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Resources/TagController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Training\\Category\|Illuminate\\Database\\Eloquent\\Collection\\:\:delete\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Training/CategoryController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Training\\Category\|Illuminate\\Database\\Eloquent\\Collection\\:\:update\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Training/CategoryController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Training\\CategoryController\:\:destroy\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Training/CategoryController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Training\\CategoryController\:\:update\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Training/CategoryController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Training\\Skills\\Application\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$id\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Training\\Skills\\Application\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$skill\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Training\\Skills\\Application\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$skill_id\.$#'
+ identifier: property.notFound
+ count: 2
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Training\\Skills\\Application\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$user\.$#'
+ identifier: property.notFound
+ count: 3
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Training\\Skills\\Application\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$user_id\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Training\\Skills\\Application\|Illuminate\\Database\\Eloquent\\Collection\\:\:isAwarded\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Training\\Skills\\Application\|Illuminate\\Database\\Eloquent\\Collection\\:\:update\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Cannot access property \$email on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Training\\Skills\\Skill\|Illuminate\\Database\\Eloquent\\Collection\\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 3
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Cannot access property \$name on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Cannot call method getName\(\) on Illuminate\\Routing\\Route\|null\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Cannot call method getSkillLevel\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Cannot call method hasApplicationPending\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Cannot call method isLevelAvailable\(\) on App\\Models\\Training\\Skills\\Skill\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Cannot call method isLevelAvailable\(\) on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Cannot call method parameters\(\) on Illuminate\\Routing\\Route\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Cannot call method setSkillLevel\(\) on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Comparison operation "\<\=" between 1 and null is always false\.$#'
+ identifier: smallerOrEqual.alwaysFalse
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Deprecated in PHP 8\.4\: Parameter \#1 \$skill \(App\\Models\\Training\\Skills\\Skill\) is implicitly nullable via default value null\.$#'
+ identifier: parameter.implicitlyNullable
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Training\\Skills\\ApplicationController\:\:checkPage\(\) has parameter \$paginator with generic class Illuminate\\Pagination\\LengthAwarePaginator but does not specify its types\: TKey, TValue$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Training\\Skills\\ApplicationController\:\:determineSelectableApplicationSkillLevels\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Training\\Skills\\ApplicationController\:\:update\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Training\\Skills\\ApplicationController\:\:view\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Parameter \#1 \$application of class App\\Mail\\Training\\Skills\\ApplicationProcessed constructor expects App\\Models\\Training\\Skills\\Application, App\\Models\\Training\\Skills\\Application\|Illuminate\\Database\\Eloquent\\Collection\ given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Parameter \#1 \$skill of class App\\Mail\\Training\\Skills\\ApplicationSubmitted constructor expects App\\Models\\Training\\Skills\\Skill, App\\Models\\Training\\Skills\\Skill\|Illuminate\\Database\\Eloquent\\Collection\\|null given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Parameter \#2 \$user of method App\\Http\\Controllers\\Training\\Skills\\ApplicationController\:\:determineSelectableApplicationSkillLevels\(\) expects App\\Models\\Users\\User, App\\Models\\Users\\User\|null given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Parameter \#3 \$user of class App\\Mail\\Training\\Skills\\ApplicationSubmitted constructor expects App\\Models\\Users\\User, App\\Models\\Users\\User\|null given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Result of && is always false\.$#'
+ identifier: booleanAnd.alwaysFalse
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Result of method App\\Models\\Users\\User\:\:hasSkill\(\) \(void\) is used\.$#'
+ identifier: method.void
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Right side of && is always false\.$#'
+ identifier: booleanAnd.rightAlwaysFalse
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Strict comparison using \=\=\= between null and 3 will always evaluate to false\.$#'
+ identifier: identical.alwaysFalse
+ count: 1
+ path: app/Http/Controllers/Training/Skills/ApplicationController.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Training\\Skills\\Skill\|Illuminate\\Database\\Eloquent\\Collection\\:\:\$id\.$#'
+ identifier: property.notFound
+ count: 5
+ path: app/Http/Controllers/Training/Skills/AwardedController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|Illuminate\\Database\\Eloquent\\Collection\\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Controllers/Training/Skills/AwardedController.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 4
+ path: app/Http/Controllers/Training/Skills/AwardedController.php
+
+ -
+ message: '#^Cannot call method getSkillLevel\(\) on App\\Models\\Users\\User\|Illuminate\\Database\\Eloquent\\Collection\\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Training/Skills/AwardedController.php
+
+ -
+ message: '#^Cannot call method setSkillLevel\(\) on App\\Models\\Users\\User\|Illuminate\\Database\\Eloquent\\Collection\\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Controllers/Training/Skills/AwardedController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Training\\Skills\\AwardedController\:\:awardForm\(\) should return \$this\(App\\Http\\Controllers\\Training\\Skills\\AwardedController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Training/Skills/AwardedController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Training\\Skills\\AwardedController\:\:revokeForm\(\) should return \$this\(App\\Http\\Controllers\\Training\\Skills\\AwardedController\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Training/Skills/AwardedController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Training\\Skills\\Skill\|Illuminate\\Database\\Eloquent\\Collection\\:\:delete\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Training/Skills/SkillController.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Training\\Skills\\Skill\|Illuminate\\Database\\Eloquent\\Collection\\:\:update\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Http/Controllers/Training/Skills/SkillController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Training\\Skills\\SkillController\:\:destroy\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Training/Skills/SkillController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Training\\Skills\\SkillController\:\:destroy\(\) should return Illuminate\\Http\\RedirectResponse but returns Illuminate\\Http\\JsonResponse\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Controllers/Training/Skills/SkillController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Training\\Skills\\SkillController\:\:edit\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Training/Skills/SkillController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Training\\Skills\\SkillController\:\:update\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Training/Skills/SkillController.php
+
+ -
+ message: '#^Method App\\Http\\Controllers\\Training\\Skills\\SkillController\:\:view\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Http/Controllers/Training/Skills/SkillController.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Http\\Kernel\:\:\$middleware is not covariant with PHPDoc type array\ of overridden property Illuminate\\Foundation\\Http\\Kernel\:\:\$middleware\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Http/Kernel.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Http\\Kernel\:\:\$middlewareGroups is not covariant with PHPDoc type array\\> of overridden property Illuminate\\Foundation\\Http\\Kernel\:\:\$middlewareGroups\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Http/Kernel.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Http\\Kernel\:\:\$routeMiddleware is not covariant with PHPDoc type array\ of overridden property Illuminate\\Foundation\\Http\\Kernel\:\:\$routeMiddleware\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Http/Kernel.php
+
+ -
+ message: '#^Property App\\Http\\Kernel\:\:\$middleware type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Kernel.php
+
+ -
+ message: '#^Property App\\Http\\Kernel\:\:\$middlewareGroups type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Kernel.php
+
+ -
+ message: '#^Property App\\Http\\Kernel\:\:\$routeMiddleware type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Kernel.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Http\\Middleware\\EncryptCookies\:\:\$except is not covariant with PHPDoc type array\ of overridden property Illuminate\\Cookie\\Middleware\\EncryptCookies\:\:\$except\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Http/Middleware/EncryptCookies.php
+
+ -
+ message: '#^Property App\\Http\\Middleware\\EncryptCookies\:\:\$except type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Middleware/EncryptCookies.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Http\\Middleware\\TrimStrings\:\:\$except is not covariant with PHPDoc type array\ of overridden property Illuminate\\Foundation\\Http\\Middleware\\TrimStrings\:\:\$except\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Http/Middleware/TrimStrings.php
+
+ -
+ message: '#^Property App\\Http\\Middleware\\TrimStrings\:\:\$except type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Middleware/TrimStrings.php
+
+ -
+ message: '#^PHPDoc type array\|string of property App\\Http\\Middleware\\TrustedProxies\:\:\$proxies is not covariant with PHPDoc type array\\|string\|null of overridden property Illuminate\\Http\\Middleware\\TrustProxies\:\:\$proxies\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Http/Middleware/TrustedProxies.php
+
+ -
+ message: '#^Property App\\Http\\Middleware\\TrustedProxies\:\:\$proxies type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Middleware/TrustedProxies.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Http\\Middleware\\VerifyCsrfToken\:\:\$except is not covariant with PHPDoc type array\ of overridden property Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken\:\:\$except\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Http/Middleware/VerifyCsrfToken.php
+
+ -
+ message: '#^Property App\\Http\\Middleware\\VerifyCsrfToken\:\:\$except type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Middleware/VerifyCsrfToken.php
+
+ -
+ message: '#^Cannot call method can\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Requests/Awards/Nominate.php
+
+ -
+ message: '#^Cannot call method parameter\(\) on Illuminate\\Routing\\Route\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Requests/Awards/Nominate.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Awards\\Nominate\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Awards/Nominate.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Awards\\Nominate\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Awards/Nominate.php
+
+ -
+ message: '#^Cannot call method isAdmin\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Requests/CommitteeRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\CommitteeRequest\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/CommitteeRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\CommitteeRequest\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/CommitteeRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Contact\\AccidentRequest\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Contact/AccidentRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Contact\\AccidentRequest\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Contact/AccidentRequest.php
+
+ -
+ message: '#^Property App\\Http\\Requests\\Contact\\AccidentRequest\:\:\$PersonTypes type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Contact/AccidentRequest.php
+
+ -
+ message: '#^Property App\\Http\\Requests\\Contact\\AccidentRequest\:\:\$Severities type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Contact/AccidentRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Contact\\BookRequest\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Contact/BookRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Contact\\BookRequest\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Contact/BookRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Contact\\EnquiryRequest\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Contact/EnquiryRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Contact\\EnquiryRequest\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Contact/EnquiryRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Contact\\FeedbackRequest\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Contact/FeedbackRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Contact\\FeedbackRequest\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Contact/FeedbackRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Contact\\NearMissRequest\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Contact/NearMissRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Contact\\NearMissRequest\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Contact/NearMissRequest.php
+
+ -
+ message: '#^Cannot call method can\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: app/Http/Requests/ElectionRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\ElectionRequest\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/ElectionRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\ElectionRequest\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/ElectionRequest.php
+
+ -
+ message: '#^Cannot call method isMember\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Requests/Equipment/RepairRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Equipment\\RepairRequest\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Equipment/RepairRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Equipment\\RepairRequest\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Equipment/RepairRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Events\\EmailRequest\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Events/EmailRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Events\\EmailRequest\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Events/EmailRequest.php
+
+ -
+ message: '#^Cannot call method isAdmin\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Requests/Events/EventRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Events\\EventRequest\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Events/EventRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Events\\EventRequest\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Events/EventRequest.php
+
+ -
+ message: '#^Property App\\Http\\Requests\\Events\\EventRequest\:\:\$fields type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Events/EventRequest.php
+
+ -
+ message: '#^Cannot call method can\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Requests/QuoteRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\QuoteRequest\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/QuoteRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\QuoteRequest\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/QuoteRequest.php
+
+ -
+ message: '#^Parameter \#1 \$value of method Carbon\\Carbon\:\:subMinutes\(\) expects float\|int, string\|null given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Http/Requests/QuoteRequest.php
+
+ -
+ message: '#^Cannot call method getName\(\) on object\|string\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Requests/Request.php
+
+ -
+ message: '#^Cannot call method can\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: app/Http/Requests/Resources/ResourceRequest.php
+
+ -
+ message: '#^Cannot call method getName\(\) on Illuminate\\Routing\\Route\|null\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: app/Http/Requests/Resources/ResourceRequest.php
+
+ -
+ message: '#^Cannot call method parameter\(\) on Illuminate\\Routing\\Route\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Requests/Resources/ResourceRequest.php
+
+ -
+ message: '#^Constant App\\Http\\Requests\\Resources\\ResourceRequest\:\:FILE_MESSAGES type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Resources/ResourceRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Resources\\ResourceRequest\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Resources/ResourceRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Resources\\ResourceRequest\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Resources/ResourceRequest.php
+
+ -
+ message: '#^Cannot call method canAwardSkill\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Requests/Training/Skills/AwardSkill.php
+
+ -
+ message: '#^Cannot call method isLevelAvailable\(\) on App\\Models\\Training\\Skills\\Skill\|Illuminate\\Database\\Eloquent\\Collection\\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Requests/Training/Skills/AwardSkill.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Training\\Skills\\AwardSkill\:\:getValidatorInstance\(\) should return Illuminate\\Validation\\Validator but returns Illuminate\\Contracts\\Validation\\Validator\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Requests/Training/Skills/AwardSkill.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Training\\Skills\\AwardSkill\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Training/Skills/AwardSkill.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Training\\Skills\\AwardSkill\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Training/Skills/AwardSkill.php
+
+ -
+ message: '#^Cannot call method can\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: app/Http/Requests/Training/Skills/SkillRequest.php
+
+ -
+ message: '#^Cannot call method getName\(\) on Illuminate\\Routing\\Route\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Requests/Training/Skills/SkillRequest.php
+
+ -
+ message: '#^Cannot call method parameter\(\) on Illuminate\\Routing\\Route\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Requests/Training/Skills/SkillRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Training\\Skills\\SkillRequest\:\:getValidatorInstance\(\) should return \$this\(App\\Http\\Requests\\Training\\Skills\\SkillRequest\) but returns Illuminate\\Contracts\\Validation\\Validator\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Requests/Training/Skills/SkillRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Training\\Skills\\SkillRequest\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Training/Skills/SkillRequest.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Training\\Skills\\SkillRequest\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Training/Skills/SkillRequest.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Training\\Skills\\Skill\|Illuminate\\Database\\Eloquent\\Collection\\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Requests/Training/Skills/SubmitApplication.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Http/Requests/Training/Skills/SubmitApplication.php
+
+ -
+ message: '#^Cannot call method can\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Requests/Training/Skills/SubmitApplication.php
+
+ -
+ message: '#^Cannot call method getSkillLevel\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Requests/Training/Skills/SubmitApplication.php
+
+ -
+ message: '#^Cannot call method isLevelAvailable\(\) on App\\Models\\Training\\Skills\\Skill\|Illuminate\\Database\\Eloquent\\Collection\\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Http/Requests/Training/Skills/SubmitApplication.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Training\\Skills\\SubmitApplication\:\:getValidatorInstance\(\) should return Illuminate\\Validation\\Validator but returns Illuminate\\Contracts\\Validation\\Validator\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Http/Requests/Training/Skills/SubmitApplication.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Training\\Skills\\SubmitApplication\:\:messages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Training/Skills/SubmitApplication.php
+
+ -
+ message: '#^Method App\\Http\\Requests\\Training\\Skills\\SubmitApplication\:\:rules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Http/Requests/Training/Skills/SubmitApplication.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Logger.php
+
+ -
+ message: '#^Deprecated in PHP 8\.4\: Parameter \#4 \$user \(App\\Models\\Users\\User\) is implicitly nullable via default value null\.$#'
+ identifier: parameter.implicitlyNullable
+ count: 1
+ path: app/Logger.php
+
+ -
+ message: '#^Method App\\Mail\\Contact\\AccidentReport\:\:__construct\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Contact/AccidentReport.php
+
+ -
+ message: '#^Property App\\Mail\\Contact\\AccidentReport\:\:\$report type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Contact/AccidentReport.php
+
+ -
+ message: '#^Method App\\Mail\\Contact\\AccidentReportReceipt\:\:__construct\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Contact/AccidentReportReceipt.php
+
+ -
+ message: '#^Property App\\Mail\\Contact\\AccidentReportReceipt\:\:\$report type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Contact/AccidentReportReceipt.php
+
+ -
+ message: '#^Method App\\Mail\\Contact\\Booking\:\:__construct\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Contact/Booking.php
+
+ -
+ message: '#^Property App\\Mail\\Contact\\Booking\:\:\$booking type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Contact/Booking.php
+
+ -
+ message: '#^Method App\\Mail\\Contact\\BookingReceipt\:\:__construct\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Contact/BookingReceipt.php
+
+ -
+ message: '#^Property App\\Mail\\Contact\\BookingReceipt\:\:\$booking type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Contact/BookingReceipt.php
+
+ -
+ message: '#^Method App\\Mail\\Contact\\Enquiry\:\:__construct\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Contact/Enquiry.php
+
+ -
+ message: '#^Property App\\Mail\\Contact\\Enquiry\:\:\$enquiry type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Contact/Enquiry.php
+
+ -
+ message: '#^Method App\\Mail\\Contact\\EnquiryReceipt\:\:__construct\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Contact/EnquiryReceipt.php
+
+ -
+ message: '#^Property App\\Mail\\Contact\\EnquiryReceipt\:\:\$enquiry type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Contact/EnquiryReceipt.php
+
+ -
+ message: '#^Method App\\Mail\\Contact\\Feedback\:\:__construct\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Contact/Feedback.php
+
+ -
+ message: '#^Property App\\Mail\\Contact\\Feedback\:\:\$feedback type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Contact/Feedback.php
+
+ -
+ message: '#^Method App\\Mail\\Contact\\NearMissReport\:\:build\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Mail/Contact/NearMissReport.php
+
+ -
+ message: '#^Property App\\Mail\\Contact\\NearMissReport\:\:\$report type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Contact/NearMissReport.php
+
+ -
+ message: '#^Method App\\Mail\\Equipment\\Breakage\:\:__construct\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Equipment/Breakage.php
+
+ -
+ message: '#^Property App\\Mail\\Equipment\\Breakage\:\:\$breakage type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Equipment/Breakage.php
+
+ -
+ message: '#^Cannot access property \$name on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Mail/Events/AcceptedExternal.php
+
+ -
+ message: '#^Property App\\Mail\\Events\\AcceptedExternal\:\:\$data type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Events/AcceptedExternal.php
+
+ -
+ message: '#^Cannot access property \$name on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Mail/Events/CrewEmail.php
+
+ -
+ message: '#^Property App\\Mail\\Events\\CrewEmail\:\:\$data type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Events/CrewEmail.php
+
+ -
+ message: '#^Cannot access property \$forename on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Mail/Events/FinanceEmail.php
+
+ -
+ message: '#^Parameter \#1 \$view of method Illuminate\\Mail\\Mailable\:\:markdown\(\) expects view\-string, string given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Mail/Events/FinanceEmail.php
+
+ -
+ message: '#^Property App\\Mail\\Events\\FinanceEmail\:\:\$data type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Events/FinanceEmail.php
+
+ -
+ message: '#^Cannot access property \$email on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Mail/Training/Skills/ApplicationProcessed.php
+
+ -
+ message: '#^Cannot access property \$forename on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Mail/Training/Skills/ApplicationProcessed.php
+
+ -
+ message: '#^Cannot access property \$name on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 3
+ path: app/Mail/Training/Skills/ApplicationProcessed.php
+
+ -
+ message: '#^Property App\\Mail\\Training\\Skills\\ApplicationProcessed\:\:\$application type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Training/Skills/ApplicationProcessed.php
+
+ -
+ message: '#^Property App\\Mail\\Training\\Skills\\ApplicationSubmitted\:\:\$application type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Training/Skills/ApplicationSubmitted.php
+
+ -
+ message: '#^Method App\\Mail\\Users\\AccountCreated\:\:__construct\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Users/AccountCreated.php
+
+ -
+ message: '#^Parameter \#1 \$view of method Illuminate\\Mail\\Mailable\:\:markdown\(\) expects view\-string, string given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Mail/Users/AccountCreated.php
+
+ -
+ message: '#^Property App\\Mail\\Users\\AccountCreated\:\:\$user type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Mail/Users/AccountCreated.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:approved\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Call to function is_array\(\) with array\{mixed\} will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 2
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Award\:\:approvedSeasonNominations\(\) has parameter \$seasonId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Award\:\:getApprovedNominations\(\) has parameter \$seasonId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Award\:\:getValidationMessages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Award\:\:getValidationRules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Award\:\:hasApprovedNominations\(\) has parameter \$seasonId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Award\:\:nominations\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\HasMany does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Award\:\:scopeApproved\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Award\:\:scopeApproved\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Award\:\:scopeSuggested\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Award\:\:scopeSuggested\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Award\:\:suggestor\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Award\:\:votes\(\) should return \$this\(App\\Models\\Awards\\Award\) but returns Illuminate\\Database\\Eloquent\\Builder\\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Awards\\Award\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Parameter \#3 \$length of function substr expects int\|null, int\<0, max\>\|false given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Property App\\Models\\Awards\\Award\:\:\$ValidationMessages type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Property App\\Models\\Awards\\Award\:\:\$ValidationRules type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Property App\\Models\\Awards\\Award\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Static property App\\Models\\Awards\\Award\:\:\$ValidationMessages \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Static property App\\Models\\Awards\\Award\:\:\$ValidationRules \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Awards/Award.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:byUser\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Models/Awards/Nomination.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Nomination\:\:award\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Nomination.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Nomination\:\:scopeApproved\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Nomination.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Nomination\:\:scopeOrdered\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Nomination.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Nomination\:\:season\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Nomination.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Nomination\:\:suggestor\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Nomination.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Nomination\:\:votes\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\HasMany does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Nomination.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Awards\\Nomination\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Awards/Nomination.php
+
+ -
+ message: '#^Property App\\Models\\Awards\\Nomination\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Nomination.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$award_id\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$id\.$#'
+ identifier: property.notFound
+ count: 4
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Argument of an invalid type Illuminate\\Database\\Eloquent\\Collection\\|null supplied for foreach, only iterables are supported\.$#'
+ identifier: foreach.nonIterable
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Call to function is_array\(\) with array\{mixed\} will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 2
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Season\:\:attributesToCorrect\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Season\:\:awards\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsToMany does not specify its types\: TRelatedModel, TDeclaringModel, TPivotModel, TAccessor \(2\-4 required\)$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Season\:\:convertAttributeFromDatabase\(\) has parameter \$attributeName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Season\:\:getAwardsAttribute\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Season\:\:getValidationMessages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Season\:\:getValidationRules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Season\:\:newFromBuilder\(\) has parameter \$attributes with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Season\:\:nominations\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\HasMany does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Season\:\:shouldCorrectTimezone\(\) has parameter \$attributeName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Season\:\:traitValidationRules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Season\:\:uncorrected\(\) has parameter \$attributeName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Awards\\Season\:\:\$appends is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$appends\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Awards\\Season\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Parameter \#1 \$callback of function call_user_func_array expects callable\(\)\: mixed, ''self\:…'' given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Parameter \#1 \.\.\.\$arg1 of function max expects non\-empty\-array, array\ given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Parameter \#3 \$length of function substr expects int\|null, int\<0, max\>\|false given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Property ''awards'' does not exist in model\.$#'
+ identifier: rules.modelAppends
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Property App\\Models\\Awards\\Season\:\:\$ValidationMessages type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Property App\\Models\\Awards\\Season\:\:\$ValidationRules type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Property App\\Models\\Awards\\Season\:\:\$appends type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Property App\\Models\\Awards\\Season\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Static property App\\Models\\Awards\\Season\:\:\$ValidationMessages \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Static property App\\Models\\Awards\\Season\:\:\$ValidationRules \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Strict comparison using \!\=\= between null and null will always evaluate to false\.$#'
+ identifier: notIdentical.alwaysFalse
+ count: 2
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Unable to resolve the template type TGroupKey in call to method Illuminate\\Support\\Collection\\:\:groupBy\(\)$#'
+ identifier: argument.templateType
+ count: 1
+ path: app/Models/Awards/Season.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Vote\:\:nomination\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Vote.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Vote\:\:scopeByUser\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Vote.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Vote\:\:scopeForSeason\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Vote.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Vote\:\:season\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Vote.php
+
+ -
+ message: '#^Method App\\Models\\Awards\\Vote\:\:user\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Awards/Vote.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Awards\\Vote\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Awards/Vote.php
+
+ -
+ message: '#^Property App\\Models\\Awards\\Vote\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Awards/Vote.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Users\\User\|Illuminate\\Database\\Eloquent\\Collection\\:\:isCommittee\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Models/Committee/Role.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Users\\User\|Illuminate\\Database\\Eloquent\\Collection\\:\:makeCommittee\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Models/Committee/Role.php
+
+ -
+ message: '#^Call to an undefined method App\\Models\\Users\\User\|Illuminate\\Database\\Eloquent\\Collection\\:\:makeMember\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Models/Committee/Role.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Models/Committee/Role.php
+
+ -
+ message: '#^Method App\\Models\\Committee\\Role\:\:setOrderAttribute\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Committee/Role.php
+
+ -
+ message: '#^Method App\\Models\\Committee\\Role\:\:setOrderAttribute\(\) has parameter \$newOrder with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Committee/Role.php
+
+ -
+ message: '#^Method App\\Models\\Committee\\Role\:\:setUserIdAttribute\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Committee/Role.php
+
+ -
+ message: '#^Method App\\Models\\Committee\\Role\:\:setUserIdAttribute\(\) has parameter \$newUserId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Committee/Role.php
+
+ -
+ message: '#^Method App\\Models\\Committee\\Role\:\:user\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Committee/Role.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Committee\\Role\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Committee/Role.php
+
+ -
+ message: '#^Property App\\Models\\Committee\\Role\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Committee/Role.php
+
+ -
+ message: '#^Property App\\Models\\Committee\\Role\:\:\$order \(int\<0, max\>\) does not accept int\<\-1, max\>\.$#'
+ identifier: assign.propertyType
+ count: 1
+ path: app/Models/Committee/Role.php
+
+ -
+ message: '#^Access to an undefined property object\:\:\$original\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Call to an undefined method object\:\:asDateTime\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Call to an undefined method object\:\:getDateFormat\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Cannot call method can\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Cannot call method format\(\) on Carbon\\Carbon\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Election\:\:attributesToCorrect\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Election\:\:convertAttributeFromDatabase\(\) has parameter \$attributeName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Election\:\:getNominations\(\) has invalid return type App\\Collection\.$#'
+ identifier: class.notFound
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Election\:\:getNominations\(\) has parameter \$positionIndex with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Election\:\:getNominations\(\) should return App\\Collection but returns Illuminate\\Database\\Eloquent\\Collection\\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Election\:\:getPosition\(\) has parameter \$index with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Election\:\:getPositionSlug\(\) has parameter \$index with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Election\:\:getPositionSlug\(\) should return string but returns string\|null\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Election\:\:getPositionsAttribute\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Election\:\:newFromBuilder\(\) has parameter \$attributes with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Election\:\:nominations\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\HasMany does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Election\:\:setPositionsAttribute\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Election\:\:setPositionsAttribute\(\) has parameter \$positions with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Election\:\:shouldCorrectTimezone\(\) has parameter \$attributeName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Election\:\:uncorrected\(\) has parameter \$attributeName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Elections\\Election\:\:\$casts is not covariant with PHPDoc type array\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$casts\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Elections\\Election\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Property App\\Models\\Elections\\Election\:\:\$Types type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Property App\\Models\\Elections\\Election\:\:\$casts type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Property App\\Models\\Elections\\Election\:\:\$correct_tz \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Property App\\Models\\Elections\\Election\:\:\$correct_tz type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Property App\\Models\\Elections\\Election\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Right side of && is always true\.$#'
+ identifier: booleanAnd.rightAlwaysTrue
+ count: 1
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Strict comparison using \!\=\= between null and null will always evaluate to false\.$#'
+ identifier: notIdentical.alwaysFalse
+ count: 2
+ path: app/Models/Elections/Election.php
+
+ -
+ message: '#^Cannot call method getManifestoPath\(\) on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Models/Elections/Nomination.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Nomination\:\:election\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Elections/Nomination.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Nomination\:\:getManifestoName\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Elections/Nomination.php
+
+ -
+ message: '#^Method App\\Models\\Elections\\Nomination\:\:user\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Elections/Nomination.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Elections\\Nomination\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Elections/Nomination.php
+
+ -
+ message: '#^Property App\\Models\\Elections\\Nomination\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Elections/Nomination.php
+
+ -
+ message: '#^Method App\\Models\\Equipment\\Breakage\:\:images\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\HasMany does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Equipment/Breakage.php
+
+ -
+ message: '#^Method App\\Models\\Equipment\\Breakage\:\:saveImage\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Equipment/Breakage.php
+
+ -
+ message: '#^Method App\\Models\\Equipment\\Breakage\:\:saveImage\(\) has parameter \$image with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Equipment/Breakage.php
+
+ -
+ message: '#^Method App\\Models\\Equipment\\Breakage\:\:saveImage\(\) has parameter \$imageRow with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Equipment/Breakage.php
+
+ -
+ message: '#^Method App\\Models\\Equipment\\Breakage\:\:user\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Equipment/Breakage.php
+
+ -
+ message: '#^Property App\\Models\\Equipment\\Breakage\:\:\$Status type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Equipment/Breakage.php
+
+ -
+ message: '#^Method App\\Models\\Equipment\\BreakageImage\:\:report\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Equipment/BreakageImage.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Builder\:\:member\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Call to function is_array\(\) with array\{mixed\} will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 2
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Cannot access property \$name on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:alreadyJoined\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:event\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:getCoreAttribute\(\) should return bool but returns int\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:getValidationMessages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:getValidationRules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:scopeCore\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:scopeCore\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:scopeEm\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:scopeEm\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:scopeForUser\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:scopeForUser\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:scopeGeneral\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:scopeGeneral\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:scopeGuest\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:scopeGuest\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:scopeMember\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:scopeMember\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:scopeOrder\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:scopeOrder\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Crew\:\:user\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Events\\Crew\:\:\$appends is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$appends\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Events\\Crew\:\:\$casts is not covariant with PHPDoc type array\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$casts\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Events\\Crew\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Events\\Crew\:\:\$visible is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$visible\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Parameter \#3 \$length of function substr expects int\|null, int\<0, max\>\|false given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Crew\:\:\$ValidationMessages type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Crew\:\:\$ValidationRules type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Crew\:\:\$appends type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Crew\:\:\$casts type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Crew\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Crew\:\:\$visible type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Static property App\\Models\\Events\\Crew\:\:\$ValidationMessages \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Static property App\\Models\\Events\\Crew\:\:\$ValidationRules \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Events/Crew.php
+
+ -
+ message: '#^Access to an undefined property object\:\:\$original\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Call to an undefined method object\:\:asDateTime\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Call to an undefined method object\:\:getDateFormat\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Call to function is_array\(\) with array\{mixed\} will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 2
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Cannot access property \$id on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Cannot call method crew\(\) on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Cannot call method format\(\) on Carbon\\Carbon\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Email\:\:attributesToCorrect\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Email\:\:convertAttributeFromDatabase\(\) has parameter \$attributeName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Email\:\:event\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Email\:\:getValidationMessages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Email\:\:getValidationRules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Email\:\:newFromBuilder\(\) has parameter \$attributes with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Email\:\:sender\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Email\:\:shouldCorrectTimezone\(\) has parameter \$attributeName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Email\:\:uncorrected\(\) has parameter \$attributeName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Events\\Email\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Parameter \#3 \$length of function substr expects int\|null, int\<0, max\>\|false given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Email\:\:\$ValidationMessages type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Email\:\:\$ValidationRules type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Email\:\:\$correct_tz \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Email\:\:\$correct_tz type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Email\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Right side of && is always true\.$#'
+ identifier: booleanAnd.rightAlwaysTrue
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Static property App\\Models\\Events\\Email\:\:\$ValidationMessages \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Static property App\\Models\\Events\\Email\:\:\$ValidationRules \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Strict comparison using \!\=\= between null and null will always evaluate to false\.$#'
+ identifier: notIdentical.alwaysFalse
+ count: 2
+ path: app/Models/Events/Email.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$user\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Model\:\:isGuest\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:core\(\)\.$#'
+ identifier: method.notFound
+ count: 3
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:em\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:general\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:guest\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:member\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Call to function is_array\(\) with array\{mixed\} will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 2
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Call to function is_null\(\) with null will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Cannot access property \$email on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Cannot access property \$end on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Cannot access property \$name on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Cannot access property \$start on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Cannot call method format\(\) on Carbon\\Carbon\|null\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Deprecated in PHP 8\.4\: Parameter \#1 \$user \(App\\Models\\Users\\User\) is implicitly nullable via default value null\.$#'
+ identifier: parameter.implicitlyNullable
+ count: 3
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:addToFinanceDb\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:alreadyJoined\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:crew\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\HasMany does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:em\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:getCoreCrewAttribute\(\) return type with generic class Illuminate\\Database\\Eloquent\\Collection does not specify its types\: TKey, TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:getCrewAttribute\(\) return type with generic class Illuminate\\Database\\Eloquent\\Collection does not specify its types\: TKey, TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:getCrewMailingListAttribute\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:getGeneralCrewAttribute\(\) return type with generic class Illuminate\\Database\\Eloquent\\Collection does not specify its types\: TKey, TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:getGuestsAttribute\(\) return type with generic class Illuminate\\Database\\Eloquent\\Collection does not specify its types\: TKey, TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:getGuestsAttribute\(\) should return Illuminate\\Database\\Eloquent\\Collection but returns array\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:getPrettyProductionChargeAttribute\(\) should return string but returns null\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:getProductionChargeAttribute\(\) has parameter \$charge with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:getReportPrefillAttribute\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:getValidationMessages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:getValidationRules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:joinEventCrew\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:joinEventCrew\(\) return type with generic class Illuminate\\Database\\Eloquent\\Builder does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:joinEventTimes\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:joinEventTimes\(\) return type with generic class Illuminate\\Database\\Eloquent\\Builder does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopeDistinctPaginate\(\) has parameter \$columns with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopeDistinctPaginate\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopeDistinctPaginate\(\) return type with generic class Illuminate\\Pagination\\LengthAwarePaginator does not specify its types\: TKey, TValue$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopeFuture\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopeNewestFirst\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopeNewestFirst\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopeOldestFirst\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopeOldestFirst\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopeOnDate\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopeOnDate\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopePast\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopePast\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopeType\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopeType\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopeType\(\) has parameter \$type with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopeUserOnCrew\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:scopeUserOnCrew\(\) has parameter \$query with generic class Illuminate\\Database\\Eloquent\\Builder but does not specify its types\: TModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:setEmIdAttribute\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:setEmIdAttribute\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:setPaperwork\(\) has parameter \$key with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:setPaperwork\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:setProductionChargeAttribute\(\) has parameter \$charge with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:setProductionChargeAttribute\(\) should return null but return statement is missing\.$#'
+ identifier: return.missing
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:times\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\HasMany does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Event\:\:traitValidationRules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Events\\Event\:\:\$casts is not covariant with PHPDoc type array\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$casts\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Events\\Event\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Parameter \#1 \$callback of function call_user_func_array expects callable\(\)\: mixed, ''self\:…'' given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Parameter \#1 \$key of method App\\Models\\Events\\Event\:\:countCrew\(\) expects null, string given\.$#'
+ identifier: argument.type
+ count: 2
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Parameter \#2 \$value of method Illuminate\\Support\\Collection\<\(int\|string\),Illuminate\\Database\\Eloquent\\Model\>\:\:put\(\) expects Illuminate\\Database\\Eloquent\\Model, Illuminate\\Database\\Eloquent\\Collection given\.$#'
+ identifier: argument.type
+ count: 2
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Parameter \#3 \$length of function substr expects int\|null, int\<0, max\>\|false given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Parameter \#3 \$value of function curl_setopt expects bool, int given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Event\:\:\$Clients type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Event\:\:\$CrewListStatus type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Event\:\:\$Paperwork type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Event\:\:\$TypeClasses type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Event\:\:\$Types type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Event\:\:\$TypesShort type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Event\:\:\$ValidationMessages type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Event\:\:\$ValidationRules type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Event\:\:\$VenueTypes type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Event\:\:\$casts type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Event\:\:\$crewListCount type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Event\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Result of \|\| is always true\.$#'
+ identifier: booleanOr.alwaysTrue
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Static property App\\Models\\Events\\Event\:\:\$ValidationMessages \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Static property App\\Models\\Events\\Event\:\:\$ValidationRules \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Strict comparison using \=\=\= between null and null will always evaluate to true\.$#'
+ identifier: identical.alwaysTrue
+ count: 2
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Unreachable statement \- code above always terminates\.$#'
+ identifier: deadCode.unreachable
+ count: 1
+ path: app/Models/Events/Event.php
+
+ -
+ message: '#^Access to an undefined property object\:\:\$original\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Call to an undefined method object\:\:asDateTime\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Call to an undefined method object\:\:getDateFormat\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Call to function is_array\(\) with array\{mixed\} will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 2
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Cannot call method format\(\) on Carbon\\Carbon\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Time\:\:attributesToCorrect\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Time\:\:convertAttributeFromDatabase\(\) has parameter \$attributeName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Time\:\:event\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Time\:\:getValidationMessages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Time\:\:getValidationRules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Time\:\:newFromBuilder\(\) has parameter \$attributes with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Time\:\:shouldCorrectTimezone\(\) has parameter \$attributeName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Method App\\Models\\Events\\Time\:\:uncorrected\(\) has parameter \$attributeName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Events\\Time\:\:\$casts is not covariant with PHPDoc type array\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$casts\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Events\\Time\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Events\\Time\:\:\$visible is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$visible\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Parameter \#3 \$length of function substr expects int\|null, int\<0, max\>\|false given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Time\:\:\$ValidationMessages type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Time\:\:\$ValidationRules type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Time\:\:\$casts type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Time\:\:\$correct_tz \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Time\:\:\$correct_tz type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Time\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Property App\\Models\\Events\\Time\:\:\$visible type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Right side of && is always true\.$#'
+ identifier: booleanAnd.rightAlwaysTrue
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Static property App\\Models\\Events\\Time\:\:\$ValidationMessages \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Static property App\\Models\\Events\\Time\:\:\$ValidationRules \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Strict comparison using \!\=\= between null and null will always evaluate to false\.$#'
+ identifier: notIdentical.alwaysFalse
+ count: 2
+ path: app/Models/Events/Time.php
+
+ -
+ message: '#^Access to an undefined property object\:\:\$original\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Models/Log.php
+
+ -
+ message: '#^Call to an undefined method object\:\:asDateTime\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Models/Log.php
+
+ -
+ message: '#^Call to an undefined method object\:\:getDateFormat\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Models/Log.php
+
+ -
+ message: '#^Cannot call method format\(\) on Carbon\\Carbon\|null\.$#'
+ identifier: method.nonObject
+ count: 3
+ path: app/Models/Log.php
+
+ -
+ message: '#^Method App\\Models\\Log\:\:attributesToCorrect\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Log.php
+
+ -
+ message: '#^Method App\\Models\\Log\:\:convertAttributeFromDatabase\(\) has parameter \$attributeName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Log.php
+
+ -
+ message: '#^Method App\\Models\\Log\:\:newFromBuilder\(\) has parameter \$attributes with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Log.php
+
+ -
+ message: '#^Method App\\Models\\Log\:\:shouldCorrectTimezone\(\) has parameter \$attributeName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Log.php
+
+ -
+ message: '#^Method App\\Models\\Log\:\:uncorrected\(\) has parameter \$attributeName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Log.php
+
+ -
+ message: '#^Method App\\Models\\Log\:\:user\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Log.php
+
+ -
+ message: '#^Property App\\Models\\Log\:\:\$correct_tz has no type specified\.$#'
+ identifier: missingType.property
+ count: 1
+ path: app/Models/Log.php
+
+ -
+ message: '#^Strict comparison using \!\=\= between null and null will always evaluate to false\.$#'
+ identifier: notIdentical.alwaysFalse
+ count: 2
+ path: app/Models/Log.php
+
+ -
+ message: '#^Method App\\Models\\Media\\Video\:\:__get\(\) has parameter \$attribute with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Media/Video.php
+
+ -
+ message: '#^Method App\\Models\\Media\\Video\:\:find\(\) has parameter \$videoId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Media/Video.php
+
+ -
+ message: '#^Property App\\Models\\Media\\Video\:\:\$SupportedKind type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Media/Video.php
+
+ -
+ message: '#^Property App\\Models\\Media\\Video\:\:\$tags type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Media/Video.php
+
+ -
+ message: '#^Strict comparison using \=\=\= between stdClass and false will always evaluate to false\.$#'
+ identifier: identical.alwaysFalse
+ count: 1
+ path: app/Models/Media/Video.php
+
+ -
+ message: '#^Unsafe usage of new static\(\)\.$#'
+ identifier: new.static
+ count: 1
+ path: app/Models/Media/Video.php
+
+ -
+ message: '#^Method App\\Models\\Quote\:\:__construct\(\) has parameter \$attributes with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Quote.php
+
+ -
+ message: '#^Method App\\Models\\Quote\:\:creator\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Quote.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Quote\:\:\$casts is not covariant with PHPDoc type array\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$casts\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Quote.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Quote\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Quote.php
+
+ -
+ message: '#^Property App\\Models\\Quote\:\:\$casts type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Quote.php
+
+ -
+ message: '#^Property App\\Models\\Quote\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Quote.php
+
+ -
+ message: '#^Call to function is_array\(\) with array\{mixed\} will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 2
+ path: app/Models/Resources/Category.php
+
+ -
+ message: '#^Constant App\\Models\\Resources\\Category\:\:FLAGS type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Category.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Category\:\:getValidationMessages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Category.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Category\:\:getValidationRules\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Category.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Category\:\:resources\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\HasMany does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Resources/Category.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Category\:\:setFlagAttribute\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Resources/Category.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Category\:\:setFlagAttribute\(\) has parameter \$flag with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Resources/Category.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Category\:\:traitValidationRules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Category.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Resources\\Category\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Resources/Category.php
+
+ -
+ message: '#^Parameter \#3 \$length of function substr expects int\|null, int\<0, max\>\|false given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Resources/Category.php
+
+ -
+ message: '#^Property App\\Models\\Resources\\Category\:\:\$ValidationMessages type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Category.php
+
+ -
+ message: '#^Property App\\Models\\Resources\\Category\:\:\$ValidationRules type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Category.php
+
+ -
+ message: '#^Property App\\Models\\Resources\\Category\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Category.php
+
+ -
+ message: '#^Static property App\\Models\\Resources\\Category\:\:\$ValidationMessages \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Resources/Category.php
+
+ -
+ message: '#^Static property App\\Models\\Resources\\Category\:\:\$ValidationRules \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Resources/Category.php
+
+ -
+ message: '#^Cannot call method getPath\(\) on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Models/Resources/Issue.php
+
+ -
+ message: '#^Cannot call method isFile\(\) on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Models/Resources/Issue.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Issue\:\:author\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Resources/Issue.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Issue\:\:resource\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Resources/Issue.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Resources\\Issue\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Resources/Issue.php
+
+ -
+ message: '#^Property App\\Models\\Resources\\Issue\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Issue.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Resources\\Resource\:\:\$issue\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Resources\\Resource\:\:\$type\.$#'
+ identifier: property.notFound
+ count: 2
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Access to an undefined property object\:\:\$slug\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Cannot access property \$flag on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 4
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Cannot access property \$name on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Constant App\\Models\\Resources\\Resource\:\:ACCESS type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Constant App\\Models\\Resources\\Resource\:\:TYPES type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Deprecated in PHP 8\.4\: Parameter \#1 \$user \(App\\Models\\Users\\User\) is implicitly nullable via default value null\.$#'
+ identifier: parameter.implicitlyNullable
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Deprecated in PHP 8\.4\: Parameter \#2 \$user \(App\\Models\\Users\\User\) is implicitly nullable via default value null\.$#'
+ identifier: parameter.implicitlyNullable
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:category\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:download\(\) should return Illuminate\\Http\\Response but return statement is missing\.$#'
+ identifier: return.missing
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:download\(\) should return Illuminate\\Http\\Response but returns Symfony\\Component\\HttpFoundation\\BinaryFileResponse\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:download\(\) should return Illuminate\\Http\\Response but returns string\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:event\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:getAuthorAttribute\(\) should return App\\Models\\Users\\User but returns Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:getHeaders\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:issue\(\) should return App\\Models\\Resources\\Issue but returns App\\Models\\Resources\\Issue\|null\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:sanitised\(\) should return string but returns string\|null\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:scopeAccessible\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:scopeInCategory\(\) has parameter \$category with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:scopeInCategory\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:scopeSearch\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:scopeSearch\(\) has parameter \$searchTerm with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:scopeWithTags\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:scopeWithTags\(\) has parameter \$tags with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:stream\(\) should return Illuminate\\Http\\Response but returns string\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Resource\:\:tags\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsToMany does not specify its types\: TRelatedModel, TDeclaringModel, TPivotModel, TAccessor \(2\-4 required\)$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Resources\\Resource\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Parameter \#1 \$content of function response expects array\|Illuminate\\Contracts\\View\\View\|string\|null, string\|false given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Parameter \#3 \$subject of function preg_replace expects array\\|string, array\\|string\|null given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Property App\\Models\\Resources\\Resource\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Strict comparison using \=\=\= between null and null will always evaluate to true\.$#'
+ identifier: identical.alwaysTrue
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Ternary operator condition is always true\.$#'
+ identifier: ternary.alwaysTrue
+ count: 1
+ path: app/Models/Resources/Resource.php
+
+ -
+ message: '#^Call to function is_array\(\) with array\{mixed\} will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 2
+ path: app/Models/Resources/Tag.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Tag\:\:getValidationMessages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Tag.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Tag\:\:getValidationRules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Tag.php
+
+ -
+ message: '#^Method App\\Models\\Resources\\Tag\:\:resources\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsToMany does not specify its types\: TRelatedModel, TDeclaringModel, TPivotModel, TAccessor \(2\-4 required\)$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Resources/Tag.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Resources\\Tag\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Resources/Tag.php
+
+ -
+ message: '#^Parameter \#3 \$length of function substr expects int\|null, int\<0, max\>\|false given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Resources/Tag.php
+
+ -
+ message: '#^Property App\\Models\\Resources\\Tag\:\:\$ValidationMessages type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Tag.php
+
+ -
+ message: '#^Property App\\Models\\Resources\\Tag\:\:\$ValidationRules type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Tag.php
+
+ -
+ message: '#^Property App\\Models\\Resources\\Tag\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Resources/Tag.php
+
+ -
+ message: '#^Static property App\\Models\\Resources\\Tag\:\:\$ValidationMessages \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Resources/Tag.php
+
+ -
+ message: '#^Static property App\\Models\\Resources\\Tag\:\:\$ValidationRules \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Resources/Tag.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Category\:\:skills\(\) should return \$this\(App\\Models\\Training\\Category\) but returns Illuminate\\Database\\Eloquent\\Relations\\HasMany\\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Models/Training/Category.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Training\\Category\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Training/Category.php
+
+ -
+ message: '#^Property App\\Models\\Training\\Category\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Training/Category.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Skills\\Application\:\:awarder\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Training/Skills/Application.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Skills\\Application\:\:scopeAwarded\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Training/Skills/Application.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Skills\\Application\:\:scopeAwarded\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Training/Skills/Application.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Skills\\Application\:\:scopeNotAwarded\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Training/Skills/Application.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Skills\\Application\:\:scopeNotAwarded\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Training/Skills/Application.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Skills\\Application\:\:skill\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Training/Skills/Application.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Skills\\Application\:\:user\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Training/Skills/Application.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Training\\Skills\\Application\:\:\$casts is not covariant with PHPDoc type array\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$casts\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Training/Skills/Application.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Training\\Skills\\Application\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Training/Skills/Application.php
+
+ -
+ message: '#^Property App\\Models\\Training\\Skills\\Application\:\:\$casts type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Training/Skills/Application.php
+
+ -
+ message: '#^Property App\\Models\\Training\\Skills\\Application\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Training/Skills/Application.php
+
+ -
+ message: '#^Cannot access property \$category on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Models/Training/Skills/AwardedSkill.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Skills\\AwardedSkill\:\:awarder\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Training/Skills/AwardedSkill.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Skills\\AwardedSkill\:\:skill\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Training/Skills/AwardedSkill.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Skills\\AwardedSkill\:\:user\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Training/Skills/AwardedSkill.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Training\\Skills\\AwardedSkill\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Training/Skills/AwardedSkill.php
+
+ -
+ message: '#^Property App\\Models\\Training\\Skills\\AwardedSkill\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Training/Skills/AwardedSkill.php
+
+ -
+ message: '#^Access to an undefined property App\\Models\\Users\\User\:\:\$level\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^Call to function is_array\(\) with array\{mixed\} will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 2
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^Cannot access property \$name on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^Constant App\\Models\\Training\\Skills\\Skill\:\:LEVEL_NAMES type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Skills\\Skill\:\:category\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Skills\\Skill\:\:getAvailableAttribute\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Skills\\Skill\:\:getValidationMessages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Skills\\Skill\:\:getValidationRules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^Method App\\Models\\Training\\Skills\\Skill\:\:isLevelAvailable\(\) has parameter \$level with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Training\\Skills\\Skill\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^Parameter \#3 \$length of function substr expects int\|null, int\<0, max\>\|false given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^Property App\\Models\\Training\\Skills\\Skill\:\:\$ValidationMessages type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^Property App\\Models\\Training\\Skills\\Skill\:\:\$ValidationRules type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^Property App\\Models\\Training\\Skills\\Skill\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^Static property App\\Models\\Training\\Skills\\Skill\:\:\$ValidationMessages \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^Static property App\\Models\\Training\\Skills\\Skill\:\:\$ValidationRules \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Training/Skills/Skill.php
+
+ -
+ message: '#^Method App\\Models\\Users\\Group\:\:users\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\HasMany does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Users/Group.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Users\\Group\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Users/Group.php
+
+ -
+ message: '#^Property App\\Models\\Users\\Group\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Users/Group.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Builder\\:\:lists\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:core\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:forUser\(\)\.$#'
+ identifier: method.notFound
+ count: 2
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany\:\:general\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Call to function is_array\(\) with array\{mixed\} will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 2
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\Group\|null\.$#'
+ identifier: property.nonObject
+ count: 2
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 3
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Cannot access property \$name on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 9
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Cannot call method update\(\) on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Deprecated in PHP 8\.4\: Parameter \#1 \$category \(App\\Models\\Training\\Category\) is implicitly nullable via default value null\.$#'
+ identifier: parameter.implicitlyNullable
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Deprecated in PHP 8\.4\: Parameter \#1 \$skill \(App\\Models\\Training\\Skills\\Skill\) is implicitly nullable via default value null\.$#'
+ identifier: parameter.implicitlyNullable
+ count: 2
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Loose comparison using \=\= between null and 3 will always evaluate to false\.$#'
+ identifier: equal.alwaysFalse
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:create\(\) has parameter \$attributes with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:events\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\HasMany does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:getDiaryPreference\(\) has parameter \$preference with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:getToolColoursParsedAttribute\(\) should return string but returns string\|null\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:getTypeAttribute\(\) should return int but returns int\<0, max\>\|null\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:getValidationMessages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:getValidationRules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:group\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\BelongsTo does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:hasSkill\(\) with return type void returns bool but should not return anything\.$#'
+ identifier: return.void
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:isDiaryPreference\(\) has parameter \$preference with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:isDiaryPreference\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:pages\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\HasMany does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeActive\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeActive\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeArchived\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeArchived\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeCrewingEvent\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeCrewingEvent\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeDistinctPaginate\(\) has parameter \$columns with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeDistinctPaginate\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeDistinctPaginate\(\) return type with generic class Illuminate\\Pagination\\LengthAwarePaginator does not specify its types\: TKey, TValue$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeGetSelect\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeGetSelect\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeInGroup\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeInGroup\(\) has parameter \$groupName with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeInGroup\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeMember\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeMember\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeNameOrder\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeNameOrder\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeNotCrewingEvent\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeNotCrewingEvent\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeSearch\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeSearch\(\) has parameter \$query with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:scopeSearch\(\) has parameter \$term with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:setNameAttribute\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:setSkillLevel\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:setSkillLevel\(\) has parameter \$level with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:setSkillLevel\(\) has parameter \$skillId with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:setTypeAttribute\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Models\\Users\\User\:\:skills\(\) return type with generic class Illuminate\\Database\\Eloquent\\Relations\\HasMany does not specify its types\: TRelatedModel, TDeclaringModel$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Negated boolean expression is always true\.$#'
+ identifier: booleanNot.alwaysTrue
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Offset 0\|1\|2\|3\|4\|5 might not exist on array\{''red'', ''orange'', ''yellow'', ''green'', ''blue'', ''purple''\}\|array\{0\: ''black''\|''blue''\|''brown''\|''earth''\|''green''\|''grey''\|''orange''\|''pink''\|''purple''\|''rainbow''\|''red''\|''turquoise''\|''white''\|''yellow'', 1\?\: ''green''\}\.$#'
+ identifier: offsetAccess.notFound
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Users\\User\:\:\$casts is not covariant with PHPDoc type array\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$casts\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Users\\User\:\:\$fillable is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$fillable\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Models\\Users\\User\:\:\$hidden is not covariant with PHPDoc type list\ of overridden property Illuminate\\Database\\Eloquent\\Model\:\:\$hidden\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Parameter \#1 \$related of method Illuminate\\Database\\Eloquent\\Model\:\:hasMany\(\) expects class\-string\, string given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Parameter \#1 \$string of function strtolower expects string, string\|null given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Parameter \#1 \$string of function trim expects string, string\|null given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Parameter \#2 \$data of function hash expects string, string\|null given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Parameter \#2 \$subject of function preg_match_all expects string, string\|null given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Parameter \#3 \$length of function substr expects int\|null, int\<0, max\>\|false given\.$#'
+ identifier: argument.type
+ count: 2
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Property App\\Models\\Users\\User\:\:\$AccountTypes type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Property App\\Models\\Users\\User\:\:\$ValidationMessages type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Property App\\Models\\Users\\User\:\:\$ValidationRules type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Property App\\Models\\Users\\User\:\:\$casts type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Property App\\Models\\Users\\User\:\:\$fillable type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Property App\\Models\\Users\\User\:\:\$hidden type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Result of && is always false\.$#'
+ identifier: booleanAnd.alwaysFalse
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Result of method App\\Models\\Users\\User\:\:hasSkill\(\) \(void\) is used\.$#'
+ identifier: method.void
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Static property App\\Models\\Users\\User\:\:\$ValidationMessages \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Static property App\\Models\\Users\\User\:\:\$ValidationRules \(array\) in isset\(\) is not nullable\.$#'
+ identifier: isset.property
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Unable to resolve the template type TRelatedModel in call to method Illuminate\\Database\\Eloquent\\Model\:\:hasMany\(\)$#'
+ identifier: argument.templateType
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Unreachable statement \- code above always terminates\.$#'
+ identifier: deadCode.unreachable
+ count: 1
+ path: app/Models/Users/User.php
+
+ -
+ message: '#^Method App\\Notifications\\Auth\\ResetPassword\:\:__construct\(\) has parameter \$token with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Notifications/Auth/ResetPassword.php
+
+ -
+ message: '#^Method App\\Notifications\\Auth\\ResetPassword\:\:toArray\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Notifications/Auth/ResetPassword.php
+
+ -
+ message: '#^Method App\\Notifications\\Auth\\ResetPassword\:\:via\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Notifications/Auth/ResetPassword.php
+
+ -
+ message: '#^Cannot access property \$email on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Notifications/Events/HasBeenVolunteered.php
+
+ -
+ message: '#^Cannot access property \$forename on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Notifications/Events/HasBeenVolunteered.php
+
+ -
+ message: '#^Cannot access property \$name on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Notifications/Events/HasBeenVolunteered.php
+
+ -
+ message: '#^Method App\\Notifications\\Events\\HasBeenVolunteered\:\:toArray\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Notifications/Events/HasBeenVolunteered.php
+
+ -
+ message: '#^Method App\\Notifications\\Events\\HasBeenVolunteered\:\:via\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Notifications/Events/HasBeenVolunteered.php
+
+ -
+ message: '#^Property App\\Notifications\\Events\\HasBeenVolunteered\:\:\$event type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Notifications/Events/HasBeenVolunteered.php
+
+ -
+ message: '#^Cannot access property \$email on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Notifications/Events/UserHasVolunteered.php
+
+ -
+ message: '#^Cannot access property \$forename on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Notifications/Events/UserHasVolunteered.php
+
+ -
+ message: '#^Cannot access property \$id on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Notifications/Events/UserHasVolunteered.php
+
+ -
+ message: '#^Cannot access property \$name on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 2
+ path: app/Notifications/Events/UserHasVolunteered.php
+
+ -
+ message: '#^Method App\\Notifications\\Events\\UserHasVolunteered\:\:toArray\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Notifications/Events/UserHasVolunteered.php
+
+ -
+ message: '#^Method App\\Notifications\\Events\\UserHasVolunteered\:\:via\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Notifications/Events/UserHasVolunteered.php
+
+ -
+ message: '#^Property App\\Notifications\\Events\\UserHasVolunteered\:\:\$event type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Notifications/Events/UserHasVolunteered.php
+
+ -
+ message: '#^Cannot access property \$email on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Notifications/Events/VolunteeredToCrew.php
+
+ -
+ message: '#^Cannot access property \$forename on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Notifications/Events/VolunteeredToCrew.php
+
+ -
+ message: '#^Cannot access property \$name on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Notifications/Events/VolunteeredToCrew.php
+
+ -
+ message: '#^Method App\\Notifications\\Events\\VolunteeredToCrew\:\:toArray\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Notifications/Events/VolunteeredToCrew.php
+
+ -
+ message: '#^Method App\\Notifications\\Events\\VolunteeredToCrew\:\:via\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Notifications/Events/VolunteeredToCrew.php
+
+ -
+ message: '#^Property App\\Notifications\\Events\\VolunteeredToCrew\:\:\$event type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Notifications/Events/VolunteeredToCrew.php
+
+ -
+ message: '#^Method App\\Notifications\\Users\\ResetPasswordAdmin\:\:__construct\(\) has parameter \$password with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Notifications/Users/ResetPasswordAdmin.php
+
+ -
+ message: '#^Method App\\Notifications\\Users\\ResetPasswordAdmin\:\:toArray\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Notifications/Users/ResetPasswordAdmin.php
+
+ -
+ message: '#^Method App\\Notifications\\Users\\ResetPasswordAdmin\:\:via\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Notifications/Users/ResetPasswordAdmin.php
+
+ -
+ message: '#^Method App\\Notifications\\Users\\UserAccountCreated\:\:__construct\(\) has parameter \$password with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Notifications/Users/UserAccountCreated.php
+
+ -
+ message: '#^Method App\\Notifications\\Users\\UserAccountCreated\:\:toArray\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Notifications/Users/UserAccountCreated.php
+
+ -
+ message: '#^Method App\\Notifications\\Users\\UserAccountCreated\:\:via\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Notifications/Users/UserAccountCreated.php
+
+ -
+ message: '#^Method App\\Observers\\Awards\\AwardObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Awards/AwardObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Awards\\AwardObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Awards/AwardObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Awards\\AwardObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Awards/AwardObserver.php
+
+ -
+ message: '#^Right side of && is always false\.$#'
+ identifier: booleanAnd.rightAlwaysFalse
+ count: 1
+ path: app/Observers/Awards/AwardObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Awards\\NominationObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Awards/NominationObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Awards\\NominationObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Awards/NominationObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Awards\\NominationObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Awards/NominationObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Awards\\SeasonObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Awards/SeasonObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Awards\\SeasonObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Awards/SeasonObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Awards\\SeasonObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Awards/SeasonObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Awards\\VoteObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Awards/VoteObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Committee\\RoleObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Committee/RoleObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Committee\\RoleObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Committee/RoleObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Committee\\RoleObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Committee/RoleObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Elections\\ElectionObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Elections/ElectionObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Elections\\ElectionObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Elections/ElectionObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Elections\\ElectionObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Elections/ElectionObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Elections\\NominationObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Elections/NominationObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Elections\\NominationObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Elections/NominationObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Elections\\NominationObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Elections/NominationObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Equipment\\BreakageObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Equipment/BreakageObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Equipment\\BreakageObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Equipment/BreakageObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Equipment\\BreakageObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Equipment/BreakageObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Events\\CrewObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Events/CrewObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Events\\EmailObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Events/EmailObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Events\\EventObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Events/EventObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Events\\EventObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Events/EventObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Events\\EventObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Events/EventObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Events\\TimeObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Events/TimeObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Events\\TimeObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Events/TimeObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Events\\TimeObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Events/TimeObserver.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Eloquent\\Model\:\:\$id\.$#'
+ identifier: property.notFound
+ count: 1
+ path: app/Observers/ModelObserver.php
+
+ -
+ message: '#^Method App\\Observers\\ModelObserver\:\:cleanForSaving\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/ModelObserver.php
+
+ -
+ message: '#^Method App\\Observers\\ModelObserver\:\:cleanForSaving\(\) has parameter \$attributes with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Observers/ModelObserver.php
+
+ -
+ message: '#^Method App\\Observers\\ModelObserver\:\:getCreatedAttributes\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/ModelObserver.php
+
+ -
+ message: '#^Method App\\Observers\\ModelObserver\:\:getDeletedAttributes\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/ModelObserver.php
+
+ -
+ message: '#^Method App\\Observers\\ModelObserver\:\:getUpdatedAttributes\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/ModelObserver.php
+
+ -
+ message: '#^Method App\\Observers\\QuoteObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/QuoteObserver.php
+
+ -
+ message: '#^Method App\\Observers\\QuoteObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/QuoteObserver.php
+
+ -
+ message: '#^Method App\\Observers\\QuoteObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/QuoteObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Resources\\CategoryObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Resources/CategoryObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Resources\\CategoryObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Resources/CategoryObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Resources\\CategoryObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Resources/CategoryObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Resources\\IssueObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Resources/IssueObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Resources\\ResourceObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Resources/ResourceObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Resources\\ResourceObserver\:\:deleted\(\) should return bool but return statement is missing\.$#'
+ identifier: return.missing
+ count: 2
+ path: app/Observers/Resources/ResourceObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Resources\\ResourceObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Resources/ResourceObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Resources\\TagObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Resources/TagObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Resources\\TagObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Resources/TagObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Resources\\TagObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Resources/TagObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Training\\CategoryObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Training/CategoryObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Training\\CategoryObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Training/CategoryObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Training\\CategoryObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Training/CategoryObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Training\\Skills\\ApplicationObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Training/Skills/ApplicationObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Training\\Skills\\SkillObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Training/Skills/SkillObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Training\\Skills\\SkillObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Training/Skills/SkillObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Training\\Skills\\SkillObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Training/Skills/SkillObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Users\\GroupObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Users/GroupObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Users\\GroupObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Users/GroupObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Users\\GroupObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Users/GroupObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Users\\UserObserver\:\:created\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Users/UserObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Users\\UserObserver\:\:deleted\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Users/UserObserver.php
+
+ -
+ message: '#^Method App\\Observers\\Users\\UserObserver\:\:updated\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Observers/Users/UserObserver.php
+
+ -
+ message: '#^Cannot call method areNominationsOpen\(\) on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Policies/Awards/NominationPolicy.php
+
+ -
+ message: '#^Method App\\Policies\\Awards\\SeasonPolicy\:\:create\(\) has invalid return type App\\Policies\\Awards\\boolø\.$#'
+ identifier: class.notFound
+ count: 1
+ path: app/Policies/Awards/SeasonPolicy.php
+
+ -
+ message: '#^Method App\\Policies\\Awards\\SeasonPolicy\:\:create\(\) should return App\\Policies\\Awards\\boolø but returns bool\.$#'
+ identifier: return.type
+ count: 1
+ path: app/Policies/Awards/SeasonPolicy.php
+
+ -
+ message: '#^Deprecated in PHP 8\.4\: Parameter \#2 \$skill \(App\\Models\\Training\\Skills\\Skill\) is implicitly nullable via default value null\.$#'
+ identifier: parameter.implicitlyNullable
+ count: 2
+ path: app/Policies/Training/Skills/SkillPolicy.php
+
+ -
+ message: '#^Method App\\Providers\\AuthServiceProvider\:\:registerAuthGates\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Providers/AuthServiceProvider.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Providers\\AuthServiceProvider\:\:\$policies is not covariant with PHPDoc type array\ of overridden property Illuminate\\Foundation\\Support\\Providers\\AuthServiceProvider\:\:\$policies\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Providers/AuthServiceProvider.php
+
+ -
+ message: '#^Property App\\Providers\\AuthServiceProvider\:\:\$policies type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Providers/AuthServiceProvider.php
+
+ -
+ message: '#^PHPDoc type array of property App\\Providers\\EventServiceProvider\:\:\$listen is not covariant with PHPDoc type array\\> of overridden property Illuminate\\Foundation\\Support\\Providers\\EventServiceProvider\:\:\$listen\.$#'
+ identifier: property.phpDocType
+ count: 1
+ path: app/Providers/EventServiceProvider.php
+
+ -
+ message: '#^Property App\\Providers\\EventServiceProvider\:\:\$listen type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Providers/EventServiceProvider.php
+
+ -
+ message: '#^Cannot access offset ''session\.store'' on Illuminate\\Contracts\\Foundation\\Application\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 1
+ path: app/Providers/NotificationServiceProvider.php
+
+ -
+ message: '#^Class Package\\Notifications\\NotificationHandler does not have a constructor and must be instantiated without any parameters\.$#'
+ identifier: new.noConstructor
+ count: 1
+ path: app/Providers/NotificationServiceProvider.php
+
+ -
+ message: '#^Method App\\Providers\\ObserverServiceProvider\:\:observeAwards\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Providers/ObserverServiceProvider.php
+
+ -
+ message: '#^Method App\\Providers\\ObserverServiceProvider\:\:observeCommittee\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Providers/ObserverServiceProvider.php
+
+ -
+ message: '#^Method App\\Providers\\ObserverServiceProvider\:\:observeElections\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Providers/ObserverServiceProvider.php
+
+ -
+ message: '#^Method App\\Providers\\ObserverServiceProvider\:\:observeEquipment\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Providers/ObserverServiceProvider.php
+
+ -
+ message: '#^Method App\\Providers\\ObserverServiceProvider\:\:observeEvents\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Providers/ObserverServiceProvider.php
+
+ -
+ message: '#^Method App\\Providers\\ObserverServiceProvider\:\:observeResources\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Providers/ObserverServiceProvider.php
+
+ -
+ message: '#^Method App\\Providers\\ObserverServiceProvider\:\:observeTraining\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Providers/ObserverServiceProvider.php
+
+ -
+ message: '#^Method App\\Providers\\ObserverServiceProvider\:\:observeUsers\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Providers/ObserverServiceProvider.php
+
+ -
+ message: '#^Cannot access offset ''request'' on Illuminate\\Contracts\\Foundation\\Application\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 1
+ path: app/Providers/SearchToolsServiceProvider.php
+
+ -
+ message: '#^Cannot access offset ''router'' on Illuminate\\Contracts\\Foundation\\Application\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 1
+ path: app/Providers/SearchToolsServiceProvider.php
+
+ -
+ message: '#^Class App\\Providers\\SearchTools not found\.$#'
+ identifier: class.notFound
+ count: 1
+ path: app/Providers/SearchToolsServiceProvider.php
+
+ -
+ message: '#^Instantiated class App\\Providers\\SearchTools not found\.$#'
+ identifier: class.notFound
+ count: 1
+ path: app/Providers/SearchToolsServiceProvider.php
+
+ -
+ message: '#^Cannot access property \$name on Illuminate\\Database\\Eloquent\\Model\|null\.$#'
+ identifier: property.nonObject
+ count: 1
+ path: app/Providers/ViewServiceProvider.php
+
+ -
+ message: '#^Cannot call method getName\(\) on Illuminate\\Routing\\Route\|null\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: app/Providers/ViewServiceProvider.php
+
+ -
+ message: '#^Cannot call method parameters\(\) on Illuminate\\Routing\\Route\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Providers/ViewServiceProvider.php
+
+ -
+ message: '#^Deprecated in PHP 8\.4\: Parameter \#1 \$customQuery \(array\) is implicitly nullable via default value null\.$#'
+ identifier: parameter.implicitlyNullable
+ count: 1
+ path: app/Providers/ViewServiceProvider.php
+
+ -
+ message: '#^Method App\\Providers\\ViewServiceProvider\:\:attachMemberEvents\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Providers/ViewServiceProvider.php
+
+ -
+ message: '#^Method App\\Providers\\ViewServiceProvider\:\:attachMemberSkills\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Providers/ViewServiceProvider.php
+
+ -
+ message: '#^Method App\\Providers\\ViewServiceProvider\:\:attachResourceSearchVariables\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Providers/ViewServiceProvider.php
+
+ -
+ message: '#^Method App\\Providers\\ViewServiceProvider\:\:attachResourceVariables\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/Providers/ViewServiceProvider.php
+
+ -
+ message: '#^Method App\\Providers\\ViewServiceProvider\:\:paginatorPath\(\) has parameter \$customQuery with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Providers/ViewServiceProvider.php
+
+ -
+ message: '#^Parameter \#1 \$item of method Illuminate\\Support\\Collection\\:\:add\(\) expects App\\Models\\Training\\Category, object\{id\: null, name\: string, skills\: Illuminate\\Database\\Eloquent\\Collection\\}&stdClass given\.$#'
+ identifier: argument.type
+ count: 1
+ path: app/Providers/ViewServiceProvider.php
+
+ -
+ message: '#^Unable to resolve the template type TGroupKey in call to method Illuminate\\Support\\Collection\\:\:groupBy\(\)$#'
+ identifier: argument.templateType
+ count: 1
+ path: app/Providers/ViewServiceProvider.php
+
+ -
+ message: '#^Binary operation "\+" between array\{''''\: mixed\} and Illuminate\\Database\\Eloquent\\Builder\ results in an error\.$#'
+ identifier: binaryOp.invalid
+ count: 2
+ path: app/Services/Html/FormBuilder.php
+
+ -
+ message: '#^Call to function is_array\(\) with string will always evaluate to false\.$#'
+ identifier: function.impossibleType
+ count: 1
+ path: app/Services/Html/FormBuilder.php
+
+ -
+ message: '#^Class App\\Services\\Html\\Collection not found\.$#'
+ identifier: class.notFound
+ count: 1
+ path: app/Services/Html/FormBuilder.php
+
+ -
+ message: '#^Instanceof between string and App\\Services\\Html\\Collection will always evaluate to false\.$#'
+ identifier: instanceof.alwaysFalse
+ count: 1
+ path: app/Services/Html/FormBuilder.php
+
+ -
+ message: '#^Method App\\Services\\Html\\FormBuilder\:\:memberList\(\) has parameter \$name with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Services/Html/FormBuilder.php
+
+ -
+ message: '#^Method App\\Services\\Html\\FormBuilder\:\:memberList\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Services/Html/FormBuilder.php
+
+ -
+ message: '#^Method App\\Services\\Html\\FormBuilder\:\:userList\(\) has parameter \$name with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Services/Html/FormBuilder.php
+
+ -
+ message: '#^Method App\\Services\\Html\\FormBuilder\:\:userList\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Services/Html/FormBuilder.php
+
+ -
+ message: '#^Cannot access property \$id on App\\Models\\Users\\User\|null\.$#'
+ identifier: property.nonObject
+ count: 3
+ path: app/Services/QuoteService.php
+
+ -
+ message: '#^Cannot call method addMinutes\(\) on Carbon\\Carbon\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/Services/QuoteService.php
+
+ -
+ message: '#^Method App\\Services\\QuoteService\:\:getPaginatedQuotes\(\) return type with generic class Illuminate\\Pagination\\LengthAwarePaginator does not specify its types\: TKey, TValue$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Services/QuoteService.php
+
+ -
+ message: '#^PHPDoc tag @var for variable \$quotes contains generic class Illuminate\\Pagination\\LengthAwarePaginator but does not specify its types\: TKey, TValue$#'
+ identifier: missingType.generics
+ count: 1
+ path: app/Services/QuoteService.php
+
+ -
+ message: '#^Binary operation "\." between ''/\^'' and array\\|string results in an error\.$#'
+ identifier: binaryOp.invalid
+ count: 1
+ path: app/Validation/Validator.php
+
+ -
+ message: '#^Call to an undefined method Illuminate\\Contracts\\Translation\\Translator\:\:trans\(\)\.$#'
+ identifier: method.notFound
+ count: 1
+ path: app/Validation/Validator.php
+
+ -
+ message: '#^Method App\\Validation\\Validator\:\:validateDatetime\(\) has parameter \$attribute with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Validation/Validator.php
+
+ -
+ message: '#^Method App\\Validation\\Validator\:\:validateDatetime\(\) has parameter \$parameters with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: app/Validation/Validator.php
+
+ -
+ message: '#^Method App\\Validation\\Validator\:\:validateDatetime\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Validation/Validator.php
+
+ -
+ message: '#^Method App\\Validation\\Validator\:\:validateEach\(\) has parameter \$attribute with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Validation/Validator.php
+
+ -
+ message: '#^Method App\\Validation\\Validator\:\:validateEach\(\) has parameter \$parameters with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Validation/Validator.php
+
+ -
+ message: '#^Method App\\Validation\\Validator\:\:validateEach\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Validation/Validator.php
+
+ -
+ message: '#^Method App\\Validation\\Validator\:\:validateName\(\) has parameter \$attribute with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Validation/Validator.php
+
+ -
+ message: '#^Method App\\Validation\\Validator\:\:validateName\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Validation/Validator.php
+
+ -
+ message: '#^Method App\\Validation\\Validator\:\:validatePhone\(\) has parameter \$attribute with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Validation/Validator.php
+
+ -
+ message: '#^Method App\\Validation\\Validator\:\:validatePhone\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Validation/Validator.php
+
+ -
+ message: '#^Method App\\Validation\\Validator\:\:validateTime\(\) has parameter \$attribute with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Validation/Validator.php
+
+ -
+ message: '#^Method App\\Validation\\Validator\:\:validateTime\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: app/Validation/Validator.php
+
+ -
+ message: '#^Method App\\View\\Composers\\ContactMenuComposer\:\:compose\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/View/Composers/ContactMenuComposer.php
+
+ -
+ message: '#^Cannot call method active\(\) on array\|Lavary\\Menu\\Item\|string\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/View/Composers/MainMenuComposer.php
+
+ -
+ message: '#^Cannot call method add\(\) on array\|Lavary\\Menu\\Item\|string\.$#'
+ identifier: method.nonObject
+ count: 31
+ path: app/View/Composers/MainMenuComposer.php
+
+ -
+ message: '#^Cannot call method divide\(\) on array\|Lavary\\Menu\\Item\|string\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/View/Composers/MainMenuComposer.php
+
+ -
+ message: '#^Cannot call method isAdmin\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/View/Composers/MainMenuComposer.php
+
+ -
+ message: '#^Cannot call method isMember\(\) on App\\Models\\Users\\User\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: app/View/Composers/MainMenuComposer.php
+
+ -
+ message: '#^If condition is always true\.$#'
+ identifier: if.alwaysTrue
+ count: 1
+ path: app/View/Composers/MainMenuComposer.php
+
+ -
+ message: '#^Method App\\View\\Composers\\MainMenuComposer\:\:addEventsMenu\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/View/Composers/MainMenuComposer.php
+
+ -
+ message: '#^Method App\\View\\Composers\\MainMenuComposer\:\:addMediaMenu\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/View/Composers/MainMenuComposer.php
+
+ -
+ message: '#^Method App\\View\\Composers\\MainMenuComposer\:\:addMembersMenu\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/View/Composers/MainMenuComposer.php
+
+ -
+ message: '#^Method App\\View\\Composers\\MainMenuComposer\:\:addResourcesMenu\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/View/Composers/MainMenuComposer.php
+
+ -
+ message: '#^Method App\\View\\Composers\\MainMenuComposer\:\:compose\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/View/Composers/MainMenuComposer.php
+
+ -
+ message: '#^Property App\\View\\Composers\\MainMenuComposer\:\:\$user \(App\\Models\\Users\\User\) does not accept App\\Models\\Users\\User\|null\.$#'
+ identifier: assign.propertyType
+ count: 1
+ path: app/View/Composers/MainMenuComposer.php
+
+ -
+ message: '#^Method App\\View\\Composers\\MemberMenuComposer\:\:compose\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/View/Composers/MemberMenuComposer.php
+
+ -
+ message: '#^Method App\\View\\Composers\\ViewComposer\:\:compose\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: app/View/Composers/ViewComposer.php
+
+ -
+ message: '#^Parameter \#1 \$title of static method Illuminate\\Support\\Str\:\:slug\(\) expects string, bool\|string given\.$#'
+ identifier: argument.type
+ count: 1
+ path: config/cache.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Database\\Schema\\ColumnDefinition\:\:\$comment\.$#'
+ identifier: property.notFound
+ count: 1
+ path: database/migrations/2017_12_01_000006_create_resources_tables.php
+
+ -
+ message: '#^Binary operation "\." between non\-falsy\-string and array\\|string results in an error\.$#'
+ identifier: binaryOp.invalid
+ count: 1
+ path: modules/StaticPage/app/Providers/StaticPageServiceProvider.php
+
+ -
+ message: '#^Method Modules\\StaticPage\\Providers\\StaticPageServiceProvider\:\:getPublishableViewPaths\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: modules/StaticPage/app/Providers/StaticPageServiceProvider.php
+
+ -
+ message: '#^Method Modules\\StaticPage\\Providers\\StaticPageServiceProvider\:\:provides\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: modules/StaticPage/app/Providers/StaticPageServiceProvider.php
+
+ -
+ message: '#^Cannot call method close\(\) on Package\\Notifications\\Notification\|string\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: packages/Notifications/Notification.php
+
+ -
+ message: '#^Method Package\\Notifications\\Notification\:\:bag\(\) has parameter \$bag with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/Notifications/Notification.php
+
+ -
+ message: '#^Method Package\\Notifications\\Notification\:\:close\(\) has parameter \$close with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/Notifications/Notification.php
+
+ -
+ message: '#^Method Package\\Notifications\\Notification\:\:enclose\(\) has parameter \$tag with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/Notifications/Notification.php
+
+ -
+ message: '#^Method Package\\Notifications\\Notification\:\:level\(\) has parameter \$level with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/Notifications/Notification.php
+
+ -
+ message: '#^Method Package\\Notifications\\Notification\:\:message\(\) has parameter \$message with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/Notifications/Notification.php
+
+ -
+ message: '#^Method Package\\Notifications\\Notification\:\:title\(\) has parameter \$title with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/Notifications/Notification.php
+
+ -
+ message: '#^Method Package\\Notifications\\Notification\:\:toArray\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/Notifications/Notification.php
+
+ -
+ message: '#^Property Package\\Notifications\\Notification\:\:\$attributes type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/Notifications/Notification.php
+
+ -
+ message: '#^Property Package\\Notifications\\Notification\:\:\$level \(int\) does not accept default value of type string\.$#'
+ identifier: property.defaultValue
+ count: 1
+ path: packages/Notifications/Notification.php
+
+ -
+ message: '#^Strict comparison using \!\=\= between mixed and null will always evaluate to true\.$#'
+ identifier: notIdentical.alwaysTrue
+ count: 2
+ path: packages/Notifications/Notification.php
+
+ -
+ message: '#^Strict comparison using \!\=\= between non\-falsy\-string and null will always evaluate to true\.$#'
+ identifier: notIdentical.alwaysTrue
+ count: 3
+ path: packages/Notifications/Notification.php
+
+ -
+ message: '#^Method Package\\Notifications\\NotificationHandler\:\:all\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/Notifications/NotificationHandler.php
+
+ -
+ message: '#^Method Package\\Notifications\\NotificationHandler\:\:bags\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/Notifications/NotificationHandler.php
+
+ -
+ message: '#^Method Package\\Notifications\\NotificationHandler\:\:get\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/Notifications/NotificationHandler.php
+
+ -
+ message: '#^Method Package\\Notifications\\NotificationHandler\:\:notification\(\) has parameter \$level with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/Notifications/NotificationHandler.php
+
+ -
+ message: '#^Method Package\\Notifications\\NotificationHandler\:\:notification\(\) has parameter \$message with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/Notifications/NotificationHandler.php
+
+ -
+ message: '#^Parameter \#4 \$bag of method Package\\Notifications\\NotificationHandler\:\:notification\(\) expects string, null given\.$#'
+ identifier: argument.type
+ count: 4
+ path: packages/Notifications/NotificationHandler.php
+
+ -
+ message: '#^Property Package\\Notifications\\NotificationHandler\:\:\$notifications type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/Notifications/NotificationHandler.php
+
+ -
+ message: '#^Cannot call method parameter\(\) on Illuminate\\Routing\\Route\|null\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: packages/SearchTools/SearchTools.php
+
+ -
+ message: '#^Cannot call method parameters\(\) on Illuminate\\Routing\\Route\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: packages/SearchTools/SearchTools.php
+
+ -
+ message: '#^Method Package\\SearchTools\\SearchTools\:\:addFilterOption\(\) has parameter \$filter with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/SearchTools/SearchTools.php
+
+ -
+ message: '#^Method Package\\SearchTools\\SearchTools\:\:addFilterOption\(\) has parameter \$text with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/SearchTools/SearchTools.php
+
+ -
+ message: '#^Method Package\\SearchTools\\SearchTools\:\:createUrl\(\) has parameter \$query with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/SearchTools/SearchTools.php
+
+ -
+ message: '#^Method Package\\SearchTools\\SearchTools\:\:getQueryValue\(\) has parameter \$name with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/SearchTools/SearchTools.php
+
+ -
+ message: '#^Method Package\\SearchTools\\SearchTools\:\:hide\(\) has parameter \$name with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/SearchTools/SearchTools.php
+
+ -
+ message: '#^Method Package\\SearchTools\\SearchTools\:\:render\(\) should return \$this\(Package\\SearchTools\\SearchTools\) but returns Illuminate\\View\\View\.$#'
+ identifier: return.type
+ count: 1
+ path: packages/SearchTools/SearchTools.php
+
+ -
+ message: '#^Method Package\\SearchTools\\SearchTools\:\:setFilterOptions\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/SearchTools/SearchTools.php
+
+ -
+ message: '#^Method Package\\SearchTools\\SearchTools\:\:setNoFilterText\(\) has parameter \$text with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/SearchTools/SearchTools.php
+
+ -
+ message: '#^Method Package\\SearchTools\\SearchTools\:\:show\(\) has parameter \$name with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/SearchTools/SearchTools.php
+
+ -
+ message: '#^Property Package\\SearchTools\\SearchTools\:\:\$filterOptions type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/SearchTools/SearchTools.php
+
+ -
+ message: '#^Property Package\\SearchTools\\SearchTools\:\:\$show type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/SearchTools/SearchTools.php
+
+ -
+ message: '#^Property Package\\SearchTools\\SearchTools\:\:\$values type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/SearchTools/SearchTools.php
+
+ -
+ message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Call to function is_bool\(\) with array will always evaluate to false\.$#'
+ identifier: function.impossibleType
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:authorise\(\) has parameter \$method with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:delete\(\) has parameter \$key with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:delete\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:destroy\(\) has parameter \$key with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:destroy\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:edit\(\) has parameter \$key with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:getAttributes\(\) has parameter \$model with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:getModelFromDatabase\(\) has parameter \$key with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:getValidationMessages\(\) has parameter \$model with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:getValidationMessages\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:getValidationRules\(\) has parameter \$model with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:getValidationRules\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:requiresAjax\(\) has parameter \$method with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:restore\(\) has parameter \$key with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:restore\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:restore\(\) should return array but empty return statement found\.$#'
+ identifier: return.empty
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:shouldAuthorise\(\) has parameter \$method with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:store\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:update\(\) has parameter \$key with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:update\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:verifyAjax\(\) has parameter \$method with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:view\(\) has parameter \$key with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Parameter \#1 \$callback of function call_user_func expects callable\(\)\: mixed, array\{string, ''create''\} given\.$#'
+ identifier: argument.type
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Parameter \#1 \$callback of function call_user_func_array expects callable\(\)\: mixed, array\{string, ''where''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Parameter \#1 \$view of function view expects view\-string\|null, string given\.$#'
+ identifier: argument.type
+ count: 4
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Property Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:\$attributes type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Property Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:\$requireAjax type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Property Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:\$validationMessages type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Property Package\\WebDevTools\\Laravel\\Controllers\\SimpleCrudController\:\:\$validationRules type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Controllers/SimpleCrudController.php
+
+ -
+ message: '#^Call to method getMessage\(\) on an unknown class Prophecy\\Exception\\Doubler\\MethodNotFoundException\.$#'
+ identifier: class.notFound
+ count: 1
+ path: packages/WebDevTools/Laravel/Errors/Handler.php
+
+ -
+ message: '#^Class Prophecy\\Exception\\Doubler\\MethodNotFoundException not found\.$#'
+ identifier: class.notFound
+ count: 1
+ path: packages/WebDevTools/Laravel/Errors/Handler.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Errors\\Handler\:\:prepareException\(\) should return Exception but returns Throwable\.$#'
+ identifier: return.type
+ count: 1
+ path: packages/WebDevTools/Laravel/Errors/Handler.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Errors\\Handler\:\:shouldReturnAjaxError\(\) has parameter \$request with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Errors/Handler.php
+
+ -
+ message: '#^Call to function is_array\(\) with string will always evaluate to false\.$#'
+ identifier: function.impossibleType
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Class Package\\WebDevTools\\Laravel\\Html\\Collection not found\.$#'
+ identifier: class.notFound
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Instanceof between string and Package\\WebDevTools\\Laravel\\Html\\Collection will always evaluate to false\.$#'
+ identifier: instanceof.alwaysFalse
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:date\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:datetime\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:input\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:label\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:select\(\) has parameter \$list with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:select\(\) has parameter \$optgroupsAttributes with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:select\(\) has parameter \$optionsAttributes with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:select\(\) has parameter \$selectAttributes with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:select2\(\) has parameter \$list with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:select2\(\) has parameter \$name with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:select2\(\) has parameter \$optionsAttributes with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:select2\(\) has parameter \$selectAttributes with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:selectDate\(\) has parameter \$name with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:selectDate\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:selectDateTime\(\) has parameter \$name with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:selectDateTime\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:selectTime\(\) has parameter \$name with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:selectTime\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:setBoostrapClasses\(\) has parameter \$name with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:setBoostrapClasses\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:setBoostrapClasses\(\) has parameter \$type with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:setBoostrapClasses\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:textarea\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:time\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Parameter \#2 \$value \(null\) of method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:date\(\) should be compatible with parameter \$value \(string\) of method Collective\\Html\\FormBuilder\:\:date\(\)$#'
+ identifier: method.childParameterType
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Parameter \#2 \$value \(null\) of method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:datetime\(\) should be compatible with parameter \$value \(string\) of method Collective\\Html\\FormBuilder\:\:datetime\(\)$#'
+ identifier: method.childParameterType
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Parameter \#2 \$value \(null\) of method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:label\(\) should be compatible with parameter \$value \(string\) of method Collective\\Html\\FormBuilder\:\:label\(\)$#'
+ identifier: method.childParameterType
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Parameter \#2 \$value \(null\) of method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:textarea\(\) should be compatible with parameter \$value \(string\) of method Collective\\Html\\FormBuilder\:\:textarea\(\)$#'
+ identifier: method.childParameterType
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Parameter \#2 \$value \(null\) of method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:time\(\) should be compatible with parameter \$value \(string\) of method Collective\\Html\\FormBuilder\:\:time\(\)$#'
+ identifier: method.childParameterType
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Parameter \#2 \$value of method Collective\\Html\\FormBuilder\:\:getValueAttribute\(\) expects string\|null, int given\.$#'
+ identifier: argument.type
+ count: 5
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Parameter \#3 \$selected \(null\) of method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:select\(\) should be compatible with parameter \$selected \(bool\|string\) of method Collective\\Html\\FormBuilder\:\:select\(\)$#'
+ identifier: method.childParameterType
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Parameter \#3 \$value \(null\) of method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:input\(\) should be compatible with parameter \$value \(string\) of method Collective\\Html\\FormBuilder\:\:input\(\)$#'
+ identifier: method.childParameterType
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Return type \(string\) of method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:date\(\) should be compatible with return type \(Illuminate\\Support\\HtmlString\) of method Collective\\Html\\FormBuilder\:\:date\(\)$#'
+ identifier: method.childReturnType
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Return type \(string\) of method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:datetime\(\) should be compatible with return type \(Illuminate\\Support\\HtmlString\) of method Collective\\Html\\FormBuilder\:\:datetime\(\)$#'
+ identifier: method.childReturnType
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Return type \(string\) of method Package\\WebDevTools\\Laravel\\Html\\FormBuilder\:\:time\(\) should be compatible with return type \(Illuminate\\Support\\HtmlString\) of method Collective\\Html\\FormBuilder\:\:time\(\)$#'
+ identifier: method.childReturnType
+ count: 1
+ path: packages/WebDevTools/Laravel/Html/FormBuilder.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Policies\\SimpleCrudPolicy\:\:create\(\) has parameter \$user with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Policies/SimpleCrudPolicy.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Policies\\SimpleCrudPolicy\:\:delete\(\) has parameter \$model with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Policies/SimpleCrudPolicy.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Policies\\SimpleCrudPolicy\:\:delete\(\) has parameter \$user with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Policies/SimpleCrudPolicy.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Policies\\SimpleCrudPolicy\:\:edit\(\) has parameter \$model with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Policies/SimpleCrudPolicy.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Policies\\SimpleCrudPolicy\:\:edit\(\) has parameter \$user with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Policies/SimpleCrudPolicy.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Policies\\SimpleCrudPolicy\:\:index\(\) has parameter \$user with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Policies/SimpleCrudPolicy.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Policies\\SimpleCrudPolicy\:\:view\(\) has parameter \$user with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Policies/SimpleCrudPolicy.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Providers\\BladeServiceProvider\:\:getDirectiveArguments\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Providers/BladeServiceProvider.php
+
+ -
+ message: '#^Access to an undefined property Illuminate\\Contracts\\Foundation\\Application\:\:\$validator\.$#'
+ identifier: property.notFound
+ count: 1
+ path: packages/WebDevTools/Laravel/Providers/ValidationServiceProvider.php
+
+ -
+ message: '#^Trait Package\\WebDevTools\\Laravel\\Traits\\AllowsAdminOverride is used zero times and is not analysed\.$#'
+ identifier: trait.unused
+ count: 1
+ path: packages/WebDevTools/Laravel/Traits/AllowsAdminOverride.php
+
+ -
+ message: '#^Trait Package\\WebDevTools\\Laravel\\Traits\\IsOrdered is used zero times and is not analysed\.$#'
+ identifier: trait.unused
+ count: 1
+ path: packages/WebDevTools/Laravel/Traits/IsOrdered.php
+
+ -
+ message: '#^Trait Package\\WebDevTools\\Laravel\\Traits\\UsesSoftDeletes is used zero times and is not analysed\.$#'
+ identifier: trait.unused
+ count: 1
+ path: packages/WebDevTools/Laravel/Traits/UsesSoftDeletes.php
+
+ -
+ message: '#^Binary operation "\." between ''/\^'' and array\\|string results in an error\.$#'
+ identifier: binaryOp.invalid
+ count: 1
+ path: packages/WebDevTools/Laravel/Validation/Validator.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Validation\\Validator\:\:validateDatetime\(\) has parameter \$attribute with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Validation/Validator.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Validation\\Validator\:\:validateDatetime\(\) has parameter \$parameters with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: packages/WebDevTools/Laravel/Validation/Validator.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Validation\\Validator\:\:validateDatetime\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Validation/Validator.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Validation\\Validator\:\:validateName\(\) has parameter \$attribute with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Validation/Validator.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Validation\\Validator\:\:validateName\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Validation/Validator.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Validation\\Validator\:\:validatePhone\(\) has parameter \$attribute with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Validation/Validator.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Validation\\Validator\:\:validatePhone\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Validation/Validator.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Validation\\Validator\:\:validateTime\(\) has parameter \$attribute with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Validation/Validator.php
+
+ -
+ message: '#^Method Package\\WebDevTools\\Laravel\\Validation\\Validator\:\:validateTime\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: packages/WebDevTools/Laravel/Validation/Validator.php
diff --git a/phpstan.neon b/phpstan.neon
new file mode 100644
index 00000000..dc82c404
--- /dev/null
+++ b/phpstan.neon
@@ -0,0 +1,17 @@
+includes:
+ - vendor/larastan/larastan/extension.neon
+ - vendor/phpstan/phpstan-phpunit/extension.neon
+ - vendor/phpstan/phpstan-phpunit/rules.neon
+ - vendor/pestphp/pest/extension.neon
+ - phpstan-baseline.neon
+
+parameters:
+ level: 8
+ paths:
+ - app/
+ - config/
+ - database/
+ - modules/
+ - packages/
+ - routes/
+ - tests/
diff --git a/scripts/set_env.sh b/scripts/set_env.sh
new file mode 100755
index 00000000..bc8fd8a8
--- /dev/null
+++ b/scripts/set_env.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+if [[ ! -f .env ]]; then
+ echo "ERROR: .env file missing" >&2
+ exit 1
+fi
+
+if [[ "${1:-}" = "" ]]; then
+ echo "ERROR: missing name of env variable to set (1st argument)"
+ exit 1
+fi
+
+if [[ "${2:-}" = "" ]]; then
+ echo "ERROR: missing new value of env variable (2nd argument)"
+ exit 1
+fi
+
+echo "$1=$2" >> .env
+echo "Written $1 to .env"
diff --git a/tests/Pest.php b/tests/Pest.php
index 2c1ff619..5f8c3f36 100644
--- a/tests/Pest.php
+++ b/tests/Pest.php
@@ -24,10 +24,6 @@
|
*/
-expect()->extend('toBeOne', function () {
- return $this->toBe(1);
-});
-
/*
|--------------------------------------------------------------------------
| Functions
@@ -38,8 +34,3 @@
| global functions to help you to reduce the number of lines of code in your test files.
|
*/
-
-function something()
-{
- // ..
-}
From d0a3490b5fae6747cbe05f549a4295e08ee13155 Mon Sep 17 00:00:00 2001
From: "Ben."
Date: Wed, 10 Dec 2025 22:58:25 +0000
Subject: [PATCH 8/9] feat: add hires email to booking request form (#81)
---
resources/views/contact/book.blade.php | 2 ++
1 file changed, 2 insertions(+)
diff --git a/resources/views/contact/book.blade.php b/resources/views/contact/book.blade.php
index 71a659c6..b2447aeb 100755
--- a/resources/views/contact/book.blade.php
+++ b/resources/views/contact/book.blade.php
@@ -16,6 +16,8 @@
please note that this is not a confirmation that Backstage will crew your event. The Production Manager will get back to you with a definite answer as
soon as possible.
+ Suppliers should contact hires@bts-crew.com for dry hires.
+
{!! Form::open() !!}
Event Details
From b4fe715434f44ad64f72642558f798d4671987ad Mon Sep 17 00:00:00 2001
From: Ben754444 <50147798+Ben754444@users.noreply.github.com>
Date: Fri, 2 Jan 2026 16:13:18 +0000
Subject: [PATCH 9/9] feat: additonal person's contact details
Signed-off-by: Ben754444 <50147798+Ben754444@users.noreply.github.com>
---
.../Contact/AccidentController.php | 10 ++++++-
app/Http/Requests/Contact/AccidentRequest.php | 5 ++++
app/Mail/Contact/AccidentReportReceipt.php | 2 +-
resources/views/contact/accident.blade.php | 28 +++++++++++++++++++
.../views/emails/contact/_accident.blade.php | 6 ++++
5 files changed, 49 insertions(+), 2 deletions(-)
diff --git a/app/Http/Controllers/Contact/AccidentController.php b/app/Http/Controllers/Contact/AccidentController.php
index 95a08a52..548ad8b2 100755
--- a/app/Http/Controllers/Contact/AccidentController.php
+++ b/app/Http/Controllers/Contact/AccidentController.php
@@ -59,7 +59,15 @@ public function process(AccidentRequest $request)
'severity_email' => AccidentRequest::$Severities[$request->get('severity')],
]);
- Mail::to(config('bts.emails.safety.accident_reports'))->queue(new AccidentReport($request->all()));
+ Mail::to(config('bts.emails.safety.accident_reports'))->queue(
+ new AccidentReport($request->all())
+ );
+ if ($request->get('monitor_email'))
+ {
+ Mail::to($request->get('monitor_email'), $request->get('monitor_name'))->queue(
+ new AccidentReport($request->all())
+ );
+ }
Mail::to($request->get('contact_email'), $request->get('contact_name'))->queue(
new AccidentReportReceipt($request->all()),
);
diff --git a/app/Http/Requests/Contact/AccidentRequest.php b/app/Http/Requests/Contact/AccidentRequest.php
index 1e6b4dff..2eba308e 100755
--- a/app/Http/Requests/Contact/AccidentRequest.php
+++ b/app/Http/Requests/Contact/AccidentRequest.php
@@ -66,6 +66,8 @@ public function rules()
'absence_details' => 'required_if:severity,1,2,3',
'details' => 'required',
'injured_name' => 'required',
+ 'monitor_name' => 'required_if:severity,1',
+ 'monitor_email' => 'nullable|required_if:severity,1|email',
'contact_name' => 'required',
'contact_email' => 'required|email',
'contact_phone' => 'required|phone',
@@ -92,6 +94,9 @@ public function messages()
'absence_details.required_if' => 'Please enter any details of their absence from employment or studies',
'details.required' => 'Please provide the accident details',
'injured_name.required' => 'Please provide the name of the injured party',
+ 'monitor_name.required_if' => 'Please provide the name of someone monitoring the injured party',
+ 'monitor_email.required_if' => 'Please provide an email address for the monitor',
+ 'monitor_email.email' => 'Please provide a valid email address for the monitor',
'contact_name.required' => 'Please provide the name of the contact person',
'contact_email.required' => 'Please provide an email address for the contact',
'contact_email.email' => 'Please provide a valid email address',
diff --git a/app/Mail/Contact/AccidentReportReceipt.php b/app/Mail/Contact/AccidentReportReceipt.php
index a12895f0..e8c8c444 100755
--- a/app/Mail/Contact/AccidentReportReceipt.php
+++ b/app/Mail/Contact/AccidentReportReceipt.php
@@ -29,7 +29,7 @@ public function __construct(array $data)
* Build the message.
* @return $this
*/
- public function build()
+ public function build()
{
[$forename] = explode(' ', $this->report['contact_name']);
diff --git a/resources/views/contact/accident.blade.php b/resources/views/contact/accident.blade.php
index d0df2d6c..9c4b7eb6 100755
--- a/resources/views/contact/accident.blade.php
+++ b/resources/views/contact/accident.blade.php
@@ -84,6 +84,34 @@
@InputError('person_type_other')
+
+ Monitor Contact Details
+
+ The details of someone who agrees to monitor the injuried party's condition following the injury. They will be sent a copy of this report.
+
+
+
+
+
+
Contact Details
diff --git a/resources/views/emails/contact/_accident.blade.php b/resources/views/emails/contact/_accident.blade.php
index c824fdef..4e84666f 100755
--- a/resources/views/emails/contact/_accident.blade.php
+++ b/resources/views/emails/contact/_accident.blade.php
@@ -12,6 +12,12 @@
**Name:** {{ $report['injured_name'] }}
**Category:** {{ $report['person_type_email'] }}
+@if(@$report['monitor_name'])
+## Monitoring contact details
+**Name:** {{ $report['monitor_name'] }}
+**Email:** {{ $report['monitor_email'] }}
+@endif
+
## Contact details
**Name:** {{ $report['contact_name'] }}
**Email:** [{{ $report['contact_email'] }}](mailto:{{ $report['contact_email'] }})