diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml
index f088432e..e5550466 100644
--- a/.github/workflows/code-quality.yml
+++ b/.github/workflows/code-quality.yml
@@ -8,14 +8,14 @@ on:
jobs:
- static-analysis-phpstan:
- name: "Static Analysis with PHPStan"
+ static-analysis:
+ name: "Code quality checks"
runs-on: "ubuntu-20.04"
strategy:
matrix:
php-version:
- - "8.0"
+ - "8.1"
steps:
- name: "Checkout code"
@@ -34,5 +34,8 @@ jobs:
- name: "Run static analysis with phpstan/phpstan"
run: "vendor/bin/phpstan"
+ - name: "Run static analysis with vimeo/psalm"
+ run: ./vendor/bin/psalm
+
- name: "Run code style check with squizlabs/php_codesniffer"
run: ./vendor/bin/phpcs --runtime-set ignore_warnings_on_exit 1
diff --git a/composer.json b/composer.json
index c3debf2d..298eac35 100644
--- a/composer.json
+++ b/composer.json
@@ -18,7 +18,8 @@
"symfony/console": ">=5.4",
"symfony/var-dumper": ">=5.4",
"symfony/yaml": ">=5.4",
- "phpstan/phpstan": "^1.2"
+ "phpstan/phpstan": "^1.2",
+ "vimeo/psalm": "^4.23"
},
"autoload": {
"psr-4": {
diff --git a/psalm-baseline.xml b/psalm-baseline.xml
new file mode 100644
index 00000000..26532d56
--- /dev/null
+++ b/psalm-baseline.xml
@@ -0,0 +1,8 @@
+
+
+
+
+ Yaml::parse($contents)
+
+
+
diff --git a/psalm.xml b/psalm.xml
new file mode 100644
index 00000000..ec5cae54
--- /dev/null
+++ b/psalm.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/Map/BaseMap.php b/src/Map/BaseMap.php
index 58d4b531..85ec7b79 100644
--- a/src/Map/BaseMap.php
+++ b/src/Map/BaseMap.php
@@ -14,7 +14,7 @@ abstract class BaseMap implements MapInterface
/**
* Singleton instance.
*
- * @var BaseMap
+ * @var MapInterface
*/
protected static $instance;
diff --git a/src/Map/DefaultMap.php b/src/Map/DefaultMap.php
index 82f50877..c734f629 100644
--- a/src/Map/DefaultMap.php
+++ b/src/Map/DefaultMap.php
@@ -10,7 +10,7 @@
class DefaultMap extends AbstractMap
{
/**
- * @var DefaultMap
+ * @var MapInterface
*/
protected static $instance;
diff --git a/src/Map/EmptyMap.php b/src/Map/EmptyMap.php
index 229de6fe..91ad1230 100644
--- a/src/Map/EmptyMap.php
+++ b/src/Map/EmptyMap.php
@@ -11,7 +11,7 @@
class EmptyMap extends AbstractMap
{
/**
- * @var EmptyMap
+ * @var MapInterface
*/
protected static $instance;
}
diff --git a/src/Map/MiniMap.php.test b/src/Map/MiniMap.php.test
index 08680f41..8a3a20ad 100644
--- a/src/Map/MiniMap.php.test
+++ b/src/Map/MiniMap.php.test
@@ -11,7 +11,7 @@ namespace FileEye\MimeMap\Map;
class MiniMap extends AbstractMap
{
/**
- * @var MiniMap
+ * @var MapInterface
*/
protected static $instance;