From ca2ac10c1715e0977d3f61b34d21c6a3dddca24e Mon Sep 17 00:00:00 2001
From: Matthew Kilgore <matthew@kilgore.dev>
Date: Wed, 24 Nov 2021 22:58:58 -0500
Subject: [PATCH] Initial extension requirements, will eventually have stubs

---
 php-packages/phpstan/.gitignore     | 11 +++++++++++
 php-packages/phpstan/composer.json  | 16 ++++++++++++++++
 php-packages/phpstan/extension.neon | 13 +++++++++++++
 3 files changed, 40 insertions(+)
 create mode 100644 php-packages/phpstan/.gitignore
 create mode 100644 php-packages/phpstan/composer.json
 create mode 100644 php-packages/phpstan/extension.neon

diff --git a/php-packages/phpstan/.gitignore b/php-packages/phpstan/.gitignore
new file mode 100644
index 000000000..30e01fbd2
--- /dev/null
+++ b/php-packages/phpstan/.gitignore
@@ -0,0 +1,11 @@
+/vendor
+composer.lock
+composer.phar
+.DS_Store
+Thumbs.db
+tests/.phpunit.result.cache
+/tests/integration/tmp
+.vagrant
+.idea/*
+.vscode
+js/coverage-ts
diff --git a/php-packages/phpstan/composer.json b/php-packages/phpstan/composer.json
new file mode 100644
index 000000000..53f8fe8c0
--- /dev/null
+++ b/php-packages/phpstan/composer.json
@@ -0,0 +1,16 @@
+{
+    "name": "flarum/phpstan",
+    "description": "Flarum PHPStan extension",
+    "minimum-stability": "stable",
+    "license": "MIT",
+    "require": {
+        "phpstan/phpstan-php-parser": "^1.0"
+    },
+    "extra": {
+        "phpstan": {
+            "includes": [
+                "extension.neon"
+            ]
+        }
+    }
+}
diff --git a/php-packages/phpstan/extension.neon b/php-packages/phpstan/extension.neon
new file mode 100644
index 000000000..5c5bb94cc
--- /dev/null
+++ b/php-packages/phpstan/extension.neon
@@ -0,0 +1,13 @@
+inclues:
+    - vendor/phpstan/phpstan-php-parser/extension.neon
+parameters:
+    universalObjectCratesClasses:
+        - Illuminate\Http\Request
+    earlyTerminatingFunctionCalls:
+        - abort
+        - dd
+    excludePaths:
+        - *.blade.php
+    mixinExcludeClasses:
+        - Eloquent
+    checkGenericClassInNonGenericObjectType: false