Browse code

Initial commit

Benjamin Roth authored on14/03/2023 14:08:46
Showing15 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,17 @@
1
+# EditorConfig is awesome: http://EditorConfig.org
2
+
3
+# top-most EditorConfig file
4
+root = true
5
+
6
+# Unix-style newlines with a newline ending every file
7
+[*]
8
+end_of_line = lf
9
+insert_final_newline = true
10
+trim_trailing_whitespace = true
11
+
12
+[*.{php,twig,yml}]
13
+indent_style = space
14
+indent_size = 4
15
+
16
+[*.{html5,svg,min.css,min.js}]
17
+insert_final_newline = false
0 18
new file mode 100644
... ...
@@ -0,0 +1,10 @@
1
+# Composer
2
+/composer.lock
3
+/vendor/
4
+
5
+# PhpUnit
6
+/.phpunit.result.cache
7
+/phpunit.xml
8
+
9
+# Tools
10
+/tools/*/vendor
0 11
new file mode 100644
... ...
@@ -0,0 +1,165 @@
1
+                   GNU LESSER GENERAL PUBLIC LICENSE
2
+                       Version 3, 29 June 2007
3
+
4
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
5
+ Everyone is permitted to copy and distribute verbatim copies
6
+ of this license document, but changing it is not allowed.
7
+
8
+
9
+  This version of the GNU Lesser General Public License incorporates
10
+the terms and conditions of version 3 of the GNU General Public
11
+License, supplemented by the additional permissions listed below.
12
+
13
+  0. Additional Definitions.
14
+
15
+  As used herein, "this License" refers to version 3 of the GNU Lesser
16
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
17
+General Public License.
18
+
19
+  "The Library" refers to a covered work governed by this License,
20
+other than an Application or a Combined Work as defined below.
21
+
22
+  An "Application" is any work that makes use of an interface provided
23
+by the Library, but which is not otherwise based on the Library.
24
+Defining a subclass of a class defined by the Library is deemed a mode
25
+of using an interface provided by the Library.
26
+
27
+  A "Combined Work" is a work produced by combining or linking an
28
+Application with the Library.  The particular version of the Library
29
+with which the Combined Work was made is also called the "Linked
30
+Version".
31
+
32
+  The "Minimal Corresponding Source" for a Combined Work means the
33
+Corresponding Source for the Combined Work, excluding any source code
34
+for portions of the Combined Work that, considered in isolation, are
35
+based on the Application, and not on the Linked Version.
36
+
37
+  The "Corresponding Application Code" for a Combined Work means the
38
+object code and/or source code for the Application, including any data
39
+and utility programs needed for reproducing the Combined Work from the
40
+Application, but excluding the System Libraries of the Combined Work.
41
+
42
+  1. Exception to Section 3 of the GNU GPL.
43
+
44
+  You may convey a covered work under sections 3 and 4 of this License
45
+without being bound by section 3 of the GNU GPL.
46
+
47
+  2. Conveying Modified Versions.
48
+
49
+  If you modify a copy of the Library, and, in your modifications, a
50
+facility refers to a function or data to be supplied by an Application
51
+that uses the facility (other than as an argument passed when the
52
+facility is invoked), then you may convey a copy of the modified
53
+version:
54
+
55
+   a) under this License, provided that you make a good faith effort to
56
+   ensure that, in the event an Application does not supply the
57
+   function or data, the facility still operates, and performs
58
+   whatever part of its purpose remains meaningful, or
59
+
60
+   b) under the GNU GPL, with none of the additional permissions of
61
+   this License applicable to that copy.
62
+
63
+  3. Object Code Incorporating Material from Library Header Files.
64
+
65
+  The object code form of an Application may incorporate material from
66
+a header file that is part of the Library.  You may convey such object
67
+code under terms of your choice, provided that, if the incorporated
68
+material is not limited to numerical parameters, data structure
69
+layouts and accessors, or small macros, inline functions and templates
70
+(ten or fewer lines in length), you do both of the following:
71
+
72
+   a) Give prominent notice with each copy of the object code that the
73
+   Library is used in it and that the Library and its use are
74
+   covered by this License.
75
+
76
+   b) Accompany the object code with a copy of the GNU GPL and this license
77
+   document.
78
+
79
+  4. Combined Works.
80
+
81
+  You may convey a Combined Work under terms of your choice that,
82
+taken together, effectively do not restrict modification of the
83
+portions of the Library contained in the Combined Work and reverse
84
+engineering for debugging such modifications, if you also do each of
85
+the following:
86
+
87
+   a) Give prominent notice with each copy of the Combined Work that
88
+   the Library is used in it and that the Library and its use are
89
+   covered by this License.
90
+
91
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
92
+   document.
93
+
94
+   c) For a Combined Work that displays copyright notices during
95
+   execution, include the copyright notice for the Library among
96
+   these notices, as well as a reference directing the user to the
97
+   copies of the GNU GPL and this license document.
98
+
99
+   d) Do one of the following:
100
+
101
+       0) Convey the Minimal Corresponding Source under the terms of this
102
+       License, and the Corresponding Application Code in a form
103
+       suitable for, and under terms that permit, the user to
104
+       recombine or relink the Application with a modified version of
105
+       the Linked Version to produce a modified Combined Work, in the
106
+       manner specified by section 6 of the GNU GPL for conveying
107
+       Corresponding Source.
108
+
109
+       1) Use a suitable shared library mechanism for linking with the
110
+       Library.  A suitable mechanism is one that (a) uses at run time
111
+       a copy of the Library already present on the user's computer
112
+       system, and (b) will operate properly with a modified version
113
+       of the Library that is interface-compatible with the Linked
114
+       Version.
115
+
116
+   e) Provide Installation Information, but only if you would otherwise
117
+   be required to provide such information under section 6 of the
118
+   GNU GPL, and only to the extent that such information is
119
+   necessary to install and execute a modified version of the
120
+   Combined Work produced by recombining or relinking the
121
+   Application with a modified version of the Linked Version. (If
122
+   you use option 4d0, the Installation Information must accompany
123
+   the Minimal Corresponding Source and Corresponding Application
124
+   Code. If you use option 4d1, you must provide the Installation
125
+   Information in the manner specified by section 6 of the GNU GPL
126
+   for conveying Corresponding Source.)
127
+
128
+  5. Combined Libraries.
129
+
130
+  You may place library facilities that are a work based on the
131
+Library side by side in a single library together with other library
132
+facilities that are not Applications and are not covered by this
133
+License, and convey such a combined library under terms of your
134
+choice, if you do both of the following:
135
+
136
+   a) Accompany the combined library with a copy of the same work based
137
+   on the Library, uncombined with any other library facilities,
138
+   conveyed under the terms of this License.
139
+
140
+   b) Give prominent notice with the combined library that part of it
141
+   is a work based on the Library, and explaining where to find the
142
+   accompanying uncombined form of the same work.
143
+
144
+  6. Revised Versions of the GNU Lesser General Public License.
145
+
146
+  The Free Software Foundation may publish revised and/or new versions
147
+of the GNU Lesser General Public License from time to time. Such new
148
+versions will be similar in spirit to the present version, but may
149
+differ in detail to address new problems or concerns.
150
+
151
+  Each version is given a distinguishing version number. If the
152
+Library as you received it specifies that a certain numbered version
153
+of the GNU Lesser General Public License "or any later version"
154
+applies to it, you have the option of following the terms and
155
+conditions either of that published version or of any later version
156
+published by the Free Software Foundation. If the Library as you
157
+received it does not specify a version number of the GNU Lesser
158
+General Public License, you may choose any version of the GNU Lesser
159
+General Public License ever published by the Free Software Foundation.
160
+
161
+  If the Library as you received it specifies that a proxy can decide
162
+whether future versions of the GNU Lesser General Public License shall
163
+apply, that proxy's public statement of acceptance of any version is
164
+permanent authorization for you to choose that version for the
165
+Library.
0 166
new file mode 100644
... ...
@@ -0,0 +1,54 @@
1
+# Contao 4 skeleton bundle
2
+
3
+Contao is an Open Source PHP Content Management System for people who want a
4
+professional website that is easy to maintain. Visit the [project website][1]
5
+for more information.
6
+
7
+You can use the skeleton bundle as basis for your own Contao bundle.
8
+
9
+## Install
10
+
11
+Download the skeleton bundle:
12
+
13
+```bash
14
+wget https://github.com/contao/skeleton-bundle/archive/main.zip
15
+unzip main.zip
16
+mv skeleton-bundle-main [package name]
17
+cd [package name]
18
+```
19
+
20
+## Customize
21
+
22
+First adjust the following files:
23
+
24
+ * `composer.json`
25
+ * `ecs.php`
26
+ * `LICENSE`
27
+ * `phpunit.xml.dist`
28
+ * `README.md`
29
+
30
+Then rename the following files and/or the references to `SkeletonBundle` in
31
+the following files:
32
+
33
+ * `src/ContaoManager/Plugin.php`
34
+ * `src/DependencyInjection/ContaoSkeletonExtension.php`
35
+ * `src/ContaoSkeletonBundle.php`
36
+ * `tests/ContaoSkeletonBundleTest.php`
37
+
38
+Finally, add your custom classes and resources. Make sure to register your services
39
+within `src/Resources/config/services.yml`. Also make sure to
40
+[adjust the Contao Manager Plugin][2] (and the dependencies within the `composer.json`)
41
+accordingly, if your bundle makes adjustments to other bundles (e.g. adjustments
42
+to a DCA of other bundles).
43
+
44
+## Release
45
+
46
+Run the PHP-CS-Fixer and the unit test before you release your bundle:
47
+
48
+```bash
49
+vendor/bin/ecs check src/ tests/ --fix
50
+vendor/bin/phpunit
51
+```
52
+
53
+[1]: https://contao.org
54
+[2]: https://docs.contao.org/dev/framework/manager-plugin/#the-bundleplugininterface
0 55
new file mode 100644
... ...
@@ -0,0 +1,66 @@
1
+{
2
+    "name": "vonrotenberg/newsmailer-bundle",
3
+    "description": "Newsmailer contao bundle",
4
+    "license": "LGPL-3.0-or-later",
5
+    "type": "contao-bundle",
6
+    "authors": [
7
+        {
8
+            "name": "Benjamin Roth",
9
+            "homepage": "https://www.vonrotenberg.de"
10
+        }
11
+    ],
12
+    "homepage": "https://www.vonrotenberg.de",
13
+    "support": {
14
+        "issues": "https://www.vonrotenberg.de"
15
+    },
16
+    "require": {
17
+        "php": "^7.4 || ^8.0",
18
+        "contao/core-bundle": "^4.13",
19
+        "terminal42/notification_center": "^1.6"
20
+    },
21
+    "require-dev": {
22
+        "bamarni/composer-bin-plugin": "^1.5",
23
+        "contao/manager-plugin": "^2.0",
24
+        "phpunit/phpunit": "^9.5",
25
+        "symfony/phpunit-bridge": "^6.1"
26
+    },
27
+    "conflict": {
28
+        "contao/manager-plugin": "<2.0 || >=3.0"
29
+    },
30
+    "autoload": {
31
+        "psr-4": {
32
+            "vonRotenberg\\NewsmailerBundle\\": "src/"
33
+        }
34
+    },
35
+    "autoload-dev": {
36
+        "psr-4": {
37
+            "vonRotenberg\\NewsmailerBundle\\Tests\\": "tests/"
38
+        }
39
+    },
40
+    "config": {
41
+        "allow-plugins": {
42
+            "bamarni/composer-bin-plugin": true,
43
+            "contao-components/installer": true,
44
+            "contao/manager-plugin": true,
45
+            "php-http/discovery": true,
46
+            "contao-community-alliance/composer-plugin": true
47
+        }
48
+    },
49
+    "extra": {
50
+        "bamarni-bin": {
51
+            "bin-links": false,
52
+            "target-directory": "tools"
53
+        },
54
+        "contao-manager-plugin": "vonRotenberg\\NewsmailerBundle\\ContaoManager\\Plugin"
55
+    },
56
+    "scripts": {
57
+        "all": [
58
+            "@unit-tests",
59
+            "@ecs",
60
+            "@phpstan"
61
+        ],
62
+        "ecs": "@php tools/ecs/vendor/bin/ecs check src tests --config ecs.php --fix --ansi",
63
+        "phpstan": "@php tools/phpstan/vendor/bin/phpstan analyze --ansi",
64
+        "unit-tests": "@php vendor/bin/phpunit --colors=always"
65
+    }
66
+}
0 67
new file mode 100644
... ...
@@ -0,0 +1,21 @@
1
+<?php
2
+
3
+declare(strict_types=1);
4
+
5
+use PhpCsFixer\Fixer\Comment\HeaderCommentFixer;
6
+use Symplify\EasyCodingStandard\Config\ECSConfig;
7
+
8
+return static function (ECSConfig $ecsConfig): void {
9
+    $ecsConfig->sets([__DIR__.'/tools/ecs/vendor/contao/easy-coding-standard/config/contao.php']);
10
+
11
+    $ecsConfig->ruleWithConfiguration(HeaderCommentFixer::class, [
12
+        'header' => "This file is part of modal bundle.\n\n(c) Benjamin Roth\n\n@license LGPL-3.0-or-later"
13
+    ]);
14
+
15
+    if (PHP_VERSION_ID < 80000) {
16
+        $ecsConfig->ruleWithConfiguration(\PhpCsFixer\Fixer\ControlStructure\TrailingCommaInMultilineFixer::class, ['elements' => ['arrays'], 'after_heredoc' => true]);
17
+        $ecsConfig->skip([\PhpCsFixer\Fixer\PhpUnit\PhpUnitExpectationFixer::class]); // see https://github.com/symplify/symplify/issues/3130
18
+    }
19
+
20
+    // Adjust the configuration according to your needs.
21
+};
0 22
new file mode 100644
... ...
@@ -0,0 +1,19 @@
1
+includes:
2
+    - tools/phpstan/vendor/phpstan/phpstan-phpunit/extension.neon
3
+    - tools/phpstan/vendor/phpstan/phpstan-phpunit/rules.neon
4
+    - tools/phpstan/vendor/phpstan/phpstan-symfony/extension.neon
5
+    - tools/phpstan/vendor/phpstan/phpstan-symfony/rules.neon
6
+
7
+parameters:
8
+    level: 6
9
+
10
+    paths:
11
+        - %currentWorkingDirectory%/src
12
+        - %currentWorkingDirectory%/tests
13
+
14
+    universalObjectCratesClasses:
15
+        - Contao\Model
16
+        - Contao\Template
17
+
18
+    excludePaths:
19
+        - %currentWorkingDirectory%/src/Resources/*
0 20
new file mode 100644
... ...
@@ -0,0 +1,19 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" colors="true">
3
+  <coverage>
4
+    <include>
5
+      <directory>./src</directory>
6
+    </include>
7
+    <exclude>
8
+      <directory>./src/Resources</directory>
9
+    </exclude>
10
+  </coverage>
11
+  <php>
12
+    <ini name="error_reporting" value="-1"/>
13
+  </php>
14
+  <testsuites>
15
+    <testsuite name="Contao Modal Bundle">
16
+      <directory>./tests</directory>
17
+    </testsuite>
18
+  </testsuites>
19
+</phpunit>
0 20
new file mode 100644
... ...
@@ -0,0 +1,30 @@
1
+<?php
2
+
3
+declare(strict_types=1);
4
+
5
+/*
6
+ * This file is part of modal bundle for Contao.
7
+ *
8
+ * (c) Benjamin Roth
9
+ *
10
+ * @license LGPL-3.0-or-later
11
+ */
12
+
13
+namespace vonRotenberg\NewsmailerBundle\ContaoManager;
14
+
15
+use Contao\CoreBundle\ContaoCoreBundle;
16
+use Contao\ManagerPlugin\Bundle\BundlePluginInterface;
17
+use Contao\ManagerPlugin\Bundle\Config\BundleConfig;
18
+use Contao\ManagerPlugin\Bundle\Parser\ParserInterface;
19
+use vonRotenberg\ModalBundle\VonrotenbergNewsmailerBundle;
20
+
21
+class Plugin implements BundlePluginInterface
22
+{
23
+    public function getBundles(ParserInterface $parser): array
24
+    {
25
+        return [
26
+            BundleConfig::create(VonrotenbergNewsmailerBundle::class)
27
+                ->setLoadAfter([ContaoCoreBundle::class]),
28
+        ];
29
+    }
30
+}
0 31
new file mode 100644
... ...
@@ -0,0 +1,27 @@
1
+<?php
2
+
3
+declare(strict_types=1);
4
+
5
+/*
6
+ * This file is part of modal bundle for Contao.
7
+ *
8
+ * (c) Benjamin Roth
9
+ *
10
+ * @license LGPL-3.0-or-later
11
+ */
12
+
13
+namespace vonRotenberg\NewsmailerBundle\DependencyInjection;
14
+
15
+use Symfony\Component\Config\FileLocator;
16
+use Symfony\Component\DependencyInjection\ContainerBuilder;
17
+use Symfony\Component\DependencyInjection\Extension\Extension;
18
+use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
19
+
20
+class VonrotenbergNewsmailerExtension extends Extension
21
+{
22
+    public function load(array $configs, ContainerBuilder $container): void
23
+    {
24
+        $loader = new YamlFileLoader($container, new FileLocator(__DIR__.'/../../config'));
25
+        $loader->load('services.yml');
26
+    }
27
+}
0 28
new file mode 100644
... ...
@@ -0,0 +1,23 @@
1
+<?php
2
+
3
+declare(strict_types=1);
4
+
5
+/*
6
+ * This file is part of modal bundle for Contao.
7
+ *
8
+ * (c) Benjamin Roth
9
+ *
10
+ * @license LGPL-3.0-or-later
11
+ */
12
+
13
+namespace vonRotenberg\NewsmailerBundle;
14
+
15
+use Symfony\Component\HttpKernel\Bundle\Bundle;
16
+
17
+class VonrotenbergNewsmailerBundle extends Bundle
18
+{
19
+    public function getPath(): string
20
+    {
21
+        return \dirname(__DIR__);
22
+    }
23
+}
0 24
new file mode 100644
... ...
@@ -0,0 +1,10 @@
1
+{
2
+  "require": {
3
+    "contao/easy-coding-standard": "^5.0"
4
+  },
5
+  "config": {
6
+    "allow-plugins": {
7
+      "dealerdirect/phpcodesniffer-composer-installer": true
8
+    }
9
+  }
10
+}
0 11
new file mode 100644
... ...
@@ -0,0 +1,355 @@
1
+{
2
+    "_readme": [
3
+        "This file locks the dependencies of your project to a known state",
4
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5
+        "This file is @generated automatically"
6
+    ],
7
+    "content-hash": "dfbce4e9ae46a0d37dd10d37b3deb4a2",
8
+    "packages": [
9
+        {
10
+            "name": "contao/easy-coding-standard",
11
+            "version": "5.3.1",
12
+            "source": {
13
+                "type": "git",
14
+                "url": "https://github.com/contao/easy-coding-standard.git",
15
+                "reference": "e884b3f3f8b64b6d198887dfcfd2bf7890cba2e3"
16
+            },
17
+            "dist": {
18
+                "type": "zip",
19
+                "url": "https://api.github.com/repos/contao/easy-coding-standard/zipball/e884b3f3f8b64b6d198887dfcfd2bf7890cba2e3",
20
+                "reference": "e884b3f3f8b64b6d198887dfcfd2bf7890cba2e3",
21
+                "shasum": ""
22
+            },
23
+            "require": {
24
+                "php": "^7.4 || ^8.0",
25
+                "slevomat/coding-standard": "^7.0",
26
+                "symplify/easy-coding-standard": "^10.0"
27
+            },
28
+            "require-dev": {
29
+                "phpunit/phpunit": "^9.5"
30
+            },
31
+            "type": "library",
32
+            "autoload": {
33
+                "psr-4": {
34
+                    "Contao\\EasyCodingStandard\\": "src/"
35
+                }
36
+            },
37
+            "notification-url": "https://packagist.org/downloads/",
38
+            "license": [
39
+                "LGPL-3.0-or-later"
40
+            ],
41
+            "authors": [
42
+                {
43
+                    "name": "Leo Feyer",
44
+                    "homepage": "https://github.com/leofeyer"
45
+                }
46
+            ],
47
+            "description": "EasyCodingStandard configurations for Contao",
48
+            "support": {
49
+                "issues": "https://github.com/contao/easy-coding-standard/issues",
50
+                "source": "https://github.com/contao/easy-coding-standard/tree/5.3.1"
51
+            },
52
+            "time": "2022-05-23T11:52:14+00:00"
53
+        },
54
+        {
55
+            "name": "dealerdirect/phpcodesniffer-composer-installer",
56
+            "version": "v0.7.2",
57
+            "source": {
58
+                "type": "git",
59
+                "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
60
+                "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db"
61
+            },
62
+            "dist": {
63
+                "type": "zip",
64
+                "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db",
65
+                "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db",
66
+                "shasum": ""
67
+            },
68
+            "require": {
69
+                "composer-plugin-api": "^1.0 || ^2.0",
70
+                "php": ">=5.3",
71
+                "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0"
72
+            },
73
+            "require-dev": {
74
+                "composer/composer": "*",
75
+                "php-parallel-lint/php-parallel-lint": "^1.3.1",
76
+                "phpcompatibility/php-compatibility": "^9.0"
77
+            },
78
+            "type": "composer-plugin",
79
+            "extra": {
80
+                "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
81
+            },
82
+            "autoload": {
83
+                "psr-4": {
84
+                    "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
85
+                }
86
+            },
87
+            "notification-url": "https://packagist.org/downloads/",
88
+            "license": [
89
+                "MIT"
90
+            ],
91
+            "authors": [
92
+                {
93
+                    "name": "Franck Nijhof",
94
+                    "email": "franck.nijhof@dealerdirect.com",
95
+                    "homepage": "http://www.frenck.nl",
96
+                    "role": "Developer / IT Manager"
97
+                },
98
+                {
99
+                    "name": "Contributors",
100
+                    "homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors"
101
+                }
102
+            ],
103
+            "description": "PHP_CodeSniffer Standards Composer Installer Plugin",
104
+            "homepage": "http://www.dealerdirect.com",
105
+            "keywords": [
106
+                "PHPCodeSniffer",
107
+                "PHP_CodeSniffer",
108
+                "code quality",
109
+                "codesniffer",
110
+                "composer",
111
+                "installer",
112
+                "phpcbf",
113
+                "phpcs",
114
+                "plugin",
115
+                "qa",
116
+                "quality",
117
+                "standard",
118
+                "standards",
119
+                "style guide",
120
+                "stylecheck",
121
+                "tests"
122
+            ],
123
+            "support": {
124
+                "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues",
125
+                "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer"
126
+            },
127
+            "time": "2022-02-04T12:51:07+00:00"
128
+        },
129
+        {
130
+            "name": "phpstan/phpdoc-parser",
131
+            "version": "1.6.0",
132
+            "source": {
133
+                "type": "git",
134
+                "url": "https://github.com/phpstan/phpdoc-parser.git",
135
+                "reference": "3cb62d10845338136ff4ba299ab0986bbf84ba77"
136
+            },
137
+            "dist": {
138
+                "type": "zip",
139
+                "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/3cb62d10845338136ff4ba299ab0986bbf84ba77",
140
+                "reference": "3cb62d10845338136ff4ba299ab0986bbf84ba77",
141
+                "shasum": ""
142
+            },
143
+            "require": {
144
+                "php": "^7.2 || ^8.0"
145
+            },
146
+            "require-dev": {
147
+                "php-parallel-lint/php-parallel-lint": "^1.2",
148
+                "phpstan/extension-installer": "^1.0",
149
+                "phpstan/phpstan": "^1.5",
150
+                "phpstan/phpstan-strict-rules": "^1.0",
151
+                "phpunit/phpunit": "^9.5",
152
+                "symfony/process": "^5.2"
153
+            },
154
+            "type": "library",
155
+            "autoload": {
156
+                "psr-4": {
157
+                    "PHPStan\\PhpDocParser\\": [
158
+                        "src/"
159
+                    ]
160
+                }
161
+            },
162
+            "notification-url": "https://packagist.org/downloads/",
163
+            "license": [
164
+                "MIT"
165
+            ],
166
+            "description": "PHPDoc parser with support for nullable, intersection and generic types",
167
+            "support": {
168
+                "issues": "https://github.com/phpstan/phpdoc-parser/issues",
169
+                "source": "https://github.com/phpstan/phpdoc-parser/tree/1.6.0"
170
+            },
171
+            "time": "2022-06-09T09:45:59+00:00"
172
+        },
173
+        {
174
+            "name": "slevomat/coding-standard",
175
+            "version": "7.2.1",
176
+            "source": {
177
+                "type": "git",
178
+                "url": "https://github.com/slevomat/coding-standard.git",
179
+                "reference": "aff06ae7a84e4534bf6f821dc982a93a5d477c90"
180
+            },
181
+            "dist": {
182
+                "type": "zip",
183
+                "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/aff06ae7a84e4534bf6f821dc982a93a5d477c90",
184
+                "reference": "aff06ae7a84e4534bf6f821dc982a93a5d477c90",
185
+                "shasum": ""
186
+            },
187
+            "require": {
188
+                "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7",
189
+                "php": "^7.2 || ^8.0",
190
+                "phpstan/phpdoc-parser": "^1.5.1",
191
+                "squizlabs/php_codesniffer": "^3.6.2"
192
+            },
193
+            "require-dev": {
194
+                "phing/phing": "2.17.3",
195
+                "php-parallel-lint/php-parallel-lint": "1.3.2",
196
+                "phpstan/phpstan": "1.4.10|1.7.1",
197
+                "phpstan/phpstan-deprecation-rules": "1.0.0",
198
+                "phpstan/phpstan-phpunit": "1.0.0|1.1.1",
199
+                "phpstan/phpstan-strict-rules": "1.2.3",
200
+                "phpunit/phpunit": "7.5.20|8.5.21|9.5.20"
201
+            },
202
+            "type": "phpcodesniffer-standard",
203
+            "extra": {
204
+                "branch-alias": {
205
+                    "dev-master": "7.x-dev"
206
+                }
207
+            },
208
+            "autoload": {
209
+                "psr-4": {
210
+                    "SlevomatCodingStandard\\": "SlevomatCodingStandard"
211
+                }
212
+            },
213
+            "notification-url": "https://packagist.org/downloads/",
214
+            "license": [
215
+                "MIT"
216
+            ],
217
+            "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.",
218
+            "support": {
219
+                "issues": "https://github.com/slevomat/coding-standard/issues",
220
+                "source": "https://github.com/slevomat/coding-standard/tree/7.2.1"
221
+            },
222
+            "funding": [
223
+                {
224
+                    "url": "https://github.com/kukulich",
225
+                    "type": "github"
226
+                },
227
+                {
228
+                    "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard",
229
+                    "type": "tidelift"
230
+                }
231
+            ],
232
+            "time": "2022-05-25T10:58:12+00:00"
233
+        },
234
+        {
235
+            "name": "squizlabs/php_codesniffer",
236
+            "version": "3.6.2",
237
+            "source": {
238
+                "type": "git",
239
+                "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
240
+                "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a"
241
+            },
242
+            "dist": {
243
+                "type": "zip",
244
+                "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5e4e71592f69da17871dba6e80dd51bce74a351a",
245
+                "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a",
246
+                "shasum": ""
247
+            },
248
+            "require": {
249
+                "ext-simplexml": "*",
250
+                "ext-tokenizer": "*",
251
+                "ext-xmlwriter": "*",
252
+                "php": ">=5.4.0"
253
+            },
254
+            "require-dev": {
255
+                "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
256
+            },
257
+            "bin": [
258
+                "bin/phpcs",
259
+                "bin/phpcbf"
260
+            ],
261
+            "type": "library",
262
+            "extra": {
263
+                "branch-alias": {
264
+                    "dev-master": "3.x-dev"
265
+                }
266
+            },
267
+            "notification-url": "https://packagist.org/downloads/",
268
+            "license": [
269
+                "BSD-3-Clause"
270
+            ],
271
+            "authors": [
272
+                {
273
+                    "name": "Greg Sherwood",
274
+                    "role": "lead"
275
+                }
276
+            ],
277
+            "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
278
+            "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
279
+            "keywords": [
280
+                "phpcs",
281
+                "standards"
282
+            ],
283
+            "support": {
284
+                "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
285
+                "source": "https://github.com/squizlabs/PHP_CodeSniffer",
286
+                "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
287
+            },
288
+            "time": "2021-12-12T21:44:58+00:00"
289
+        },
290
+        {
291
+            "name": "symplify/easy-coding-standard",
292
+            "version": "10.2.11",
293
+            "source": {
294
+                "type": "git",
295
+                "url": "https://github.com/symplify/easy-coding-standard.git",
296
+                "reference": "20899c6ed601ec426d9e8311798abb3166496cac"
297
+            },
298
+            "dist": {
299
+                "type": "zip",
300
+                "url": "https://api.github.com/repos/symplify/easy-coding-standard/zipball/20899c6ed601ec426d9e8311798abb3166496cac",
301
+                "reference": "20899c6ed601ec426d9e8311798abb3166496cac",
302
+                "shasum": ""
303
+            },
304
+            "require": {
305
+                "php": ">=7.2"
306
+            },
307
+            "conflict": {
308
+                "friendsofphp/php-cs-fixer": "<3.0",
309
+                "squizlabs/php_codesniffer": "<3.6"
310
+            },
311
+            "bin": [
312
+                "bin/ecs"
313
+            ],
314
+            "type": "library",
315
+            "extra": {
316
+                "branch-alias": {
317
+                    "dev-main": "10.3-dev"
318
+                }
319
+            },
320
+            "autoload": {
321
+                "files": [
322
+                    "bootstrap.php"
323
+                ]
324
+            },
325
+            "notification-url": "https://packagist.org/downloads/",
326
+            "license": [
327
+                "MIT"
328
+            ],
329
+            "description": "Prefixed scoped version of ECS package",
330
+            "support": {
331
+                "source": "https://github.com/symplify/easy-coding-standard/tree/10.2.11"
332
+            },
333
+            "funding": [
334
+                {
335
+                    "url": "https://www.paypal.me/rectorphp",
336
+                    "type": "custom"
337
+                },
338
+                {
339
+                    "url": "https://github.com/tomasvotruba",
340
+                    "type": "github"
341
+                }
342
+            ],
343
+            "time": "2022-06-07T07:47:12+00:00"
344
+        }
345
+    ],
346
+    "packages-dev": [],
347
+    "aliases": [],
348
+    "minimum-stability": "stable",
349
+    "stability-flags": [],
350
+    "prefer-stable": false,
351
+    "prefer-lowest": false,
352
+    "platform": [],
353
+    "platform-dev": [],
354
+    "plugin-api-version": "2.3.0"
355
+}
0 356
new file mode 100644
... ...
@@ -0,0 +1,7 @@
1
+{
2
+  "require": {
3
+    "phpstan/phpstan": "^1.7",
4
+    "phpstan/phpstan-phpunit": "^1.1",
5
+    "phpstan/phpstan-symfony": "^1.2"
6
+  }
7
+}
0 8
new file mode 100644
... ...
@@ -0,0 +1,201 @@
1
+{
2
+    "_readme": [
3
+        "This file locks the dependencies of your project to a known state",
4
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5
+        "This file is @generated automatically"
6
+    ],
7
+    "content-hash": "df0edb91981a94848a7dc524ea04c06d",
8
+    "packages": [
9
+        {
10
+            "name": "phpstan/phpstan",
11
+            "version": "1.7.11",
12
+            "source": {
13
+                "type": "git",
14
+                "url": "https://github.com/phpstan/phpstan.git",
15
+                "reference": "62fcadcde81b4037e42ad2489119d31c46f00191"
16
+            },
17
+            "dist": {
18
+                "type": "zip",
19
+                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/62fcadcde81b4037e42ad2489119d31c46f00191",
20
+                "reference": "62fcadcde81b4037e42ad2489119d31c46f00191",
21
+                "shasum": ""
22
+            },
23
+            "require": {
24
+                "php": "^7.2|^8.0"
25
+            },
26
+            "conflict": {
27
+                "phpstan/phpstan-shim": "*"
28
+            },
29
+            "bin": [
30
+                "phpstan",
31
+                "phpstan.phar"
32
+            ],
33
+            "type": "library",
34
+            "autoload": {
35
+                "files": [
36
+                    "bootstrap.php"
37
+                ]
38
+            },
39
+            "notification-url": "https://packagist.org/downloads/",
40
+            "license": [
41
+                "MIT"
42
+            ],
43
+            "description": "PHPStan - PHP Static Analysis Tool",
44
+            "support": {
45
+                "issues": "https://github.com/phpstan/phpstan/issues",
46
+                "source": "https://github.com/phpstan/phpstan/tree/1.7.11"
47
+            },
48
+            "funding": [
49
+                {
50
+                    "url": "https://github.com/ondrejmirtes",
51
+                    "type": "github"
52
+                },
53
+                {
54
+                    "url": "https://github.com/phpstan",
55
+                    "type": "github"
56
+                },
57
+                {
58
+                    "url": "https://www.patreon.com/phpstan",
59
+                    "type": "patreon"
60
+                },
61
+                {
62
+                    "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan",
63
+                    "type": "tidelift"
64
+                }
65
+            ],
66
+            "time": "2022-06-07T08:47:03+00:00"
67
+        },
68
+        {
69
+            "name": "phpstan/phpstan-phpunit",
70
+            "version": "1.1.1",
71
+            "source": {
72
+                "type": "git",
73
+                "url": "https://github.com/phpstan/phpstan-phpunit.git",
74
+                "reference": "4a3c437c09075736285d1cabb5c75bf27ed0bc84"
75
+            },
76
+            "dist": {
77
+                "type": "zip",
78
+                "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/4a3c437c09075736285d1cabb5c75bf27ed0bc84",
79
+                "reference": "4a3c437c09075736285d1cabb5c75bf27ed0bc84",
80
+                "shasum": ""
81
+            },
82
+            "require": {
83
+                "php": "^7.2 || ^8.0",
84
+                "phpstan/phpstan": "^1.5.0"
85
+            },
86
+            "conflict": {
87
+                "phpunit/phpunit": "<7.0"
88
+            },
89
+            "require-dev": {
90
+                "nikic/php-parser": "^4.13.0",
91
+                "php-parallel-lint/php-parallel-lint": "^1.2",
92
+                "phpstan/phpstan-strict-rules": "^1.0",
93
+                "phpunit/phpunit": "^9.5"
94
+            },
95
+            "type": "phpstan-extension",
96
+            "extra": {
97
+                "phpstan": {
98
+                    "includes": [
99
+                        "extension.neon",
100
+                        "rules.neon"
101
+                    ]
102
+                }
103
+            },
104
+            "autoload": {
105
+                "psr-4": {
106
+                    "PHPStan\\": "src/"
107
+                }
108
+            },
109
+            "notification-url": "https://packagist.org/downloads/",
110
+            "license": [
111
+                "MIT"
112
+            ],
113
+            "description": "PHPUnit extensions and rules for PHPStan",
114
+            "support": {
115
+                "issues": "https://github.com/phpstan/phpstan-phpunit/issues",
116
+                "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.1.1"
117
+            },
118
+            "time": "2022-04-20T15:24:25+00:00"
119
+        },
120
+        {
121
+            "name": "phpstan/phpstan-symfony",
122
+            "version": "1.2.3",
123
+            "source": {
124
+                "type": "git",
125
+                "url": "https://github.com/phpstan/phpstan-symfony.git",
126
+                "reference": "7c24540375a53538190190496f077f76b14c63fb"
127
+            },
128
+            "dist": {
129
+                "type": "zip",
130
+                "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/7c24540375a53538190190496f077f76b14c63fb",
131
+                "reference": "7c24540375a53538190190496f077f76b14c63fb",
132
+                "shasum": ""
133
+            },
134
+            "require": {
135
+                "ext-simplexml": "*",
136
+                "php": "^7.2 || ^8.0",
137
+                "phpstan/phpstan": "^1.6"
138
+            },
139
+            "conflict": {
140
+                "symfony/framework-bundle": "<3.0"
141
+            },
142
+            "require-dev": {
143
+                "nikic/php-parser": "^4.13.0",
144
+                "php-parallel-lint/php-parallel-lint": "^1.2",
145
+                "phpstan/phpstan-phpunit": "^1.0",
146
+                "phpstan/phpstan-strict-rules": "^1.0",
147
+                "phpunit/phpunit": "^9.5",
148
+                "psr/container": "1.0 || 1.1.1",
149
+                "symfony/config": "^4.2 || ^5.0",
150
+                "symfony/console": "^4.0 || ^5.0",
151
+                "symfony/dependency-injection": "^4.0 || ^5.0",
152
+                "symfony/form": "^4.0 || ^5.0",
153
+                "symfony/framework-bundle": "^4.4 || ^5.0",
154
+                "symfony/http-foundation": "^5.1",
155
+                "symfony/messenger": "^4.2 || ^5.0",
156
+                "symfony/polyfill-php80": "^1.24",
157
+                "symfony/serializer": "^4.0 || ^5.0"
158
+            },
159
+            "type": "phpstan-extension",
160
+            "extra": {
161
+                "phpstan": {
162
+                    "includes": [
163
+                        "extension.neon",
164
+                        "rules.neon"
165
+                    ]
166
+                }
167
+            },
168
+            "autoload": {
169
+                "psr-4": {
170
+                    "PHPStan\\": "src/"
171
+                }
172
+            },
173
+            "notification-url": "https://packagist.org/downloads/",
174
+            "license": [
175
+                "MIT"
176
+            ],
177
+            "authors": [
178
+                {
179
+                    "name": "Lukáš Unger",
180
+                    "email": "looky.msc@gmail.com",
181
+                    "homepage": "https://lookyman.net"
182
+                }
183
+            ],
184
+            "description": "Symfony Framework extensions and rules for PHPStan",
185
+            "support": {
186
+                "issues": "https://github.com/phpstan/phpstan-symfony/issues",
187
+                "source": "https://github.com/phpstan/phpstan-symfony/tree/1.2.3"
188
+            },
189
+            "time": "2022-06-03T13:22:15+00:00"
190
+        }
191
+    ],
192
+    "packages-dev": [],
193
+    "aliases": [],
194
+    "minimum-stability": "stable",
195
+    "stability-flags": [],
196
+    "prefer-stable": false,
197
+    "prefer-lowest": false,
198
+    "platform": [],
199
+    "platform-dev": [],
200
+    "plugin-api-version": "2.3.0"
201
+}