├── php.ini ├── public ├── assets │ ├── css │ │ └── style.css │ └── images │ │ └── favicon.png ├── .htaccess └── index.php ├── phpstan.neon ├── captain-definition ├── .gitignore ├── .tours ├── simple_MVC.png ├── routing_meme.jpg ├── code_tour_menu.png ├── schema_1_routing.png ├── photo-1632178151697-fd971baa906f.jpg ├── simple-mvc.tour └── routing.tour ├── docker-entry.sh ├── src ├── View │ ├── Item │ │ ├── add.html.twig │ │ ├── edit.html.twig │ │ ├── _form.html.twig │ │ ├── index.html.twig │ │ └── show.html.twig │ ├── Home │ │ └── index.html.twig │ └── layout.html.twig ├── Controller │ ├── HomeController.php │ ├── AbstractController.php │ └── ItemController.php ├── routes.php ├── Model │ ├── Connection.php │ ├── ItemManager.php │ └── AbstractManager.php └── routing.php ├── config ├── db.php.dist ├── debug.php └── config.php ├── grumphp.yml ├── .editorconfig ├── .github └── workflows │ ├── deploy.yml │ └── main.yml ├── phpcs.xml ├── composer.json ├── migration.php ├── nginx.conf ├── Dockerfile ├── phpmd.xml ├── database.sql ├── README.md └── composer.lock /php.ini: -------------------------------------------------------------------------------- 1 | upload_max_filesize=40M 2 | post_max_size=40M -------------------------------------------------------------------------------- /public/assets/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: #f76c6c; 3 | } -------------------------------------------------------------------------------- /phpstan.neon: -------------------------------------------------------------------------------- 1 | parameters: 2 | ignoreErrors: 3 | - '#Constant [A-Z_]+ not found.#' 4 | -------------------------------------------------------------------------------- /captain-definition: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion" :2 , 3 | "dockerfilePath" : "./Dockerfile" 4 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | /temp/* 3 | .phpcs-cache 4 | *.cache 5 | db.php 6 | .idea 7 | .vscode 8 | -------------------------------------------------------------------------------- /.tours/simple_MVC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WildCodeSchool/simple-mvc-old-caprover/HEAD/.tours/simple_MVC.png -------------------------------------------------------------------------------- /.tours/routing_meme.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WildCodeSchool/simple-mvc-old-caprover/HEAD/.tours/routing_meme.jpg -------------------------------------------------------------------------------- /.tours/code_tour_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WildCodeSchool/simple-mvc-old-caprover/HEAD/.tours/code_tour_menu.png -------------------------------------------------------------------------------- /.tours/schema_1_routing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WildCodeSchool/simple-mvc-old-caprover/HEAD/.tours/schema_1_routing.png -------------------------------------------------------------------------------- /docker-entry.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | set -e 3 | 4 | php /var/www/migration.php 5 | 6 | 7 | php-fpm -D 8 | nginx -g 'daemon off;' 9 | -------------------------------------------------------------------------------- /public/assets/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WildCodeSchool/simple-mvc-old-caprover/HEAD/public/assets/images/favicon.png -------------------------------------------------------------------------------- /.tours/photo-1632178151697-fd971baa906f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WildCodeSchool/simple-mvc-old-caprover/HEAD/.tours/photo-1632178151697-fd971baa906f.jpg -------------------------------------------------------------------------------- /src/View/Item/add.html.twig: -------------------------------------------------------------------------------- 1 | {% extends 'layout.html.twig' %} 2 | 3 | {% block content %} 4 |
Find a complete CRUD example on /items page.
6 | {% endblock %} 7 | -------------------------------------------------------------------------------- /src/View/Item/edit.html.twig: -------------------------------------------------------------------------------- 1 | {% extends 'layout.html.twig' %} 2 | 3 | {% block content %} 4 |{{ item.id }}. {{ item.title }}
6 | Edit 7 | 11 | Back 12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is an automatic configuration of some points for this project 2 | # In order for your IDE to handle this file, you probably must install an plugin to it. 3 | # Just look for somthing like "editorconfig" plugin. Then, you have nothing else to do :). 4 | # https://EditorConfig.org 5 | 6 | root = true 7 | 8 | [*] 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | end_of_line = lf 12 | charset = utf-8 13 | tab_width = 4 14 | indent_size = 4 15 | indent_style = space 16 | 17 | [Makefile*] 18 | indent_style = tab 19 | -------------------------------------------------------------------------------- /config/config.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
54 |
55 | We prepare a little guided tour to start with the simple-MVC.
56 |
57 | To take it, you need to install the `Code Tour` extension for Visual Studio Code : [Code Tour](https://marketplace.visualstudio.com/items?itemName=vsls-contrib.codetour)
58 |
59 | It will give access to a new menu on your IDE where you'll find the different tours about the simple-MVC. Click on play to start one :
60 |
61 | 
62 |
63 | ## Run it on docker
64 |
65 | If you don't know what is docker, skip this chapter. ;)
66 |
67 | Otherwise, you probably see, this project is ready to use with docker.
68 |
69 | To build the image, go into the project directory and in your CLI type:
70 |
71 | ```
72 | docker build -t simple-mvc-container .
73 | ```
74 |
75 | then, run it to open it on your localhot :
76 |
77 | ```
78 | docker run -i -t --name simple-mvc -p 80:80 simple-mvc-container
79 | ```
80 |
--------------------------------------------------------------------------------
/.tours/routing.tour:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://aka.ms/codetour-schema",
3 | "title": "02 - Routing",
4 | "steps": [
5 | {
6 | "title": "Le routage",
7 | "description": "Le routage est l'étape ou l'on extrait l'URL d'une requête HTTP (la route) afin d'appeler la méthode de contrôleur associée : \r\n\r\n"
8 | },
9 | {
10 | "file": "src/routing.php",
11 | "description": "Pour commencer nous récupérons la route demandée par notre utilisateur (ce qui n'est autre que l'URL sans la partie concernant le domaine).\r\n\r\nPar exemple : \r\n`localhost/items/edit?id=5`\r\n- Le domaine est : `localhost`\r\n- La route est : `items/edit?id=5`\r\n\r\nLa route est facilement récupérable grace à $_SERVER. À l'instar de $_GET ou de $_POST, $_SERVER est un tableau qui contient de nombreuses informations sur le server web (pour en savoir plus : [Doc](https://www.php.net/manual/fr/reserved.variables.server.php)). Ici nous récupérons l'index `PATH_INFO`",
12 | "line": 4,
13 | "selection": {
14 | "start": {
15 | "line": 4,
16 | "character": 1
17 | },
18 | "end": {
19 | "line": 4,
20 | "character": 49
21 | }
22 | }
23 | },
24 | {
25 | "file": "src/routing.php",
26 | "selection": {
27 | "start": {
28 | "line": 7,
29 | "character": 1
30 | },
31 | "end": {
32 | "line": 7,
33 | "character": 55
34 | }
35 | },
36 | "description": "Afin de savoir quelle partie de notre code appeler, nous devons d'abord charger toutes les routes définies pour notre application. Toutes ses routes sont déclarées dans `routes.php` "
37 | },
38 | {
39 | "file": "src/routes.php",
40 | "description": "Dans ce tableau, nous déclarons toutes les routes de notre application.\r\n\r\nChaque route appellera une partie spécifique de notre code, et donc présentera un résultat différent.\r\n\r\nLe but d'une route est de guider une requête vers une action d'un contrôleur.\r\n\r\nPar exemple :",
41 | "line": 8,
42 | "selection": {
43 | "start": {
44 | "line": 9,
45 | "character": 1
46 | },
47 | "end": {
48 | "line": 16,
49 | "character": 3
50 | }
51 | }
52 | },
53 | {
54 | "file": "src/routes.php",
55 | "selection": {
56 | "start": {
57 | "line": 11,
58 | "character": 5
59 | },
60 | "end": {
61 | "line": 11,
62 | "character": 12
63 | }
64 | },
65 | "description": "Ici nous avons la route `items`. Cela signife que notre application a comme porte d'entrée l'URL suivante :\r\n\r\n[http://localhost:8000/items/](http://localhost:8000/items/)"
66 | },
67 | {
68 | "file": "src/routes.php",
69 | "selection": {
70 | "start": {
71 | "line": 11,
72 | "character": 17
73 | },
74 | "end": {
75 | "line": 11,
76 | "character": 33
77 | }
78 | },
79 | "description": "On associe ce point d'entrée à un contrôleur : `ItemController`"
80 | },
81 | {
82 | "file": "src/Controller/ItemController.php",
83 | "selection": {
84 | "start": {
85 | "line": 7,
86 | "character": 1
87 | },
88 | "end": {
89 | "line": 7,
90 | "character": 48
91 | }
92 | },
93 | "description": "Comme tu peux le voir, un contrôleur n'est rien d'autre qu'une classe. Elle a néanmoins un role cruciale dans notre application MVC : c'est elle qui traite la requête HTTP d'entrée, et c'est également elle qui retourne la requête HTTP de réponse."
94 | },
95 | {
96 | "file": "src/Controller/ItemController.php",
97 | "selection": {
98 | "start": {
99 | "line": 12,
100 | "character": 4
101 | },
102 | "end": {
103 | "line": 90,
104 | "character": 6
105 | }
106 | },
107 | "description": "Ce controller a déjà plusieurs fonctions : index(), show(), edit(), ...\r\n\r\nChacune de ces fonctions est une action possible de notre application.\r\n\r\nToutes ces actions retournerons une requête HTTP, qui transportera (ou non) le code HTML de la page à présenter (nottament grace à [TWIG](https://twig.symfony.com)).\r\n\r\nBien sur, comme seule une page doit etre retournée, seule une action doit etre appelée."
108 | },
109 | {
110 | "file": "src/routes.php",
111 | "selection": {
112 | "start": {
113 | "line": 11,
114 | "character": 35
115 | },
116 | "end": {
117 | "line": 11,
118 | "character": 42
119 | }
120 | },
121 | "description": "Et c'est précisément le rôle de ce second parametre.\n\nIci nous déclarons que si on appelle la route `items` (alias [http://localhost:8000/items/](http://localhost:8000/items/)), on appellera alors la function `index()` du contrôleur `ItemController`. Le code déclenché sera donc ..."
122 | },
123 | {
124 | "file": "src/Controller/ItemController.php",
125 | "selection": {
126 | "start": {
127 | "line": 12,
128 | "character": 5
129 | },
130 | "end": {
131 | "line": 18,
132 | "character": 6
133 | }
134 | },
135 | "description": "... Celui-ci !\n\n"
136 | },
137 | {
138 | "file": "src/routes.php",
139 | "description": "Donc maintenant tu sais créer une route simple dans notre application. Beau boulot 💪!\r\n\r\n\r\n\r\nNéanmoins, comme les pages ne sont plus seulement statiques à présent, tu devras parfois transmettre des informations supplémentaires qui leur permettront de se construire dynamiquement.\r\n\r\nEt c'est pour cette raison que les routes peuvent également prendre des paramètres 😃!",
140 | "line": 17
141 | },
142 | {
143 | "file": "src/routes.php",
144 | "selection": {
145 | "start": {
146 | "line": 13,
147 | "character": 5
148 | },
149 | "end": {
150 | "line": 13,
151 | "character": 17
152 | }
153 | },
154 | "description": "Cette route par exemple : son but est de présenter les informations d'un item spécifique. Le problème est que dans la base de données, il pourrait y avoir des millions d'items ! Alors comment ne présenter que l'item que l'on souhaite voir 😰?"
155 | },
156 | {
157 | "file": "src/routes.php",
158 | "selection": {
159 | "start": {
160 | "line": 13,
161 | "character": 48
162 | },
163 | "end": {
164 | "line": 13,
165 | "character": 54
166 | }
167 | },
168 | "description": "Et bien c'est le rôle de ce troisième paramètre 😎. Grace à lui on pourra transmettre l'id de l'item spécifique que l'on cherche à voir.\r\n\r\nComme on peut le voir ce troisième paramètre est un tableau, c'est à dire qu'on peut avoir autant de paramètres que nécéssaire dans une route."
169 | },
170 | {
171 | "file": "src/routes.php",
172 | "selection": {
173 | "start": {
174 | "line": 13,
175 | "character": 49
176 | },
177 | "end": {
178 | "line": 13,
179 | "character": 53
180 | }
181 | },
182 | "description": "Sur cette route il n'y en a qu'un : id\r\n\r\nAussi pour contacter cette page, l'url ressemblera à ceci : \r\n[http://localhost:8000/items/show?id=1](http://localhost:8000/items/show?id=1)\r\nCes paramètres supplémentaires sont à passer via la *query string*."
183 | },
184 | {
185 | "file": "src/Controller/ItemController.php",
186 | "selection": {
187 | "start": {
188 | "line": 24,
189 | "character": 5
190 | },
191 | "end": {
192 | "line": 30,
193 | "character": 6
194 | }
195 | },
196 | "description": "Et l'action show() sera appelée."
197 | },
198 | {
199 | "file": "src/Controller/ItemController.php",
200 | "selection": {
201 | "start": {
202 | "line": 24,
203 | "character": 26
204 | },
205 | "end": {
206 | "line": 24,
207 | "character": 33
208 | }
209 | },
210 | "description": "Cette fois la fonction attend un paramètre en entrée.\r\n\r\nEt bien c'est notre router qui lui fournira (dés lors qu'on a bien dit dans la route qu'un paramètre devait etre passé).\r\n\r\nDonc si l'URL [http://localhost:8000/items/show?id=1](http://localhost:8000/items/show?id=1) est appelée, la valeur de `$id` sera de `1`"
211 | },
212 | {
213 | "file": "src/Controller/ItemController.php",
214 | "selection": {
215 | "start": {
216 | "line": 27,
217 | "character": 8
218 | },
219 | "end": {
220 | "line": 27,
221 | "character": 50
222 | }
223 | },
224 | "description": "Ensuite on peut utiliser `$id` pour récupérer le bon item dans notre base de données à l'aide de notre `ItemManager`(qui appartient à la couche Modèle de notre MVC)"
225 | }
226 | ]
227 | }
--------------------------------------------------------------------------------
/composer.lock:
--------------------------------------------------------------------------------
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": "b460208f445815bff152f8f4f499b9ae",
8 | "packages": [
9 | {
10 | "name": "symfony/polyfill-ctype",
11 | "version": "v1.25.0",
12 | "source": {
13 | "type": "git",
14 | "url": "https://github.com/symfony/polyfill-ctype.git",
15 | "reference": "30885182c981ab175d4d034db0f6f469898070ab"
16 | },
17 | "dist": {
18 | "type": "zip",
19 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab",
20 | "reference": "30885182c981ab175d4d034db0f6f469898070ab",
21 | "shasum": ""
22 | },
23 | "require": {
24 | "php": ">=7.1"
25 | },
26 | "provide": {
27 | "ext-ctype": "*"
28 | },
29 | "suggest": {
30 | "ext-ctype": "For best performance"
31 | },
32 | "type": "library",
33 | "extra": {
34 | "branch-alias": {
35 | "dev-main": "1.23-dev"
36 | },
37 | "thanks": {
38 | "name": "symfony/polyfill",
39 | "url": "https://github.com/symfony/polyfill"
40 | }
41 | },
42 | "autoload": {
43 | "files": [
44 | "bootstrap.php"
45 | ],
46 | "psr-4": {
47 | "Symfony\\Polyfill\\Ctype\\": ""
48 | }
49 | },
50 | "notification-url": "https://packagist.org/downloads/",
51 | "license": [
52 | "MIT"
53 | ],
54 | "authors": [
55 | {
56 | "name": "Gert de Pagter",
57 | "email": "BackEndTea@gmail.com"
58 | },
59 | {
60 | "name": "Symfony Community",
61 | "homepage": "https://symfony.com/contributors"
62 | }
63 | ],
64 | "description": "Symfony polyfill for ctype functions",
65 | "homepage": "https://symfony.com",
66 | "keywords": [
67 | "compatibility",
68 | "ctype",
69 | "polyfill",
70 | "portable"
71 | ],
72 | "support": {
73 | "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0"
74 | },
75 | "funding": [
76 | {
77 | "url": "https://symfony.com/sponsor",
78 | "type": "custom"
79 | },
80 | {
81 | "url": "https://github.com/fabpot",
82 | "type": "github"
83 | },
84 | {
85 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
86 | "type": "tidelift"
87 | }
88 | ],
89 | "time": "2021-10-20T20:35:02+00:00"
90 | },
91 | {
92 | "name": "symfony/polyfill-mbstring",
93 | "version": "v1.25.0",
94 | "source": {
95 | "type": "git",
96 | "url": "https://github.com/symfony/polyfill-mbstring.git",
97 | "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825"
98 | },
99 | "dist": {
100 | "type": "zip",
101 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825",
102 | "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825",
103 | "shasum": ""
104 | },
105 | "require": {
106 | "php": ">=7.1"
107 | },
108 | "provide": {
109 | "ext-mbstring": "*"
110 | },
111 | "suggest": {
112 | "ext-mbstring": "For best performance"
113 | },
114 | "type": "library",
115 | "extra": {
116 | "branch-alias": {
117 | "dev-main": "1.23-dev"
118 | },
119 | "thanks": {
120 | "name": "symfony/polyfill",
121 | "url": "https://github.com/symfony/polyfill"
122 | }
123 | },
124 | "autoload": {
125 | "files": [
126 | "bootstrap.php"
127 | ],
128 | "psr-4": {
129 | "Symfony\\Polyfill\\Mbstring\\": ""
130 | }
131 | },
132 | "notification-url": "https://packagist.org/downloads/",
133 | "license": [
134 | "MIT"
135 | ],
136 | "authors": [
137 | {
138 | "name": "Nicolas Grekas",
139 | "email": "p@tchwork.com"
140 | },
141 | {
142 | "name": "Symfony Community",
143 | "homepage": "https://symfony.com/contributors"
144 | }
145 | ],
146 | "description": "Symfony polyfill for the Mbstring extension",
147 | "homepage": "https://symfony.com",
148 | "keywords": [
149 | "compatibility",
150 | "mbstring",
151 | "polyfill",
152 | "portable",
153 | "shim"
154 | ],
155 | "support": {
156 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0"
157 | },
158 | "funding": [
159 | {
160 | "url": "https://symfony.com/sponsor",
161 | "type": "custom"
162 | },
163 | {
164 | "url": "https://github.com/fabpot",
165 | "type": "github"
166 | },
167 | {
168 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
169 | "type": "tidelift"
170 | }
171 | ],
172 | "time": "2021-11-30T18:21:41+00:00"
173 | },
174 | {
175 | "name": "twig/twig",
176 | "version": "v3.3.9",
177 | "source": {
178 | "type": "git",
179 | "url": "https://github.com/twigphp/Twig.git",
180 | "reference": "6ff9b0e440fa66f97f207e181c41340ddfa5683d"
181 | },
182 | "dist": {
183 | "type": "zip",
184 | "url": "https://api.github.com/repos/twigphp/Twig/zipball/6ff9b0e440fa66f97f207e181c41340ddfa5683d",
185 | "reference": "6ff9b0e440fa66f97f207e181c41340ddfa5683d",
186 | "shasum": ""
187 | },
188 | "require": {
189 | "php": ">=7.2.5",
190 | "symfony/polyfill-ctype": "^1.8",
191 | "symfony/polyfill-mbstring": "^1.3"
192 | },
193 | "require-dev": {
194 | "psr/container": "^1.0",
195 | "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0"
196 | },
197 | "type": "library",
198 | "extra": {
199 | "branch-alias": {
200 | "dev-master": "3.3-dev"
201 | }
202 | },
203 | "autoload": {
204 | "psr-4": {
205 | "Twig\\": "src/"
206 | }
207 | },
208 | "notification-url": "https://packagist.org/downloads/",
209 | "license": [
210 | "BSD-3-Clause"
211 | ],
212 | "authors": [
213 | {
214 | "name": "Fabien Potencier",
215 | "email": "fabien@symfony.com",
216 | "homepage": "http://fabien.potencier.org",
217 | "role": "Lead Developer"
218 | },
219 | {
220 | "name": "Twig Team",
221 | "role": "Contributors"
222 | },
223 | {
224 | "name": "Armin Ronacher",
225 | "email": "armin.ronacher@active-4.com",
226 | "role": "Project Founder"
227 | }
228 | ],
229 | "description": "Twig, the flexible, fast, and secure template language for PHP",
230 | "homepage": "https://twig.symfony.com",
231 | "keywords": [
232 | "templating"
233 | ],
234 | "support": {
235 | "issues": "https://github.com/twigphp/Twig/issues",
236 | "source": "https://github.com/twigphp/Twig/tree/v3.3.9"
237 | },
238 | "funding": [
239 | {
240 | "url": "https://github.com/fabpot",
241 | "type": "github"
242 | },
243 | {
244 | "url": "https://tidelift.com/funding/github/packagist/twig/twig",
245 | "type": "tidelift"
246 | }
247 | ],
248 | "time": "2022-03-25T09:37:52+00:00"
249 | }
250 | ],
251 | "packages-dev": [
252 | {
253 | "name": "amphp/amp",
254 | "version": "v2.6.2",
255 | "source": {
256 | "type": "git",
257 | "url": "https://github.com/amphp/amp.git",
258 | "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb"
259 | },
260 | "dist": {
261 | "type": "zip",
262 | "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb",
263 | "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb",
264 | "shasum": ""
265 | },
266 | "require": {
267 | "php": ">=7.1"
268 | },
269 | "require-dev": {
270 | "amphp/php-cs-fixer-config": "dev-master",
271 | "amphp/phpunit-util": "^1",
272 | "ext-json": "*",
273 | "jetbrains/phpstorm-stubs": "^2019.3",
274 | "phpunit/phpunit": "^7 | ^8 | ^9",
275 | "psalm/phar": "^3.11@dev",
276 | "react/promise": "^2"
277 | },
278 | "type": "library",
279 | "extra": {
280 | "branch-alias": {
281 | "dev-master": "2.x-dev"
282 | }
283 | },
284 | "autoload": {
285 | "files": [
286 | "lib/functions.php",
287 | "lib/Internal/functions.php"
288 | ],
289 | "psr-4": {
290 | "Amp\\": "lib"
291 | }
292 | },
293 | "notification-url": "https://packagist.org/downloads/",
294 | "license": [
295 | "MIT"
296 | ],
297 | "authors": [
298 | {
299 | "name": "Daniel Lowrey",
300 | "email": "rdlowrey@php.net"
301 | },
302 | {
303 | "name": "Aaron Piotrowski",
304 | "email": "aaron@trowski.com"
305 | },
306 | {
307 | "name": "Bob Weinand",
308 | "email": "bobwei9@hotmail.com"
309 | },
310 | {
311 | "name": "Niklas Keller",
312 | "email": "me@kelunik.com"
313 | }
314 | ],
315 | "description": "A non-blocking concurrency framework for PHP applications.",
316 | "homepage": "https://amphp.org/amp",
317 | "keywords": [
318 | "async",
319 | "asynchronous",
320 | "awaitable",
321 | "concurrency",
322 | "event",
323 | "event-loop",
324 | "future",
325 | "non-blocking",
326 | "promise"
327 | ],
328 | "support": {
329 | "irc": "irc://irc.freenode.org/amphp",
330 | "issues": "https://github.com/amphp/amp/issues",
331 | "source": "https://github.com/amphp/amp/tree/v2.6.2"
332 | },
333 | "funding": [
334 | {
335 | "url": "https://github.com/amphp",
336 | "type": "github"
337 | }
338 | ],
339 | "time": "2022-02-20T17:52:18+00:00"
340 | },
341 | {
342 | "name": "amphp/byte-stream",
343 | "version": "v1.8.1",
344 | "source": {
345 | "type": "git",
346 | "url": "https://github.com/amphp/byte-stream.git",
347 | "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd"
348 | },
349 | "dist": {
350 | "type": "zip",
351 | "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd",
352 | "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd",
353 | "shasum": ""
354 | },
355 | "require": {
356 | "amphp/amp": "^2",
357 | "php": ">=7.1"
358 | },
359 | "require-dev": {
360 | "amphp/php-cs-fixer-config": "dev-master",
361 | "amphp/phpunit-util": "^1.4",
362 | "friendsofphp/php-cs-fixer": "^2.3",
363 | "jetbrains/phpstorm-stubs": "^2019.3",
364 | "phpunit/phpunit": "^6 || ^7 || ^8",
365 | "psalm/phar": "^3.11.4"
366 | },
367 | "type": "library",
368 | "extra": {
369 | "branch-alias": {
370 | "dev-master": "1.x-dev"
371 | }
372 | },
373 | "autoload": {
374 | "files": [
375 | "lib/functions.php"
376 | ],
377 | "psr-4": {
378 | "Amp\\ByteStream\\": "lib"
379 | }
380 | },
381 | "notification-url": "https://packagist.org/downloads/",
382 | "license": [
383 | "MIT"
384 | ],
385 | "authors": [
386 | {
387 | "name": "Aaron Piotrowski",
388 | "email": "aaron@trowski.com"
389 | },
390 | {
391 | "name": "Niklas Keller",
392 | "email": "me@kelunik.com"
393 | }
394 | ],
395 | "description": "A stream abstraction to make working with non-blocking I/O simple.",
396 | "homepage": "http://amphp.org/byte-stream",
397 | "keywords": [
398 | "amp",
399 | "amphp",
400 | "async",
401 | "io",
402 | "non-blocking",
403 | "stream"
404 | ],
405 | "support": {
406 | "irc": "irc://irc.freenode.org/amphp",
407 | "issues": "https://github.com/amphp/byte-stream/issues",
408 | "source": "https://github.com/amphp/byte-stream/tree/v1.8.1"
409 | },
410 | "funding": [
411 | {
412 | "url": "https://github.com/amphp",
413 | "type": "github"
414 | }
415 | ],
416 | "time": "2021-03-30T17:13:30+00:00"
417 | },
418 | {
419 | "name": "amphp/parallel",
420 | "version": "v1.4.1",
421 | "source": {
422 | "type": "git",
423 | "url": "https://github.com/amphp/parallel.git",
424 | "reference": "fbc128383c1ffb3823866f71b88d8c4722a25ce9"
425 | },
426 | "dist": {
427 | "type": "zip",
428 | "url": "https://api.github.com/repos/amphp/parallel/zipball/fbc128383c1ffb3823866f71b88d8c4722a25ce9",
429 | "reference": "fbc128383c1ffb3823866f71b88d8c4722a25ce9",
430 | "shasum": ""
431 | },
432 | "require": {
433 | "amphp/amp": "^2",
434 | "amphp/byte-stream": "^1.6.1",
435 | "amphp/parser": "^1",
436 | "amphp/process": "^1",
437 | "amphp/serialization": "^1",
438 | "amphp/sync": "^1.0.1",
439 | "php": ">=7.1"
440 | },
441 | "require-dev": {
442 | "amphp/php-cs-fixer-config": "dev-master",
443 | "amphp/phpunit-util": "^1.1",
444 | "phpunit/phpunit": "^8 || ^7"
445 | },
446 | "type": "library",
447 | "autoload": {
448 | "files": [
449 | "lib/Context/functions.php",
450 | "lib/Sync/functions.php",
451 | "lib/Worker/functions.php"
452 | ],
453 | "psr-4": {
454 | "Amp\\Parallel\\": "lib"
455 | }
456 | },
457 | "notification-url": "https://packagist.org/downloads/",
458 | "license": [
459 | "MIT"
460 | ],
461 | "authors": [
462 | {
463 | "name": "Aaron Piotrowski",
464 | "email": "aaron@trowski.com"
465 | },
466 | {
467 | "name": "Stephen Coakley",
468 | "email": "me@stephencoakley.com"
469 | }
470 | ],
471 | "description": "Parallel processing component for Amp.",
472 | "homepage": "https://github.com/amphp/parallel",
473 | "keywords": [
474 | "async",
475 | "asynchronous",
476 | "concurrent",
477 | "multi-processing",
478 | "multi-threading"
479 | ],
480 | "support": {
481 | "issues": "https://github.com/amphp/parallel/issues",
482 | "source": "https://github.com/amphp/parallel/tree/v1.4.1"
483 | },
484 | "funding": [
485 | {
486 | "url": "https://github.com/amphp",
487 | "type": "github"
488 | }
489 | ],
490 | "time": "2021-10-25T19:16:02+00:00"
491 | },
492 | {
493 | "name": "amphp/parallel-functions",
494 | "version": "v1.1.0",
495 | "source": {
496 | "type": "git",
497 | "url": "https://github.com/amphp/parallel-functions.git",
498 | "reference": "04e92fcacfc921a56dfe12c23b3265e62593a7cb"
499 | },
500 | "dist": {
501 | "type": "zip",
502 | "url": "https://api.github.com/repos/amphp/parallel-functions/zipball/04e92fcacfc921a56dfe12c23b3265e62593a7cb",
503 | "reference": "04e92fcacfc921a56dfe12c23b3265e62593a7cb",
504 | "shasum": ""
505 | },
506 | "require": {
507 | "amphp/amp": "^2.0.3",
508 | "amphp/parallel": "^1.4",
509 | "amphp/serialization": "^1.0",
510 | "laravel/serializable-closure": "^1.0",
511 | "php": ">=7.4"
512 | },
513 | "require-dev": {
514 | "amphp/php-cs-fixer-config": "v2.x-dev",
515 | "amphp/phpunit-util": "^2.0",
516 | "phpunit/phpunit": "^9.5.11"
517 | },
518 | "type": "library",
519 | "autoload": {
520 | "files": [
521 | "src/functions.php"
522 | ],
523 | "psr-4": {
524 | "Amp\\ParallelFunctions\\": "src"
525 | }
526 | },
527 | "notification-url": "https://packagist.org/downloads/",
528 | "license": [
529 | "MIT"
530 | ],
531 | "authors": [
532 | {
533 | "name": "Niklas Keller",
534 | "email": "me@kelunik.com"
535 | }
536 | ],
537 | "description": "Parallel processing made simple.",
538 | "support": {
539 | "issues": "https://github.com/amphp/parallel-functions/issues",
540 | "source": "https://github.com/amphp/parallel-functions/tree/v1.1.0"
541 | },
542 | "funding": [
543 | {
544 | "url": "https://github.com/amphp",
545 | "type": "github"
546 | }
547 | ],
548 | "time": "2022-02-03T19:32:41+00:00"
549 | },
550 | {
551 | "name": "amphp/parser",
552 | "version": "v1.0.0",
553 | "source": {
554 | "type": "git",
555 | "url": "https://github.com/amphp/parser.git",
556 | "reference": "f83e68f03d5b8e8e0365b8792985a7f341c57ae1"
557 | },
558 | "dist": {
559 | "type": "zip",
560 | "url": "https://api.github.com/repos/amphp/parser/zipball/f83e68f03d5b8e8e0365b8792985a7f341c57ae1",
561 | "reference": "f83e68f03d5b8e8e0365b8792985a7f341c57ae1",
562 | "shasum": ""
563 | },
564 | "require": {
565 | "php": ">=7"
566 | },
567 | "require-dev": {
568 | "friendsofphp/php-cs-fixer": "^2.3",
569 | "phpunit/phpunit": "^6"
570 | },
571 | "type": "library",
572 | "autoload": {
573 | "psr-4": {
574 | "Amp\\Parser\\": "lib"
575 | }
576 | },
577 | "notification-url": "https://packagist.org/downloads/",
578 | "license": [
579 | "MIT"
580 | ],
581 | "authors": [
582 | {
583 | "name": "Niklas Keller",
584 | "email": "me@kelunik.com"
585 | },
586 | {
587 | "name": "Aaron Piotrowski",
588 | "email": "aaron@trowski.com"
589 | }
590 | ],
591 | "description": "A generator parser to make streaming parsers simple.",
592 | "homepage": "https://github.com/amphp/parser",
593 | "keywords": [
594 | "async",
595 | "non-blocking",
596 | "parser",
597 | "stream"
598 | ],
599 | "support": {
600 | "issues": "https://github.com/amphp/parser/issues",
601 | "source": "https://github.com/amphp/parser/tree/is-valid"
602 | },
603 | "time": "2017-06-06T05:29:10+00:00"
604 | },
605 | {
606 | "name": "amphp/process",
607 | "version": "v1.1.3",
608 | "source": {
609 | "type": "git",
610 | "url": "https://github.com/amphp/process.git",
611 | "reference": "f09e3ed3b0a953ccbfff1140f12be4a884f0aa83"
612 | },
613 | "dist": {
614 | "type": "zip",
615 | "url": "https://api.github.com/repos/amphp/process/zipball/f09e3ed3b0a953ccbfff1140f12be4a884f0aa83",
616 | "reference": "f09e3ed3b0a953ccbfff1140f12be4a884f0aa83",
617 | "shasum": ""
618 | },
619 | "require": {
620 | "amphp/amp": "^2",
621 | "amphp/byte-stream": "^1.4",
622 | "php": ">=7"
623 | },
624 | "require-dev": {
625 | "amphp/php-cs-fixer-config": "dev-master",
626 | "amphp/phpunit-util": "^1",
627 | "phpunit/phpunit": "^6"
628 | },
629 | "type": "library",
630 | "autoload": {
631 | "files": [
632 | "lib/functions.php"
633 | ],
634 | "psr-4": {
635 | "Amp\\Process\\": "lib"
636 | }
637 | },
638 | "notification-url": "https://packagist.org/downloads/",
639 | "license": [
640 | "MIT"
641 | ],
642 | "authors": [
643 | {
644 | "name": "Bob Weinand",
645 | "email": "bobwei9@hotmail.com"
646 | },
647 | {
648 | "name": "Aaron Piotrowski",
649 | "email": "aaron@trowski.com"
650 | },
651 | {
652 | "name": "Niklas Keller",
653 | "email": "me@kelunik.com"
654 | }
655 | ],
656 | "description": "Asynchronous process manager.",
657 | "homepage": "https://github.com/amphp/process",
658 | "support": {
659 | "issues": "https://github.com/amphp/process/issues",
660 | "source": "https://github.com/amphp/process/tree/v1.1.3"
661 | },
662 | "funding": [
663 | {
664 | "url": "https://github.com/amphp",
665 | "type": "github"
666 | }
667 | ],
668 | "time": "2021-12-17T19:09:33+00:00"
669 | },
670 | {
671 | "name": "amphp/serialization",
672 | "version": "v1.0.0",
673 | "source": {
674 | "type": "git",
675 | "url": "https://github.com/amphp/serialization.git",
676 | "reference": "693e77b2fb0b266c3c7d622317f881de44ae94a1"
677 | },
678 | "dist": {
679 | "type": "zip",
680 | "url": "https://api.github.com/repos/amphp/serialization/zipball/693e77b2fb0b266c3c7d622317f881de44ae94a1",
681 | "reference": "693e77b2fb0b266c3c7d622317f881de44ae94a1",
682 | "shasum": ""
683 | },
684 | "require": {
685 | "php": ">=7.1"
686 | },
687 | "require-dev": {
688 | "amphp/php-cs-fixer-config": "dev-master",
689 | "phpunit/phpunit": "^9 || ^8 || ^7"
690 | },
691 | "type": "library",
692 | "autoload": {
693 | "files": [
694 | "src/functions.php"
695 | ],
696 | "psr-4": {
697 | "Amp\\Serialization\\": "src"
698 | }
699 | },
700 | "notification-url": "https://packagist.org/downloads/",
701 | "license": [
702 | "MIT"
703 | ],
704 | "authors": [
705 | {
706 | "name": "Aaron Piotrowski",
707 | "email": "aaron@trowski.com"
708 | },
709 | {
710 | "name": "Niklas Keller",
711 | "email": "me@kelunik.com"
712 | }
713 | ],
714 | "description": "Serialization tools for IPC and data storage in PHP.",
715 | "homepage": "https://github.com/amphp/serialization",
716 | "keywords": [
717 | "async",
718 | "asynchronous",
719 | "serialization",
720 | "serialize"
721 | ],
722 | "support": {
723 | "issues": "https://github.com/amphp/serialization/issues",
724 | "source": "https://github.com/amphp/serialization/tree/master"
725 | },
726 | "time": "2020-03-25T21:39:07+00:00"
727 | },
728 | {
729 | "name": "amphp/sync",
730 | "version": "v1.4.2",
731 | "source": {
732 | "type": "git",
733 | "url": "https://github.com/amphp/sync.git",
734 | "reference": "85ab06764f4f36d63b1356b466df6111cf4b89cf"
735 | },
736 | "dist": {
737 | "type": "zip",
738 | "url": "https://api.github.com/repos/amphp/sync/zipball/85ab06764f4f36d63b1356b466df6111cf4b89cf",
739 | "reference": "85ab06764f4f36d63b1356b466df6111cf4b89cf",
740 | "shasum": ""
741 | },
742 | "require": {
743 | "amphp/amp": "^2.2",
744 | "php": ">=7.1"
745 | },
746 | "require-dev": {
747 | "amphp/php-cs-fixer-config": "dev-master",
748 | "amphp/phpunit-util": "^1.1",
749 | "phpunit/phpunit": "^9 || ^8 || ^7"
750 | },
751 | "type": "library",
752 | "autoload": {
753 | "files": [
754 | "src/functions.php",
755 | "src/ConcurrentIterator/functions.php"
756 | ],
757 | "psr-4": {
758 | "Amp\\Sync\\": "src"
759 | }
760 | },
761 | "notification-url": "https://packagist.org/downloads/",
762 | "license": [
763 | "MIT"
764 | ],
765 | "authors": [
766 | {
767 | "name": "Aaron Piotrowski",
768 | "email": "aaron@trowski.com"
769 | },
770 | {
771 | "name": "Stephen Coakley",
772 | "email": "me@stephencoakley.com"
773 | }
774 | ],
775 | "description": "Mutex, Semaphore, and other synchronization tools for Amp.",
776 | "homepage": "https://github.com/amphp/sync",
777 | "keywords": [
778 | "async",
779 | "asynchronous",
780 | "mutex",
781 | "semaphore",
782 | "synchronization"
783 | ],
784 | "support": {
785 | "issues": "https://github.com/amphp/sync/issues",
786 | "source": "https://github.com/amphp/sync/tree/v1.4.2"
787 | },
788 | "funding": [
789 | {
790 | "url": "https://github.com/amphp",
791 | "type": "github"
792 | }
793 | ],
794 | "time": "2021-10-25T18:29:10+00:00"
795 | },
796 | {
797 | "name": "composer/pcre",
798 | "version": "3.0.0",
799 | "source": {
800 | "type": "git",
801 | "url": "https://github.com/composer/pcre.git",
802 | "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd"
803 | },
804 | "dist": {
805 | "type": "zip",
806 | "url": "https://api.github.com/repos/composer/pcre/zipball/e300eb6c535192decd27a85bc72a9290f0d6b3bd",
807 | "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd",
808 | "shasum": ""
809 | },
810 | "require": {
811 | "php": "^7.4 || ^8.0"
812 | },
813 | "require-dev": {
814 | "phpstan/phpstan": "^1.3",
815 | "phpstan/phpstan-strict-rules": "^1.1",
816 | "symfony/phpunit-bridge": "^5"
817 | },
818 | "type": "library",
819 | "extra": {
820 | "branch-alias": {
821 | "dev-main": "3.x-dev"
822 | }
823 | },
824 | "autoload": {
825 | "psr-4": {
826 | "Composer\\Pcre\\": "src"
827 | }
828 | },
829 | "notification-url": "https://packagist.org/downloads/",
830 | "license": [
831 | "MIT"
832 | ],
833 | "authors": [
834 | {
835 | "name": "Jordi Boggiano",
836 | "email": "j.boggiano@seld.be",
837 | "homepage": "http://seld.be"
838 | }
839 | ],
840 | "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
841 | "keywords": [
842 | "PCRE",
843 | "preg",
844 | "regex",
845 | "regular expression"
846 | ],
847 | "support": {
848 | "issues": "https://github.com/composer/pcre/issues",
849 | "source": "https://github.com/composer/pcre/tree/3.0.0"
850 | },
851 | "funding": [
852 | {
853 | "url": "https://packagist.com",
854 | "type": "custom"
855 | },
856 | {
857 | "url": "https://github.com/composer",
858 | "type": "github"
859 | },
860 | {
861 | "url": "https://tidelift.com/funding/github/packagist/composer/composer",
862 | "type": "tidelift"
863 | }
864 | ],
865 | "time": "2022-02-25T20:21:48+00:00"
866 | },
867 | {
868 | "name": "composer/xdebug-handler",
869 | "version": "3.0.3",
870 | "source": {
871 | "type": "git",
872 | "url": "https://github.com/composer/xdebug-handler.git",
873 | "reference": "ced299686f41dce890debac69273b47ffe98a40c"
874 | },
875 | "dist": {
876 | "type": "zip",
877 | "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c",
878 | "reference": "ced299686f41dce890debac69273b47ffe98a40c",
879 | "shasum": ""
880 | },
881 | "require": {
882 | "composer/pcre": "^1 || ^2 || ^3",
883 | "php": "^7.2.5 || ^8.0",
884 | "psr/log": "^1 || ^2 || ^3"
885 | },
886 | "require-dev": {
887 | "phpstan/phpstan": "^1.0",
888 | "phpstan/phpstan-strict-rules": "^1.1",
889 | "symfony/phpunit-bridge": "^6.0"
890 | },
891 | "type": "library",
892 | "autoload": {
893 | "psr-4": {
894 | "Composer\\XdebugHandler\\": "src"
895 | }
896 | },
897 | "notification-url": "https://packagist.org/downloads/",
898 | "license": [
899 | "MIT"
900 | ],
901 | "authors": [
902 | {
903 | "name": "John Stevenson",
904 | "email": "john-stevenson@blueyonder.co.uk"
905 | }
906 | ],
907 | "description": "Restarts a process without Xdebug.",
908 | "keywords": [
909 | "Xdebug",
910 | "performance"
911 | ],
912 | "support": {
913 | "irc": "irc://irc.freenode.org/composer",
914 | "issues": "https://github.com/composer/xdebug-handler/issues",
915 | "source": "https://github.com/composer/xdebug-handler/tree/3.0.3"
916 | },
917 | "funding": [
918 | {
919 | "url": "https://packagist.com",
920 | "type": "custom"
921 | },
922 | {
923 | "url": "https://github.com/composer",
924 | "type": "github"
925 | },
926 | {
927 | "url": "https://tidelift.com/funding/github/packagist/composer/composer",
928 | "type": "tidelift"
929 | }
930 | ],
931 | "time": "2022-02-25T21:32:43+00:00"
932 | },
933 | {
934 | "name": "doctrine/collections",
935 | "version": "1.6.8",
936 | "source": {
937 | "type": "git",
938 | "url": "https://github.com/doctrine/collections.git",
939 | "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af"
940 | },
941 | "dist": {
942 | "type": "zip",
943 | "url": "https://api.github.com/repos/doctrine/collections/zipball/1958a744696c6bb3bb0d28db2611dc11610e78af",
944 | "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af",
945 | "shasum": ""
946 | },
947 | "require": {
948 | "php": "^7.1.3 || ^8.0"
949 | },
950 | "require-dev": {
951 | "doctrine/coding-standard": "^9.0",
952 | "phpstan/phpstan": "^0.12",
953 | "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5",
954 | "vimeo/psalm": "^4.2.1"
955 | },
956 | "type": "library",
957 | "autoload": {
958 | "psr-4": {
959 | "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections"
960 | }
961 | },
962 | "notification-url": "https://packagist.org/downloads/",
963 | "license": [
964 | "MIT"
965 | ],
966 | "authors": [
967 | {
968 | "name": "Guilherme Blanco",
969 | "email": "guilhermeblanco@gmail.com"
970 | },
971 | {
972 | "name": "Roman Borschel",
973 | "email": "roman@code-factory.org"
974 | },
975 | {
976 | "name": "Benjamin Eberlei",
977 | "email": "kontakt@beberlei.de"
978 | },
979 | {
980 | "name": "Jonathan Wage",
981 | "email": "jonwage@gmail.com"
982 | },
983 | {
984 | "name": "Johannes Schmitt",
985 | "email": "schmittjoh@gmail.com"
986 | }
987 | ],
988 | "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.",
989 | "homepage": "https://www.doctrine-project.org/projects/collections.html",
990 | "keywords": [
991 | "array",
992 | "collections",
993 | "iterators",
994 | "php"
995 | ],
996 | "support": {
997 | "issues": "https://github.com/doctrine/collections/issues",
998 | "source": "https://github.com/doctrine/collections/tree/1.6.8"
999 | },
1000 | "time": "2021-08-10T18:51:53+00:00"
1001 | },
1002 | {
1003 | "name": "filp/whoops",
1004 | "version": "2.14.5",
1005 | "source": {
1006 | "type": "git",
1007 | "url": "https://github.com/filp/whoops.git",
1008 | "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc"
1009 | },
1010 | "dist": {
1011 | "type": "zip",
1012 | "url": "https://api.github.com/repos/filp/whoops/zipball/a63e5e8f26ebbebf8ed3c5c691637325512eb0dc",
1013 | "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc",
1014 | "shasum": ""
1015 | },
1016 | "require": {
1017 | "php": "^5.5.9 || ^7.0 || ^8.0",
1018 | "psr/log": "^1.0.1 || ^2.0 || ^3.0"
1019 | },
1020 | "require-dev": {
1021 | "mockery/mockery": "^0.9 || ^1.0",
1022 | "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3",
1023 | "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0"
1024 | },
1025 | "suggest": {
1026 | "symfony/var-dumper": "Pretty print complex values better with var-dumper available",
1027 | "whoops/soap": "Formats errors as SOAP responses"
1028 | },
1029 | "type": "library",
1030 | "extra": {
1031 | "branch-alias": {
1032 | "dev-master": "2.7-dev"
1033 | }
1034 | },
1035 | "autoload": {
1036 | "psr-4": {
1037 | "Whoops\\": "src/Whoops/"
1038 | }
1039 | },
1040 | "notification-url": "https://packagist.org/downloads/",
1041 | "license": [
1042 | "MIT"
1043 | ],
1044 | "authors": [
1045 | {
1046 | "name": "Filipe Dobreira",
1047 | "homepage": "https://github.com/filp",
1048 | "role": "Developer"
1049 | }
1050 | ],
1051 | "description": "php error handling for cool kids",
1052 | "homepage": "https://filp.github.io/whoops/",
1053 | "keywords": [
1054 | "error",
1055 | "exception",
1056 | "handling",
1057 | "library",
1058 | "throwable",
1059 | "whoops"
1060 | ],
1061 | "support": {
1062 | "issues": "https://github.com/filp/whoops/issues",
1063 | "source": "https://github.com/filp/whoops/tree/2.14.5"
1064 | },
1065 | "funding": [
1066 | {
1067 | "url": "https://github.com/denis-sokolov",
1068 | "type": "github"
1069 | }
1070 | ],
1071 | "time": "2022-01-07T12:00:00+00:00"
1072 | },
1073 | {
1074 | "name": "gitonomy/gitlib",
1075 | "version": "v1.3.4",
1076 | "source": {
1077 | "type": "git",
1078 | "url": "https://github.com/gitonomy/gitlib.git",
1079 | "reference": "3c2f67a2fa6e7b26dbc9b9d0ca272ed33ba5895e"
1080 | },
1081 | "dist": {
1082 | "type": "zip",
1083 | "url": "https://api.github.com/repos/gitonomy/gitlib/zipball/3c2f67a2fa6e7b26dbc9b9d0ca272ed33ba5895e",
1084 | "reference": "3c2f67a2fa6e7b26dbc9b9d0ca272ed33ba5895e",
1085 | "shasum": ""
1086 | },
1087 | "require": {
1088 | "ext-pcre": "*",
1089 | "php": "^5.6 || ^7.0 || ^8.0",
1090 | "symfony/polyfill-mbstring": "^1.7",
1091 | "symfony/process": "^3.4 || ^4.4 || ^5.0 || ^6.0"
1092 | },
1093 | "require-dev": {
1094 | "ext-fileinfo": "*",
1095 | "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.20 || ^9.5.9",
1096 | "psr/log": "^1.0"
1097 | },
1098 | "suggest": {
1099 | "ext-fileinfo": "Required to determine the mimetype of a blob",
1100 | "psr/log": "Required to use loggers for reporting of execution"
1101 | },
1102 | "type": "library",
1103 | "autoload": {
1104 | "psr-4": {
1105 | "Gitonomy\\Git\\": "src/Gitonomy/Git/"
1106 | }
1107 | },
1108 | "notification-url": "https://packagist.org/downloads/",
1109 | "license": [
1110 | "MIT"
1111 | ],
1112 | "authors": [
1113 | {
1114 | "name": "Graham Campbell",
1115 | "email": "hello@gjcampbell.co.uk",
1116 | "homepage": "https://github.com/GrahamCampbell"
1117 | },
1118 | {
1119 | "name": "Julien Didier",
1120 | "email": "genzo.wm@gmail.com",
1121 | "homepage": "https://github.com/juliendidier"
1122 | },
1123 | {
1124 | "name": "Grégoire Pineau",
1125 | "email": "lyrixx@lyrixx.info",
1126 | "homepage": "https://github.com/lyrixx"
1127 | },
1128 | {
1129 | "name": "Alexandre Salomé",
1130 | "email": "alexandre.salome@gmail.com",
1131 | "homepage": "https://github.com/alexandresalome"
1132 | }
1133 | ],
1134 | "description": "Library for accessing git",
1135 | "support": {
1136 | "issues": "https://github.com/gitonomy/gitlib/issues",
1137 | "source": "https://github.com/gitonomy/gitlib/tree/v1.3.4"
1138 | },
1139 | "funding": [
1140 | {
1141 | "url": "https://tidelift.com/funding/github/packagist/gitonomy/gitlib",
1142 | "type": "tidelift"
1143 | }
1144 | ],
1145 | "time": "2022-02-14T09:07:07+00:00"
1146 | },
1147 | {
1148 | "name": "laravel/serializable-closure",
1149 | "version": "v1.1.1",
1150 | "source": {
1151 | "type": "git",
1152 | "url": "https://github.com/laravel/serializable-closure.git",
1153 | "reference": "9e4b005daa20b0c161f3845040046dc9ddc1d74e"
1154 | },
1155 | "dist": {
1156 | "type": "zip",
1157 | "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/9e4b005daa20b0c161f3845040046dc9ddc1d74e",
1158 | "reference": "9e4b005daa20b0c161f3845040046dc9ddc1d74e",
1159 | "shasum": ""
1160 | },
1161 | "require": {
1162 | "php": "^7.3|^8.0"
1163 | },
1164 | "require-dev": {
1165 | "pestphp/pest": "^1.18",
1166 | "phpstan/phpstan": "^0.12.98",
1167 | "symfony/var-dumper": "^5.3"
1168 | },
1169 | "type": "library",
1170 | "extra": {
1171 | "branch-alias": {
1172 | "dev-master": "1.x-dev"
1173 | }
1174 | },
1175 | "autoload": {
1176 | "psr-4": {
1177 | "Laravel\\SerializableClosure\\": "src/"
1178 | }
1179 | },
1180 | "notification-url": "https://packagist.org/downloads/",
1181 | "license": [
1182 | "MIT"
1183 | ],
1184 | "authors": [
1185 | {
1186 | "name": "Taylor Otwell",
1187 | "email": "taylor@laravel.com"
1188 | },
1189 | {
1190 | "name": "Nuno Maduro",
1191 | "email": "nuno@laravel.com"
1192 | }
1193 | ],
1194 | "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.",
1195 | "keywords": [
1196 | "closure",
1197 | "laravel",
1198 | "serializable"
1199 | ],
1200 | "support": {
1201 | "issues": "https://github.com/laravel/serializable-closure/issues",
1202 | "source": "https://github.com/laravel/serializable-closure"
1203 | },
1204 | "time": "2022-02-11T19:23:53+00:00"
1205 | },
1206 | {
1207 | "name": "monolog/monolog",
1208 | "version": "2.4.0",
1209 | "source": {
1210 | "type": "git",
1211 | "url": "https://github.com/Seldaek/monolog.git",
1212 | "reference": "d7fd7450628561ba697b7097d86db72662f54aef"
1213 | },
1214 | "dist": {
1215 | "type": "zip",
1216 | "url": "https://api.github.com/repos/Seldaek/monolog/zipball/d7fd7450628561ba697b7097d86db72662f54aef",
1217 | "reference": "d7fd7450628561ba697b7097d86db72662f54aef",
1218 | "shasum": ""
1219 | },
1220 | "require": {
1221 | "php": ">=7.2",
1222 | "psr/log": "^1.0.1 || ^2.0 || ^3.0"
1223 | },
1224 | "provide": {
1225 | "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0"
1226 | },
1227 | "require-dev": {
1228 | "aws/aws-sdk-php": "^2.4.9 || ^3.0",
1229 | "doctrine/couchdb": "~1.0@dev",
1230 | "elasticsearch/elasticsearch": "^7",
1231 | "graylog2/gelf-php": "^1.4.2",
1232 | "mongodb/mongodb": "^1.8",
1233 | "php-amqplib/php-amqplib": "~2.4 || ^3",
1234 | "php-console/php-console": "^3.1.3",
1235 | "phpspec/prophecy": "^1.6.1",
1236 | "phpstan/phpstan": "^0.12.91",
1237 | "phpunit/phpunit": "^8.5",
1238 | "predis/predis": "^1.1",
1239 | "rollbar/rollbar": "^1.3 || ^2 || ^3",
1240 | "ruflin/elastica": ">=0.90@dev",
1241 | "swiftmailer/swiftmailer": "^5.3|^6.0"
1242 | },
1243 | "suggest": {
1244 | "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
1245 | "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
1246 | "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
1247 | "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
1248 | "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler",
1249 | "ext-mbstring": "Allow to work properly with unicode symbols",
1250 | "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
1251 | "ext-openssl": "Required to send log messages using SSL",
1252 | "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)",
1253 | "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
1254 | "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)",
1255 | "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
1256 | "php-console/php-console": "Allow sending log messages to Google Chrome",
1257 | "rollbar/rollbar": "Allow sending log messages to Rollbar",
1258 | "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
1259 | },
1260 | "type": "library",
1261 | "extra": {
1262 | "branch-alias": {
1263 | "dev-main": "2.x-dev"
1264 | }
1265 | },
1266 | "autoload": {
1267 | "psr-4": {
1268 | "Monolog\\": "src/Monolog"
1269 | }
1270 | },
1271 | "notification-url": "https://packagist.org/downloads/",
1272 | "license": [
1273 | "MIT"
1274 | ],
1275 | "authors": [
1276 | {
1277 | "name": "Jordi Boggiano",
1278 | "email": "j.boggiano@seld.be",
1279 | "homepage": "https://seld.be"
1280 | }
1281 | ],
1282 | "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
1283 | "homepage": "https://github.com/Seldaek/monolog",
1284 | "keywords": [
1285 | "log",
1286 | "logging",
1287 | "psr-3"
1288 | ],
1289 | "support": {
1290 | "issues": "https://github.com/Seldaek/monolog/issues",
1291 | "source": "https://github.com/Seldaek/monolog/tree/2.4.0"
1292 | },
1293 | "funding": [
1294 | {
1295 | "url": "https://github.com/Seldaek",
1296 | "type": "github"
1297 | },
1298 | {
1299 | "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
1300 | "type": "tidelift"
1301 | }
1302 | ],
1303 | "time": "2022-03-14T12:44:37+00:00"
1304 | },
1305 | {
1306 | "name": "ondram/ci-detector",
1307 | "version": "4.1.0",
1308 | "source": {
1309 | "type": "git",
1310 | "url": "https://github.com/OndraM/ci-detector.git",
1311 | "reference": "8a4b664e916df82ff26a44709942dfd593fa6f30"
1312 | },
1313 | "dist": {
1314 | "type": "zip",
1315 | "url": "https://api.github.com/repos/OndraM/ci-detector/zipball/8a4b664e916df82ff26a44709942dfd593fa6f30",
1316 | "reference": "8a4b664e916df82ff26a44709942dfd593fa6f30",
1317 | "shasum": ""
1318 | },
1319 | "require": {
1320 | "php": "^7.1 || ^8.0"
1321 | },
1322 | "require-dev": {
1323 | "ergebnis/composer-normalize": "^2.2",
1324 | "lmc/coding-standard": "^1.3 || ^2.1",
1325 | "php-parallel-lint/php-parallel-lint": "^1.2",
1326 | "phpstan/extension-installer": "^1.0.5",
1327 | "phpstan/phpstan": "^0.12.58",
1328 | "phpstan/phpstan-phpunit": "^0.12.16",
1329 | "phpunit/phpunit": "^7.1 || ^8.0 || ^9.0"
1330 | },
1331 | "type": "library",
1332 | "autoload": {
1333 | "psr-4": {
1334 | "OndraM\\CiDetector\\": "src/"
1335 | }
1336 | },
1337 | "notification-url": "https://packagist.org/downloads/",
1338 | "license": [
1339 | "MIT"
1340 | ],
1341 | "authors": [
1342 | {
1343 | "name": "Ondřej Machulda",
1344 | "email": "ondrej.machulda@gmail.com"
1345 | }
1346 | ],
1347 | "description": "Detect continuous integration environment and provide unified access to properties of current build",
1348 | "keywords": [
1349 | "CircleCI",
1350 | "Codeship",
1351 | "Wercker",
1352 | "adapter",
1353 | "appveyor",
1354 | "aws",
1355 | "aws codebuild",
1356 | "azure",
1357 | "azure devops",
1358 | "azure pipelines",
1359 | "bamboo",
1360 | "bitbucket",
1361 | "buddy",
1362 | "ci-info",
1363 | "codebuild",
1364 | "continuous integration",
1365 | "continuousphp",
1366 | "devops",
1367 | "drone",
1368 | "github",
1369 | "gitlab",
1370 | "interface",
1371 | "jenkins",
1372 | "pipelines",
1373 | "sourcehut",
1374 | "teamcity",
1375 | "travis"
1376 | ],
1377 | "support": {
1378 | "issues": "https://github.com/OndraM/ci-detector/issues",
1379 | "source": "https://github.com/OndraM/ci-detector/tree/4.1.0"
1380 | },
1381 | "time": "2021-04-14T09:16:52+00:00"
1382 | },
1383 | {
1384 | "name": "pdepend/pdepend",
1385 | "version": "2.10.3",
1386 | "source": {
1387 | "type": "git",
1388 | "url": "https://github.com/pdepend/pdepend.git",
1389 | "reference": "da3166a06b4a89915920a42444f707122a1584c9"
1390 | },
1391 | "dist": {
1392 | "type": "zip",
1393 | "url": "https://api.github.com/repos/pdepend/pdepend/zipball/da3166a06b4a89915920a42444f707122a1584c9",
1394 | "reference": "da3166a06b4a89915920a42444f707122a1584c9",
1395 | "shasum": ""
1396 | },
1397 | "require": {
1398 | "php": ">=5.3.7",
1399 | "symfony/config": "^2.3.0|^3|^4|^5|^6.0",
1400 | "symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0",
1401 | "symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0"
1402 | },
1403 | "require-dev": {
1404 | "easy-doc/easy-doc": "0.0.0|^1.2.3",
1405 | "gregwar/rst": "^1.0",
1406 | "phpunit/phpunit": "^4.8.36|^5.7.27",
1407 | "squizlabs/php_codesniffer": "^2.0.0"
1408 | },
1409 | "bin": [
1410 | "src/bin/pdepend"
1411 | ],
1412 | "type": "library",
1413 | "extra": {
1414 | "branch-alias": {
1415 | "dev-master": "2.x-dev"
1416 | }
1417 | },
1418 | "autoload": {
1419 | "psr-4": {
1420 | "PDepend\\": "src/main/php/PDepend"
1421 | }
1422 | },
1423 | "notification-url": "https://packagist.org/downloads/",
1424 | "license": [
1425 | "BSD-3-Clause"
1426 | ],
1427 | "description": "Official version of pdepend to be handled with Composer",
1428 | "support": {
1429 | "issues": "https://github.com/pdepend/pdepend/issues",
1430 | "source": "https://github.com/pdepend/pdepend/tree/2.10.3"
1431 | },
1432 | "funding": [
1433 | {
1434 | "url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend",
1435 | "type": "tidelift"
1436 | }
1437 | ],
1438 | "time": "2022-02-23T07:53:09+00:00"
1439 | },
1440 | {
1441 | "name": "phpmd/phpmd",
1442 | "version": "2.12.0",
1443 | "source": {
1444 | "type": "git",
1445 | "url": "https://github.com/phpmd/phpmd.git",
1446 | "reference": "c0b678ba71902f539c27c14332aa0ddcf14388ec"
1447 | },
1448 | "dist": {
1449 | "type": "zip",
1450 | "url": "https://api.github.com/repos/phpmd/phpmd/zipball/c0b678ba71902f539c27c14332aa0ddcf14388ec",
1451 | "reference": "c0b678ba71902f539c27c14332aa0ddcf14388ec",
1452 | "shasum": ""
1453 | },
1454 | "require": {
1455 | "composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0",
1456 | "ext-xml": "*",
1457 | "pdepend/pdepend": "^2.10.3",
1458 | "php": ">=5.3.9"
1459 | },
1460 | "require-dev": {
1461 | "easy-doc/easy-doc": "0.0.0 || ^1.3.2",
1462 | "ext-json": "*",
1463 | "ext-simplexml": "*",
1464 | "gregwar/rst": "^1.0",
1465 | "mikey179/vfsstream": "^1.6.8",
1466 | "phpunit/phpunit": "^4.8.36 || ^5.7.27",
1467 | "squizlabs/php_codesniffer": "^2.0"
1468 | },
1469 | "bin": [
1470 | "src/bin/phpmd"
1471 | ],
1472 | "type": "library",
1473 | "autoload": {
1474 | "psr-0": {
1475 | "PHPMD\\": "src/main/php"
1476 | }
1477 | },
1478 | "notification-url": "https://packagist.org/downloads/",
1479 | "license": [
1480 | "BSD-3-Clause"
1481 | ],
1482 | "authors": [
1483 | {
1484 | "name": "Manuel Pichler",
1485 | "email": "github@manuel-pichler.de",
1486 | "homepage": "https://github.com/manuelpichler",
1487 | "role": "Project Founder"
1488 | },
1489 | {
1490 | "name": "Marc Würth",
1491 | "email": "ravage@bluewin.ch",
1492 | "homepage": "https://github.com/ravage84",
1493 | "role": "Project Maintainer"
1494 | },
1495 | {
1496 | "name": "Other contributors",
1497 | "homepage": "https://github.com/phpmd/phpmd/graphs/contributors",
1498 | "role": "Contributors"
1499 | }
1500 | ],
1501 | "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.",
1502 | "homepage": "https://phpmd.org/",
1503 | "keywords": [
1504 | "mess detection",
1505 | "mess detector",
1506 | "pdepend",
1507 | "phpmd",
1508 | "pmd"
1509 | ],
1510 | "support": {
1511 | "irc": "irc://irc.freenode.org/phpmd",
1512 | "issues": "https://github.com/phpmd/phpmd/issues",
1513 | "source": "https://github.com/phpmd/phpmd/tree/2.12.0"
1514 | },
1515 | "funding": [
1516 | {
1517 | "url": "https://tidelift.com/funding/github/packagist/phpmd/phpmd",
1518 | "type": "tidelift"
1519 | }
1520 | ],
1521 | "time": "2022-03-24T13:33:01+00:00"
1522 | },
1523 | {
1524 | "name": "phpro/grumphp",
1525 | "version": "v1.9.0",
1526 | "source": {
1527 | "type": "git",
1528 | "url": "https://github.com/phpro/grumphp.git",
1529 | "reference": "f028914b2df38190589659014b12e6dcab14a3b9"
1530 | },
1531 | "dist": {
1532 | "type": "zip",
1533 | "url": "https://api.github.com/repos/phpro/grumphp/zipball/f028914b2df38190589659014b12e6dcab14a3b9",
1534 | "reference": "f028914b2df38190589659014b12e6dcab14a3b9",
1535 | "shasum": ""
1536 | },
1537 | "require": {
1538 | "amphp/amp": "^2.6",
1539 | "amphp/parallel": "^1.4",
1540 | "amphp/parallel-functions": "^1.1",
1541 | "composer-plugin-api": "~2.0",
1542 | "doctrine/collections": "^1.6.8",
1543 | "ext-json": "*",
1544 | "gitonomy/gitlib": "^1.3",
1545 | "laravel/serializable-closure": "^1.1",
1546 | "monolog/monolog": "^2.0",
1547 | "ondram/ci-detector": "^4.0",
1548 | "php": "^8.0",
1549 | "psr/container": "^1.1 || ^2.0",
1550 | "seld/jsonlint": "~1.8",
1551 | "symfony/config": "~5.3 || ~6.0",
1552 | "symfony/console": "~5.3 || ~6.0",
1553 | "symfony/dependency-injection": "~5.3 || ~6.0",
1554 | "symfony/dotenv": "~5.3 || ~6.0",
1555 | "symfony/event-dispatcher": "~5.3 || ~6.0",
1556 | "symfony/filesystem": "~5.3 || ~6.0",
1557 | "symfony/finder": "~5.3 || ~6.0",
1558 | "symfony/options-resolver": "~5.3 || ~6.0",
1559 | "symfony/process": "~5.3 || ~6.0",
1560 | "symfony/yaml": "~5.3 || ~6.0"
1561 | },
1562 | "require-dev": {
1563 | "amphp/sync": "^v1.4",
1564 | "brianium/paratest": "^6.4",
1565 | "composer/composer": "^2.2.6",
1566 | "nikic/php-parser": "~4.13",
1567 | "php-parallel-lint/php-parallel-lint": "^1.3",
1568 | "phpspec/phpspec": "^7.1",
1569 | "phpspec/prophecy-phpunit": "^2.0",
1570 | "phpunit/phpunit": "^9.5.13"
1571 | },
1572 | "suggest": {
1573 | "atoum/atoum": "Lets GrumPHP run your unit tests.",
1574 | "behat/behat": "Lets GrumPHP validate your project features.",
1575 | "brianium/paratest": "Lets GrumPHP run PHPUnit in parallel.",
1576 | "codeception/codeception": "Lets GrumPHP run your project's full stack tests",
1577 | "consolidation/robo": "Lets GrumPHP run your automated PHP tasks.",
1578 | "designsecurity/progpilot": "Lets GrumPHP be sure that there are no vulnerabilities in your code.",
1579 | "doctrine/orm": "Lets GrumPHP validate your Doctrine mapping files.",
1580 | "enlightn/security-checker": "Lets GrumPHP be sure that there are no known security issues.",
1581 | "ergebnis/composer-normalize": "Lets GrumPHP tidy and normalize your composer.json file.",
1582 | "friendsofphp/php-cs-fixer": "Lets GrumPHP automatically fix your codestyle.",
1583 | "friendsoftwig/twigcs": "Lets GrumPHP check Twig coding standard.",
1584 | "infection/infection": "Lets GrumPHP evaluate the quality your unit tests",
1585 | "maglnet/composer-require-checker": "Lets GrumPHP analyze composer dependencies.",
1586 | "malukenho/kawaii-gherkin": "Lets GrumPHP lint your Gherkin files.",
1587 | "nette/tester": "Lets GrumPHP run your unit tests with nette tester.",
1588 | "nikic/php-parser": "Lets GrumPHP run static analyses through your PHP files.",
1589 | "pestphp/pest": "Lets GrumPHP run your unit test with Pest PHP",
1590 | "phan/phan": "Lets GrumPHP unleash a static analyzer on your code",
1591 | "phing/phing": "Lets GrumPHP run your automated PHP tasks.",
1592 | "php-parallel-lint/php-parallel-lint": "Lets GrumPHP quickly lint your entire code base.",
1593 | "phpmd/phpmd": "Lets GrumPHP sort out the mess in your code",
1594 | "phpspec/phpspec": "Lets GrumPHP spec your code.",
1595 | "phpstan/phpstan": "Lets GrumPHP discover bugs in your code without running it.",
1596 | "phpunit/phpunit": "Lets GrumPHP run your unit tests.",
1597 | "povils/phpmnd": "Lets GrumPHP help you detect magic numbers in PHP code.",
1598 | "roave/security-advisories": "Lets GrumPHP be sure that there are no known security issues.",
1599 | "sebastian/phpcpd": "Lets GrumPHP find duplicated code.",
1600 | "squizlabs/php_codesniffer": "Lets GrumPHP sniff on your code.",
1601 | "sstalle/php7cc": "Lets GrumPHP check PHP 5.3 - 5.6 code compatibility with PHP 7.",
1602 | "symfony/phpunit-bridge": "Lets GrumPHP run your unit tests with the phpunit-bridge of Symfony.",
1603 | "symplify/easy-coding-standard": "Lets GrumPHP check coding standard.",
1604 | "vimeo/psalm": "Lets GrumPHP discover errors in your code without running it."
1605 | },
1606 | "bin": [
1607 | "bin/grumphp"
1608 | ],
1609 | "type": "composer-plugin",
1610 | "extra": {
1611 | "class": "GrumPHP\\Composer\\GrumPHPPlugin"
1612 | },
1613 | "autoload": {
1614 | "psr-4": {
1615 | "GrumPHP\\": "src"
1616 | }
1617 | },
1618 | "notification-url": "https://packagist.org/downloads/",
1619 | "license": [
1620 | "MIT"
1621 | ],
1622 | "authors": [
1623 | {
1624 | "name": "Toon Verwerft",
1625 | "email": "toon.verwerft@phpro.be"
1626 | },
1627 | {
1628 | "name": "Community",
1629 | "homepage": "https://github.com/phpro/grumphp/graphs/contributors"
1630 | }
1631 | ],
1632 | "description": "A composer plugin that enables source code quality checks.",
1633 | "support": {
1634 | "issues": "https://github.com/phpro/grumphp/issues",
1635 | "source": "https://github.com/phpro/grumphp/tree/v1.9.0"
1636 | },
1637 | "time": "2022-03-10T19:22:28+00:00"
1638 | },
1639 | {
1640 | "name": "phpstan/phpstan",
1641 | "version": "1.5.0",
1642 | "source": {
1643 | "type": "git",
1644 | "url": "https://github.com/phpstan/phpstan.git",
1645 | "reference": "2be8dd6dfa09ab1a21c49956ff591979cd5ab29e"
1646 | },
1647 | "dist": {
1648 | "type": "zip",
1649 | "url": "https://api.github.com/repos/phpstan/phpstan/zipball/2be8dd6dfa09ab1a21c49956ff591979cd5ab29e",
1650 | "reference": "2be8dd6dfa09ab1a21c49956ff591979cd5ab29e",
1651 | "shasum": ""
1652 | },
1653 | "require": {
1654 | "php": "^7.2|^8.0"
1655 | },
1656 | "conflict": {
1657 | "phpstan/phpstan-shim": "*"
1658 | },
1659 | "bin": [
1660 | "phpstan",
1661 | "phpstan.phar"
1662 | ],
1663 | "type": "library",
1664 | "autoload": {
1665 | "files": [
1666 | "bootstrap.php"
1667 | ]
1668 | },
1669 | "notification-url": "https://packagist.org/downloads/",
1670 | "license": [
1671 | "MIT"
1672 | ],
1673 | "description": "PHPStan - PHP Static Analysis Tool",
1674 | "support": {
1675 | "issues": "https://github.com/phpstan/phpstan/issues",
1676 | "source": "https://github.com/phpstan/phpstan/tree/1.5.0"
1677 | },
1678 | "funding": [
1679 | {
1680 | "url": "https://github.com/ondrejmirtes",
1681 | "type": "github"
1682 | },
1683 | {
1684 | "url": "https://github.com/phpstan",
1685 | "type": "github"
1686 | },
1687 | {
1688 | "url": "https://www.patreon.com/phpstan",
1689 | "type": "patreon"
1690 | },
1691 | {
1692 | "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan",
1693 | "type": "tidelift"
1694 | }
1695 | ],
1696 | "time": "2022-03-24T18:18:00+00:00"
1697 | },
1698 | {
1699 | "name": "psr/container",
1700 | "version": "2.0.2",
1701 | "source": {
1702 | "type": "git",
1703 | "url": "https://github.com/php-fig/container.git",
1704 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
1705 | },
1706 | "dist": {
1707 | "type": "zip",
1708 | "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
1709 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
1710 | "shasum": ""
1711 | },
1712 | "require": {
1713 | "php": ">=7.4.0"
1714 | },
1715 | "type": "library",
1716 | "extra": {
1717 | "branch-alias": {
1718 | "dev-master": "2.0.x-dev"
1719 | }
1720 | },
1721 | "autoload": {
1722 | "psr-4": {
1723 | "Psr\\Container\\": "src/"
1724 | }
1725 | },
1726 | "notification-url": "https://packagist.org/downloads/",
1727 | "license": [
1728 | "MIT"
1729 | ],
1730 | "authors": [
1731 | {
1732 | "name": "PHP-FIG",
1733 | "homepage": "https://www.php-fig.org/"
1734 | }
1735 | ],
1736 | "description": "Common Container Interface (PHP FIG PSR-11)",
1737 | "homepage": "https://github.com/php-fig/container",
1738 | "keywords": [
1739 | "PSR-11",
1740 | "container",
1741 | "container-interface",
1742 | "container-interop",
1743 | "psr"
1744 | ],
1745 | "support": {
1746 | "issues": "https://github.com/php-fig/container/issues",
1747 | "source": "https://github.com/php-fig/container/tree/2.0.2"
1748 | },
1749 | "time": "2021-11-05T16:47:00+00:00"
1750 | },
1751 | {
1752 | "name": "psr/event-dispatcher",
1753 | "version": "1.0.0",
1754 | "source": {
1755 | "type": "git",
1756 | "url": "https://github.com/php-fig/event-dispatcher.git",
1757 | "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
1758 | },
1759 | "dist": {
1760 | "type": "zip",
1761 | "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
1762 | "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
1763 | "shasum": ""
1764 | },
1765 | "require": {
1766 | "php": ">=7.2.0"
1767 | },
1768 | "type": "library",
1769 | "extra": {
1770 | "branch-alias": {
1771 | "dev-master": "1.0.x-dev"
1772 | }
1773 | },
1774 | "autoload": {
1775 | "psr-4": {
1776 | "Psr\\EventDispatcher\\": "src/"
1777 | }
1778 | },
1779 | "notification-url": "https://packagist.org/downloads/",
1780 | "license": [
1781 | "MIT"
1782 | ],
1783 | "authors": [
1784 | {
1785 | "name": "PHP-FIG",
1786 | "homepage": "http://www.php-fig.org/"
1787 | }
1788 | ],
1789 | "description": "Standard interfaces for event handling.",
1790 | "keywords": [
1791 | "events",
1792 | "psr",
1793 | "psr-14"
1794 | ],
1795 | "support": {
1796 | "issues": "https://github.com/php-fig/event-dispatcher/issues",
1797 | "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
1798 | },
1799 | "time": "2019-01-08T18:20:26+00:00"
1800 | },
1801 | {
1802 | "name": "psr/log",
1803 | "version": "3.0.0",
1804 | "source": {
1805 | "type": "git",
1806 | "url": "https://github.com/php-fig/log.git",
1807 | "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
1808 | },
1809 | "dist": {
1810 | "type": "zip",
1811 | "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
1812 | "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
1813 | "shasum": ""
1814 | },
1815 | "require": {
1816 | "php": ">=8.0.0"
1817 | },
1818 | "type": "library",
1819 | "extra": {
1820 | "branch-alias": {
1821 | "dev-master": "3.x-dev"
1822 | }
1823 | },
1824 | "autoload": {
1825 | "psr-4": {
1826 | "Psr\\Log\\": "src"
1827 | }
1828 | },
1829 | "notification-url": "https://packagist.org/downloads/",
1830 | "license": [
1831 | "MIT"
1832 | ],
1833 | "authors": [
1834 | {
1835 | "name": "PHP-FIG",
1836 | "homepage": "https://www.php-fig.org/"
1837 | }
1838 | ],
1839 | "description": "Common interface for logging libraries",
1840 | "homepage": "https://github.com/php-fig/log",
1841 | "keywords": [
1842 | "log",
1843 | "psr",
1844 | "psr-3"
1845 | ],
1846 | "support": {
1847 | "source": "https://github.com/php-fig/log/tree/3.0.0"
1848 | },
1849 | "time": "2021-07-14T16:46:02+00:00"
1850 | },
1851 | {
1852 | "name": "seld/jsonlint",
1853 | "version": "1.8.3",
1854 | "source": {
1855 | "type": "git",
1856 | "url": "https://github.com/Seldaek/jsonlint.git",
1857 | "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57"
1858 | },
1859 | "dist": {
1860 | "type": "zip",
1861 | "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9ad6ce79c342fbd44df10ea95511a1b24dee5b57",
1862 | "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57",
1863 | "shasum": ""
1864 | },
1865 | "require": {
1866 | "php": "^5.3 || ^7.0 || ^8.0"
1867 | },
1868 | "require-dev": {
1869 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
1870 | },
1871 | "bin": [
1872 | "bin/jsonlint"
1873 | ],
1874 | "type": "library",
1875 | "autoload": {
1876 | "psr-4": {
1877 | "Seld\\JsonLint\\": "src/Seld/JsonLint/"
1878 | }
1879 | },
1880 | "notification-url": "https://packagist.org/downloads/",
1881 | "license": [
1882 | "MIT"
1883 | ],
1884 | "authors": [
1885 | {
1886 | "name": "Jordi Boggiano",
1887 | "email": "j.boggiano@seld.be",
1888 | "homepage": "http://seld.be"
1889 | }
1890 | ],
1891 | "description": "JSON Linter",
1892 | "keywords": [
1893 | "json",
1894 | "linter",
1895 | "parser",
1896 | "validator"
1897 | ],
1898 | "support": {
1899 | "issues": "https://github.com/Seldaek/jsonlint/issues",
1900 | "source": "https://github.com/Seldaek/jsonlint/tree/1.8.3"
1901 | },
1902 | "funding": [
1903 | {
1904 | "url": "https://github.com/Seldaek",
1905 | "type": "github"
1906 | },
1907 | {
1908 | "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint",
1909 | "type": "tidelift"
1910 | }
1911 | ],
1912 | "time": "2020-11-11T09:19:24+00:00"
1913 | },
1914 | {
1915 | "name": "squizlabs/php_codesniffer",
1916 | "version": "3.6.2",
1917 | "source": {
1918 | "type": "git",
1919 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
1920 | "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a"
1921 | },
1922 | "dist": {
1923 | "type": "zip",
1924 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5e4e71592f69da17871dba6e80dd51bce74a351a",
1925 | "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a",
1926 | "shasum": ""
1927 | },
1928 | "require": {
1929 | "ext-simplexml": "*",
1930 | "ext-tokenizer": "*",
1931 | "ext-xmlwriter": "*",
1932 | "php": ">=5.4.0"
1933 | },
1934 | "require-dev": {
1935 | "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
1936 | },
1937 | "bin": [
1938 | "bin/phpcs",
1939 | "bin/phpcbf"
1940 | ],
1941 | "type": "library",
1942 | "extra": {
1943 | "branch-alias": {
1944 | "dev-master": "3.x-dev"
1945 | }
1946 | },
1947 | "notification-url": "https://packagist.org/downloads/",
1948 | "license": [
1949 | "BSD-3-Clause"
1950 | ],
1951 | "authors": [
1952 | {
1953 | "name": "Greg Sherwood",
1954 | "role": "lead"
1955 | }
1956 | ],
1957 | "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
1958 | "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
1959 | "keywords": [
1960 | "phpcs",
1961 | "standards"
1962 | ],
1963 | "support": {
1964 | "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
1965 | "source": "https://github.com/squizlabs/PHP_CodeSniffer",
1966 | "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
1967 | },
1968 | "time": "2021-12-12T21:44:58+00:00"
1969 | },
1970 | {
1971 | "name": "symfony/config",
1972 | "version": "v6.0.3",
1973 | "source": {
1974 | "type": "git",
1975 | "url": "https://github.com/symfony/config.git",
1976 | "reference": "c14f32ae4cd2a3c29d8825c5093463ac08ade7d8"
1977 | },
1978 | "dist": {
1979 | "type": "zip",
1980 | "url": "https://api.github.com/repos/symfony/config/zipball/c14f32ae4cd2a3c29d8825c5093463ac08ade7d8",
1981 | "reference": "c14f32ae4cd2a3c29d8825c5093463ac08ade7d8",
1982 | "shasum": ""
1983 | },
1984 | "require": {
1985 | "php": ">=8.0.2",
1986 | "symfony/deprecation-contracts": "^2.1|^3",
1987 | "symfony/filesystem": "^5.4|^6.0",
1988 | "symfony/polyfill-ctype": "~1.8",
1989 | "symfony/polyfill-php81": "^1.22"
1990 | },
1991 | "conflict": {
1992 | "symfony/finder": "<4.4"
1993 | },
1994 | "require-dev": {
1995 | "symfony/event-dispatcher": "^5.4|^6.0",
1996 | "symfony/finder": "^5.4|^6.0",
1997 | "symfony/messenger": "^5.4|^6.0",
1998 | "symfony/service-contracts": "^1.1|^2|^3",
1999 | "symfony/yaml": "^5.4|^6.0"
2000 | },
2001 | "suggest": {
2002 | "symfony/yaml": "To use the yaml reference dumper"
2003 | },
2004 | "type": "library",
2005 | "autoload": {
2006 | "psr-4": {
2007 | "Symfony\\Component\\Config\\": ""
2008 | },
2009 | "exclude-from-classmap": [
2010 | "/Tests/"
2011 | ]
2012 | },
2013 | "notification-url": "https://packagist.org/downloads/",
2014 | "license": [
2015 | "MIT"
2016 | ],
2017 | "authors": [
2018 | {
2019 | "name": "Fabien Potencier",
2020 | "email": "fabien@symfony.com"
2021 | },
2022 | {
2023 | "name": "Symfony Community",
2024 | "homepage": "https://symfony.com/contributors"
2025 | }
2026 | ],
2027 | "description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
2028 | "homepage": "https://symfony.com",
2029 | "support": {
2030 | "source": "https://github.com/symfony/config/tree/v6.0.3"
2031 | },
2032 | "funding": [
2033 | {
2034 | "url": "https://symfony.com/sponsor",
2035 | "type": "custom"
2036 | },
2037 | {
2038 | "url": "https://github.com/fabpot",
2039 | "type": "github"
2040 | },
2041 | {
2042 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2043 | "type": "tidelift"
2044 | }
2045 | ],
2046 | "time": "2022-01-03T09:53:43+00:00"
2047 | },
2048 | {
2049 | "name": "symfony/console",
2050 | "version": "v6.0.5",
2051 | "source": {
2052 | "type": "git",
2053 | "url": "https://github.com/symfony/console.git",
2054 | "reference": "3bebf4108b9e07492a2a4057d207aa5a77d146b1"
2055 | },
2056 | "dist": {
2057 | "type": "zip",
2058 | "url": "https://api.github.com/repos/symfony/console/zipball/3bebf4108b9e07492a2a4057d207aa5a77d146b1",
2059 | "reference": "3bebf4108b9e07492a2a4057d207aa5a77d146b1",
2060 | "shasum": ""
2061 | },
2062 | "require": {
2063 | "php": ">=8.0.2",
2064 | "symfony/polyfill-mbstring": "~1.0",
2065 | "symfony/service-contracts": "^1.1|^2|^3",
2066 | "symfony/string": "^5.4|^6.0"
2067 | },
2068 | "conflict": {
2069 | "symfony/dependency-injection": "<5.4",
2070 | "symfony/dotenv": "<5.4",
2071 | "symfony/event-dispatcher": "<5.4",
2072 | "symfony/lock": "<5.4",
2073 | "symfony/process": "<5.4"
2074 | },
2075 | "provide": {
2076 | "psr/log-implementation": "1.0|2.0|3.0"
2077 | },
2078 | "require-dev": {
2079 | "psr/log": "^1|^2|^3",
2080 | "symfony/config": "^5.4|^6.0",
2081 | "symfony/dependency-injection": "^5.4|^6.0",
2082 | "symfony/event-dispatcher": "^5.4|^6.0",
2083 | "symfony/lock": "^5.4|^6.0",
2084 | "symfony/process": "^5.4|^6.0",
2085 | "symfony/var-dumper": "^5.4|^6.0"
2086 | },
2087 | "suggest": {
2088 | "psr/log": "For using the console logger",
2089 | "symfony/event-dispatcher": "",
2090 | "symfony/lock": "",
2091 | "symfony/process": ""
2092 | },
2093 | "type": "library",
2094 | "autoload": {
2095 | "psr-4": {
2096 | "Symfony\\Component\\Console\\": ""
2097 | },
2098 | "exclude-from-classmap": [
2099 | "/Tests/"
2100 | ]
2101 | },
2102 | "notification-url": "https://packagist.org/downloads/",
2103 | "license": [
2104 | "MIT"
2105 | ],
2106 | "authors": [
2107 | {
2108 | "name": "Fabien Potencier",
2109 | "email": "fabien@symfony.com"
2110 | },
2111 | {
2112 | "name": "Symfony Community",
2113 | "homepage": "https://symfony.com/contributors"
2114 | }
2115 | ],
2116 | "description": "Eases the creation of beautiful and testable command line interfaces",
2117 | "homepage": "https://symfony.com",
2118 | "keywords": [
2119 | "cli",
2120 | "command line",
2121 | "console",
2122 | "terminal"
2123 | ],
2124 | "support": {
2125 | "source": "https://github.com/symfony/console/tree/v6.0.5"
2126 | },
2127 | "funding": [
2128 | {
2129 | "url": "https://symfony.com/sponsor",
2130 | "type": "custom"
2131 | },
2132 | {
2133 | "url": "https://github.com/fabpot",
2134 | "type": "github"
2135 | },
2136 | {
2137 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2138 | "type": "tidelift"
2139 | }
2140 | ],
2141 | "time": "2022-02-25T10:48:52+00:00"
2142 | },
2143 | {
2144 | "name": "symfony/dependency-injection",
2145 | "version": "v6.0.6",
2146 | "source": {
2147 | "type": "git",
2148 | "url": "https://github.com/symfony/dependency-injection.git",
2149 | "reference": "a296611f599d0b28e7af88798f830f9cb4d1e8e6"
2150 | },
2151 | "dist": {
2152 | "type": "zip",
2153 | "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/a296611f599d0b28e7af88798f830f9cb4d1e8e6",
2154 | "reference": "a296611f599d0b28e7af88798f830f9cb4d1e8e6",
2155 | "shasum": ""
2156 | },
2157 | "require": {
2158 | "php": ">=8.0.2",
2159 | "psr/container": "^1.1|^2.0",
2160 | "symfony/deprecation-contracts": "^2.1|^3",
2161 | "symfony/polyfill-php81": "^1.22",
2162 | "symfony/service-contracts": "^1.1.6|^2.0|^3.0"
2163 | },
2164 | "conflict": {
2165 | "ext-psr": "<1.1|>=2",
2166 | "symfony/config": "<5.4",
2167 | "symfony/finder": "<5.4",
2168 | "symfony/proxy-manager-bridge": "<5.4",
2169 | "symfony/yaml": "<5.4"
2170 | },
2171 | "provide": {
2172 | "psr/container-implementation": "1.1|2.0",
2173 | "symfony/service-implementation": "1.1|2.0|3.0"
2174 | },
2175 | "require-dev": {
2176 | "symfony/config": "^5.4|^6.0",
2177 | "symfony/expression-language": "^5.4|^6.0",
2178 | "symfony/yaml": "^5.4|^6.0"
2179 | },
2180 | "suggest": {
2181 | "symfony/config": "",
2182 | "symfony/expression-language": "For using expressions in service container configuration",
2183 | "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required",
2184 | "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
2185 | "symfony/yaml": ""
2186 | },
2187 | "type": "library",
2188 | "autoload": {
2189 | "psr-4": {
2190 | "Symfony\\Component\\DependencyInjection\\": ""
2191 | },
2192 | "exclude-from-classmap": [
2193 | "/Tests/"
2194 | ]
2195 | },
2196 | "notification-url": "https://packagist.org/downloads/",
2197 | "license": [
2198 | "MIT"
2199 | ],
2200 | "authors": [
2201 | {
2202 | "name": "Fabien Potencier",
2203 | "email": "fabien@symfony.com"
2204 | },
2205 | {
2206 | "name": "Symfony Community",
2207 | "homepage": "https://symfony.com/contributors"
2208 | }
2209 | ],
2210 | "description": "Allows you to standardize and centralize the way objects are constructed in your application",
2211 | "homepage": "https://symfony.com",
2212 | "support": {
2213 | "source": "https://github.com/symfony/dependency-injection/tree/v6.0.6"
2214 | },
2215 | "funding": [
2216 | {
2217 | "url": "https://symfony.com/sponsor",
2218 | "type": "custom"
2219 | },
2220 | {
2221 | "url": "https://github.com/fabpot",
2222 | "type": "github"
2223 | },
2224 | {
2225 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2226 | "type": "tidelift"
2227 | }
2228 | ],
2229 | "time": "2022-03-02T12:58:14+00:00"
2230 | },
2231 | {
2232 | "name": "symfony/deprecation-contracts",
2233 | "version": "v3.0.0",
2234 | "source": {
2235 | "type": "git",
2236 | "url": "https://github.com/symfony/deprecation-contracts.git",
2237 | "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced"
2238 | },
2239 | "dist": {
2240 | "type": "zip",
2241 | "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/c726b64c1ccfe2896cb7df2e1331c357ad1c8ced",
2242 | "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced",
2243 | "shasum": ""
2244 | },
2245 | "require": {
2246 | "php": ">=8.0.2"
2247 | },
2248 | "type": "library",
2249 | "extra": {
2250 | "branch-alias": {
2251 | "dev-main": "3.0-dev"
2252 | },
2253 | "thanks": {
2254 | "name": "symfony/contracts",
2255 | "url": "https://github.com/symfony/contracts"
2256 | }
2257 | },
2258 | "autoload": {
2259 | "files": [
2260 | "function.php"
2261 | ]
2262 | },
2263 | "notification-url": "https://packagist.org/downloads/",
2264 | "license": [
2265 | "MIT"
2266 | ],
2267 | "authors": [
2268 | {
2269 | "name": "Nicolas Grekas",
2270 | "email": "p@tchwork.com"
2271 | },
2272 | {
2273 | "name": "Symfony Community",
2274 | "homepage": "https://symfony.com/contributors"
2275 | }
2276 | ],
2277 | "description": "A generic function and convention to trigger deprecation notices",
2278 | "homepage": "https://symfony.com",
2279 | "support": {
2280 | "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.0"
2281 | },
2282 | "funding": [
2283 | {
2284 | "url": "https://symfony.com/sponsor",
2285 | "type": "custom"
2286 | },
2287 | {
2288 | "url": "https://github.com/fabpot",
2289 | "type": "github"
2290 | },
2291 | {
2292 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2293 | "type": "tidelift"
2294 | }
2295 | ],
2296 | "time": "2021-11-01T23:48:49+00:00"
2297 | },
2298 | {
2299 | "name": "symfony/dotenv",
2300 | "version": "v6.0.5",
2301 | "source": {
2302 | "type": "git",
2303 | "url": "https://github.com/symfony/dotenv.git",
2304 | "reference": "1c2288fdfd0787288cd04b9868f879f2212159c4"
2305 | },
2306 | "dist": {
2307 | "type": "zip",
2308 | "url": "https://api.github.com/repos/symfony/dotenv/zipball/1c2288fdfd0787288cd04b9868f879f2212159c4",
2309 | "reference": "1c2288fdfd0787288cd04b9868f879f2212159c4",
2310 | "shasum": ""
2311 | },
2312 | "require": {
2313 | "php": ">=8.0.2"
2314 | },
2315 | "require-dev": {
2316 | "symfony/console": "^5.4|^6.0",
2317 | "symfony/process": "^5.4|^6.0"
2318 | },
2319 | "type": "library",
2320 | "autoload": {
2321 | "psr-4": {
2322 | "Symfony\\Component\\Dotenv\\": ""
2323 | },
2324 | "exclude-from-classmap": [
2325 | "/Tests/"
2326 | ]
2327 | },
2328 | "notification-url": "https://packagist.org/downloads/",
2329 | "license": [
2330 | "MIT"
2331 | ],
2332 | "authors": [
2333 | {
2334 | "name": "Fabien Potencier",
2335 | "email": "fabien@symfony.com"
2336 | },
2337 | {
2338 | "name": "Symfony Community",
2339 | "homepage": "https://symfony.com/contributors"
2340 | }
2341 | ],
2342 | "description": "Registers environment variables from a .env file",
2343 | "homepage": "https://symfony.com",
2344 | "keywords": [
2345 | "dotenv",
2346 | "env",
2347 | "environment"
2348 | ],
2349 | "support": {
2350 | "source": "https://github.com/symfony/dotenv/tree/v6.0.5"
2351 | },
2352 | "funding": [
2353 | {
2354 | "url": "https://symfony.com/sponsor",
2355 | "type": "custom"
2356 | },
2357 | {
2358 | "url": "https://github.com/fabpot",
2359 | "type": "github"
2360 | },
2361 | {
2362 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2363 | "type": "tidelift"
2364 | }
2365 | ],
2366 | "time": "2022-02-21T17:15:17+00:00"
2367 | },
2368 | {
2369 | "name": "symfony/event-dispatcher",
2370 | "version": "v6.0.3",
2371 | "source": {
2372 | "type": "git",
2373 | "url": "https://github.com/symfony/event-dispatcher.git",
2374 | "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934"
2375 | },
2376 | "dist": {
2377 | "type": "zip",
2378 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/6472ea2dd415e925b90ca82be64b8bc6157f3934",
2379 | "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934",
2380 | "shasum": ""
2381 | },
2382 | "require": {
2383 | "php": ">=8.0.2",
2384 | "symfony/event-dispatcher-contracts": "^2|^3"
2385 | },
2386 | "conflict": {
2387 | "symfony/dependency-injection": "<5.4"
2388 | },
2389 | "provide": {
2390 | "psr/event-dispatcher-implementation": "1.0",
2391 | "symfony/event-dispatcher-implementation": "2.0|3.0"
2392 | },
2393 | "require-dev": {
2394 | "psr/log": "^1|^2|^3",
2395 | "symfony/config": "^5.4|^6.0",
2396 | "symfony/dependency-injection": "^5.4|^6.0",
2397 | "symfony/error-handler": "^5.4|^6.0",
2398 | "symfony/expression-language": "^5.4|^6.0",
2399 | "symfony/http-foundation": "^5.4|^6.0",
2400 | "symfony/service-contracts": "^1.1|^2|^3",
2401 | "symfony/stopwatch": "^5.4|^6.0"
2402 | },
2403 | "suggest": {
2404 | "symfony/dependency-injection": "",
2405 | "symfony/http-kernel": ""
2406 | },
2407 | "type": "library",
2408 | "autoload": {
2409 | "psr-4": {
2410 | "Symfony\\Component\\EventDispatcher\\": ""
2411 | },
2412 | "exclude-from-classmap": [
2413 | "/Tests/"
2414 | ]
2415 | },
2416 | "notification-url": "https://packagist.org/downloads/",
2417 | "license": [
2418 | "MIT"
2419 | ],
2420 | "authors": [
2421 | {
2422 | "name": "Fabien Potencier",
2423 | "email": "fabien@symfony.com"
2424 | },
2425 | {
2426 | "name": "Symfony Community",
2427 | "homepage": "https://symfony.com/contributors"
2428 | }
2429 | ],
2430 | "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
2431 | "homepage": "https://symfony.com",
2432 | "support": {
2433 | "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.3"
2434 | },
2435 | "funding": [
2436 | {
2437 | "url": "https://symfony.com/sponsor",
2438 | "type": "custom"
2439 | },
2440 | {
2441 | "url": "https://github.com/fabpot",
2442 | "type": "github"
2443 | },
2444 | {
2445 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2446 | "type": "tidelift"
2447 | }
2448 | ],
2449 | "time": "2022-01-02T09:55:41+00:00"
2450 | },
2451 | {
2452 | "name": "symfony/event-dispatcher-contracts",
2453 | "version": "v3.0.0",
2454 | "source": {
2455 | "type": "git",
2456 | "url": "https://github.com/symfony/event-dispatcher-contracts.git",
2457 | "reference": "aa5422287b75594b90ee9cd807caf8f0df491385"
2458 | },
2459 | "dist": {
2460 | "type": "zip",
2461 | "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/aa5422287b75594b90ee9cd807caf8f0df491385",
2462 | "reference": "aa5422287b75594b90ee9cd807caf8f0df491385",
2463 | "shasum": ""
2464 | },
2465 | "require": {
2466 | "php": ">=8.0.2",
2467 | "psr/event-dispatcher": "^1"
2468 | },
2469 | "suggest": {
2470 | "symfony/event-dispatcher-implementation": ""
2471 | },
2472 | "type": "library",
2473 | "extra": {
2474 | "branch-alias": {
2475 | "dev-main": "3.0-dev"
2476 | },
2477 | "thanks": {
2478 | "name": "symfony/contracts",
2479 | "url": "https://github.com/symfony/contracts"
2480 | }
2481 | },
2482 | "autoload": {
2483 | "psr-4": {
2484 | "Symfony\\Contracts\\EventDispatcher\\": ""
2485 | }
2486 | },
2487 | "notification-url": "https://packagist.org/downloads/",
2488 | "license": [
2489 | "MIT"
2490 | ],
2491 | "authors": [
2492 | {
2493 | "name": "Nicolas Grekas",
2494 | "email": "p@tchwork.com"
2495 | },
2496 | {
2497 | "name": "Symfony Community",
2498 | "homepage": "https://symfony.com/contributors"
2499 | }
2500 | ],
2501 | "description": "Generic abstractions related to dispatching event",
2502 | "homepage": "https://symfony.com",
2503 | "keywords": [
2504 | "abstractions",
2505 | "contracts",
2506 | "decoupling",
2507 | "interfaces",
2508 | "interoperability",
2509 | "standards"
2510 | ],
2511 | "support": {
2512 | "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.0"
2513 | },
2514 | "funding": [
2515 | {
2516 | "url": "https://symfony.com/sponsor",
2517 | "type": "custom"
2518 | },
2519 | {
2520 | "url": "https://github.com/fabpot",
2521 | "type": "github"
2522 | },
2523 | {
2524 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2525 | "type": "tidelift"
2526 | }
2527 | ],
2528 | "time": "2021-07-15T12:33:35+00:00"
2529 | },
2530 | {
2531 | "name": "symfony/filesystem",
2532 | "version": "v6.0.6",
2533 | "source": {
2534 | "type": "git",
2535 | "url": "https://github.com/symfony/filesystem.git",
2536 | "reference": "52b888523545b0b4049ab9ce48766802484d7046"
2537 | },
2538 | "dist": {
2539 | "type": "zip",
2540 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/52b888523545b0b4049ab9ce48766802484d7046",
2541 | "reference": "52b888523545b0b4049ab9ce48766802484d7046",
2542 | "shasum": ""
2543 | },
2544 | "require": {
2545 | "php": ">=8.0.2",
2546 | "symfony/polyfill-ctype": "~1.8",
2547 | "symfony/polyfill-mbstring": "~1.8"
2548 | },
2549 | "type": "library",
2550 | "autoload": {
2551 | "psr-4": {
2552 | "Symfony\\Component\\Filesystem\\": ""
2553 | },
2554 | "exclude-from-classmap": [
2555 | "/Tests/"
2556 | ]
2557 | },
2558 | "notification-url": "https://packagist.org/downloads/",
2559 | "license": [
2560 | "MIT"
2561 | ],
2562 | "authors": [
2563 | {
2564 | "name": "Fabien Potencier",
2565 | "email": "fabien@symfony.com"
2566 | },
2567 | {
2568 | "name": "Symfony Community",
2569 | "homepage": "https://symfony.com/contributors"
2570 | }
2571 | ],
2572 | "description": "Provides basic utilities for the filesystem",
2573 | "homepage": "https://symfony.com",
2574 | "support": {
2575 | "source": "https://github.com/symfony/filesystem/tree/v6.0.6"
2576 | },
2577 | "funding": [
2578 | {
2579 | "url": "https://symfony.com/sponsor",
2580 | "type": "custom"
2581 | },
2582 | {
2583 | "url": "https://github.com/fabpot",
2584 | "type": "github"
2585 | },
2586 | {
2587 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2588 | "type": "tidelift"
2589 | }
2590 | ],
2591 | "time": "2022-03-02T12:58:14+00:00"
2592 | },
2593 | {
2594 | "name": "symfony/finder",
2595 | "version": "v6.0.3",
2596 | "source": {
2597 | "type": "git",
2598 | "url": "https://github.com/symfony/finder.git",
2599 | "reference": "8661b74dbabc23223f38c9b99d3f8ade71170430"
2600 | },
2601 | "dist": {
2602 | "type": "zip",
2603 | "url": "https://api.github.com/repos/symfony/finder/zipball/8661b74dbabc23223f38c9b99d3f8ade71170430",
2604 | "reference": "8661b74dbabc23223f38c9b99d3f8ade71170430",
2605 | "shasum": ""
2606 | },
2607 | "require": {
2608 | "php": ">=8.0.2"
2609 | },
2610 | "type": "library",
2611 | "autoload": {
2612 | "psr-4": {
2613 | "Symfony\\Component\\Finder\\": ""
2614 | },
2615 | "exclude-from-classmap": [
2616 | "/Tests/"
2617 | ]
2618 | },
2619 | "notification-url": "https://packagist.org/downloads/",
2620 | "license": [
2621 | "MIT"
2622 | ],
2623 | "authors": [
2624 | {
2625 | "name": "Fabien Potencier",
2626 | "email": "fabien@symfony.com"
2627 | },
2628 | {
2629 | "name": "Symfony Community",
2630 | "homepage": "https://symfony.com/contributors"
2631 | }
2632 | ],
2633 | "description": "Finds files and directories via an intuitive fluent interface",
2634 | "homepage": "https://symfony.com",
2635 | "support": {
2636 | "source": "https://github.com/symfony/finder/tree/v6.0.3"
2637 | },
2638 | "funding": [
2639 | {
2640 | "url": "https://symfony.com/sponsor",
2641 | "type": "custom"
2642 | },
2643 | {
2644 | "url": "https://github.com/fabpot",
2645 | "type": "github"
2646 | },
2647 | {
2648 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2649 | "type": "tidelift"
2650 | }
2651 | ],
2652 | "time": "2022-01-26T17:23:29+00:00"
2653 | },
2654 | {
2655 | "name": "symfony/options-resolver",
2656 | "version": "v6.0.3",
2657 | "source": {
2658 | "type": "git",
2659 | "url": "https://github.com/symfony/options-resolver.git",
2660 | "reference": "51f7006670febe4cbcbae177cbffe93ff833250d"
2661 | },
2662 | "dist": {
2663 | "type": "zip",
2664 | "url": "https://api.github.com/repos/symfony/options-resolver/zipball/51f7006670febe4cbcbae177cbffe93ff833250d",
2665 | "reference": "51f7006670febe4cbcbae177cbffe93ff833250d",
2666 | "shasum": ""
2667 | },
2668 | "require": {
2669 | "php": ">=8.0.2",
2670 | "symfony/deprecation-contracts": "^2.1|^3"
2671 | },
2672 | "type": "library",
2673 | "autoload": {
2674 | "psr-4": {
2675 | "Symfony\\Component\\OptionsResolver\\": ""
2676 | },
2677 | "exclude-from-classmap": [
2678 | "/Tests/"
2679 | ]
2680 | },
2681 | "notification-url": "https://packagist.org/downloads/",
2682 | "license": [
2683 | "MIT"
2684 | ],
2685 | "authors": [
2686 | {
2687 | "name": "Fabien Potencier",
2688 | "email": "fabien@symfony.com"
2689 | },
2690 | {
2691 | "name": "Symfony Community",
2692 | "homepage": "https://symfony.com/contributors"
2693 | }
2694 | ],
2695 | "description": "Provides an improved replacement for the array_replace PHP function",
2696 | "homepage": "https://symfony.com",
2697 | "keywords": [
2698 | "config",
2699 | "configuration",
2700 | "options"
2701 | ],
2702 | "support": {
2703 | "source": "https://github.com/symfony/options-resolver/tree/v6.0.3"
2704 | },
2705 | "funding": [
2706 | {
2707 | "url": "https://symfony.com/sponsor",
2708 | "type": "custom"
2709 | },
2710 | {
2711 | "url": "https://github.com/fabpot",
2712 | "type": "github"
2713 | },
2714 | {
2715 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2716 | "type": "tidelift"
2717 | }
2718 | ],
2719 | "time": "2022-01-02T09:55:41+00:00"
2720 | },
2721 | {
2722 | "name": "symfony/polyfill-intl-grapheme",
2723 | "version": "v1.25.0",
2724 | "source": {
2725 | "type": "git",
2726 | "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
2727 | "reference": "81b86b50cf841a64252b439e738e97f4a34e2783"
2728 | },
2729 | "dist": {
2730 | "type": "zip",
2731 | "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783",
2732 | "reference": "81b86b50cf841a64252b439e738e97f4a34e2783",
2733 | "shasum": ""
2734 | },
2735 | "require": {
2736 | "php": ">=7.1"
2737 | },
2738 | "suggest": {
2739 | "ext-intl": "For best performance"
2740 | },
2741 | "type": "library",
2742 | "extra": {
2743 | "branch-alias": {
2744 | "dev-main": "1.23-dev"
2745 | },
2746 | "thanks": {
2747 | "name": "symfony/polyfill",
2748 | "url": "https://github.com/symfony/polyfill"
2749 | }
2750 | },
2751 | "autoload": {
2752 | "files": [
2753 | "bootstrap.php"
2754 | ],
2755 | "psr-4": {
2756 | "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
2757 | }
2758 | },
2759 | "notification-url": "https://packagist.org/downloads/",
2760 | "license": [
2761 | "MIT"
2762 | ],
2763 | "authors": [
2764 | {
2765 | "name": "Nicolas Grekas",
2766 | "email": "p@tchwork.com"
2767 | },
2768 | {
2769 | "name": "Symfony Community",
2770 | "homepage": "https://symfony.com/contributors"
2771 | }
2772 | ],
2773 | "description": "Symfony polyfill for intl's grapheme_* functions",
2774 | "homepage": "https://symfony.com",
2775 | "keywords": [
2776 | "compatibility",
2777 | "grapheme",
2778 | "intl",
2779 | "polyfill",
2780 | "portable",
2781 | "shim"
2782 | ],
2783 | "support": {
2784 | "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.0"
2785 | },
2786 | "funding": [
2787 | {
2788 | "url": "https://symfony.com/sponsor",
2789 | "type": "custom"
2790 | },
2791 | {
2792 | "url": "https://github.com/fabpot",
2793 | "type": "github"
2794 | },
2795 | {
2796 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2797 | "type": "tidelift"
2798 | }
2799 | ],
2800 | "time": "2021-11-23T21:10:46+00:00"
2801 | },
2802 | {
2803 | "name": "symfony/polyfill-intl-normalizer",
2804 | "version": "v1.25.0",
2805 | "source": {
2806 | "type": "git",
2807 | "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
2808 | "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8"
2809 | },
2810 | "dist": {
2811 | "type": "zip",
2812 | "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8",
2813 | "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8",
2814 | "shasum": ""
2815 | },
2816 | "require": {
2817 | "php": ">=7.1"
2818 | },
2819 | "suggest": {
2820 | "ext-intl": "For best performance"
2821 | },
2822 | "type": "library",
2823 | "extra": {
2824 | "branch-alias": {
2825 | "dev-main": "1.23-dev"
2826 | },
2827 | "thanks": {
2828 | "name": "symfony/polyfill",
2829 | "url": "https://github.com/symfony/polyfill"
2830 | }
2831 | },
2832 | "autoload": {
2833 | "files": [
2834 | "bootstrap.php"
2835 | ],
2836 | "psr-4": {
2837 | "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
2838 | },
2839 | "classmap": [
2840 | "Resources/stubs"
2841 | ]
2842 | },
2843 | "notification-url": "https://packagist.org/downloads/",
2844 | "license": [
2845 | "MIT"
2846 | ],
2847 | "authors": [
2848 | {
2849 | "name": "Nicolas Grekas",
2850 | "email": "p@tchwork.com"
2851 | },
2852 | {
2853 | "name": "Symfony Community",
2854 | "homepage": "https://symfony.com/contributors"
2855 | }
2856 | ],
2857 | "description": "Symfony polyfill for intl's Normalizer class and related functions",
2858 | "homepage": "https://symfony.com",
2859 | "keywords": [
2860 | "compatibility",
2861 | "intl",
2862 | "normalizer",
2863 | "polyfill",
2864 | "portable",
2865 | "shim"
2866 | ],
2867 | "support": {
2868 | "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0"
2869 | },
2870 | "funding": [
2871 | {
2872 | "url": "https://symfony.com/sponsor",
2873 | "type": "custom"
2874 | },
2875 | {
2876 | "url": "https://github.com/fabpot",
2877 | "type": "github"
2878 | },
2879 | {
2880 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2881 | "type": "tidelift"
2882 | }
2883 | ],
2884 | "time": "2021-02-19T12:13:01+00:00"
2885 | },
2886 | {
2887 | "name": "symfony/polyfill-php81",
2888 | "version": "v1.25.0",
2889 | "source": {
2890 | "type": "git",
2891 | "url": "https://github.com/symfony/polyfill-php81.git",
2892 | "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f"
2893 | },
2894 | "dist": {
2895 | "type": "zip",
2896 | "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/5de4ba2d41b15f9bd0e19b2ab9674135813ec98f",
2897 | "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f",
2898 | "shasum": ""
2899 | },
2900 | "require": {
2901 | "php": ">=7.1"
2902 | },
2903 | "type": "library",
2904 | "extra": {
2905 | "branch-alias": {
2906 | "dev-main": "1.23-dev"
2907 | },
2908 | "thanks": {
2909 | "name": "symfony/polyfill",
2910 | "url": "https://github.com/symfony/polyfill"
2911 | }
2912 | },
2913 | "autoload": {
2914 | "files": [
2915 | "bootstrap.php"
2916 | ],
2917 | "psr-4": {
2918 | "Symfony\\Polyfill\\Php81\\": ""
2919 | },
2920 | "classmap": [
2921 | "Resources/stubs"
2922 | ]
2923 | },
2924 | "notification-url": "https://packagist.org/downloads/",
2925 | "license": [
2926 | "MIT"
2927 | ],
2928 | "authors": [
2929 | {
2930 | "name": "Nicolas Grekas",
2931 | "email": "p@tchwork.com"
2932 | },
2933 | {
2934 | "name": "Symfony Community",
2935 | "homepage": "https://symfony.com/contributors"
2936 | }
2937 | ],
2938 | "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
2939 | "homepage": "https://symfony.com",
2940 | "keywords": [
2941 | "compatibility",
2942 | "polyfill",
2943 | "portable",
2944 | "shim"
2945 | ],
2946 | "support": {
2947 | "source": "https://github.com/symfony/polyfill-php81/tree/v1.25.0"
2948 | },
2949 | "funding": [
2950 | {
2951 | "url": "https://symfony.com/sponsor",
2952 | "type": "custom"
2953 | },
2954 | {
2955 | "url": "https://github.com/fabpot",
2956 | "type": "github"
2957 | },
2958 | {
2959 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2960 | "type": "tidelift"
2961 | }
2962 | ],
2963 | "time": "2021-09-13T13:58:11+00:00"
2964 | },
2965 | {
2966 | "name": "symfony/process",
2967 | "version": "v6.0.5",
2968 | "source": {
2969 | "type": "git",
2970 | "url": "https://github.com/symfony/process.git",
2971 | "reference": "1ccceccc6497e96f4f646218f04b97ae7d9fa7a1"
2972 | },
2973 | "dist": {
2974 | "type": "zip",
2975 | "url": "https://api.github.com/repos/symfony/process/zipball/1ccceccc6497e96f4f646218f04b97ae7d9fa7a1",
2976 | "reference": "1ccceccc6497e96f4f646218f04b97ae7d9fa7a1",
2977 | "shasum": ""
2978 | },
2979 | "require": {
2980 | "php": ">=8.0.2"
2981 | },
2982 | "type": "library",
2983 | "autoload": {
2984 | "psr-4": {
2985 | "Symfony\\Component\\Process\\": ""
2986 | },
2987 | "exclude-from-classmap": [
2988 | "/Tests/"
2989 | ]
2990 | },
2991 | "notification-url": "https://packagist.org/downloads/",
2992 | "license": [
2993 | "MIT"
2994 | ],
2995 | "authors": [
2996 | {
2997 | "name": "Fabien Potencier",
2998 | "email": "fabien@symfony.com"
2999 | },
3000 | {
3001 | "name": "Symfony Community",
3002 | "homepage": "https://symfony.com/contributors"
3003 | }
3004 | ],
3005 | "description": "Executes commands in sub-processes",
3006 | "homepage": "https://symfony.com",
3007 | "support": {
3008 | "source": "https://github.com/symfony/process/tree/v6.0.5"
3009 | },
3010 | "funding": [
3011 | {
3012 | "url": "https://symfony.com/sponsor",
3013 | "type": "custom"
3014 | },
3015 | {
3016 | "url": "https://github.com/fabpot",
3017 | "type": "github"
3018 | },
3019 | {
3020 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3021 | "type": "tidelift"
3022 | }
3023 | ],
3024 | "time": "2022-01-30T18:19:12+00:00"
3025 | },
3026 | {
3027 | "name": "symfony/service-contracts",
3028 | "version": "v3.0.0",
3029 | "source": {
3030 | "type": "git",
3031 | "url": "https://github.com/symfony/service-contracts.git",
3032 | "reference": "36715ebf9fb9db73db0cb24263c79077c6fe8603"
3033 | },
3034 | "dist": {
3035 | "type": "zip",
3036 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/36715ebf9fb9db73db0cb24263c79077c6fe8603",
3037 | "reference": "36715ebf9fb9db73db0cb24263c79077c6fe8603",
3038 | "shasum": ""
3039 | },
3040 | "require": {
3041 | "php": ">=8.0.2",
3042 | "psr/container": "^2.0"
3043 | },
3044 | "conflict": {
3045 | "ext-psr": "<1.1|>=2"
3046 | },
3047 | "suggest": {
3048 | "symfony/service-implementation": ""
3049 | },
3050 | "type": "library",
3051 | "extra": {
3052 | "branch-alias": {
3053 | "dev-main": "3.0-dev"
3054 | },
3055 | "thanks": {
3056 | "name": "symfony/contracts",
3057 | "url": "https://github.com/symfony/contracts"
3058 | }
3059 | },
3060 | "autoload": {
3061 | "psr-4": {
3062 | "Symfony\\Contracts\\Service\\": ""
3063 | }
3064 | },
3065 | "notification-url": "https://packagist.org/downloads/",
3066 | "license": [
3067 | "MIT"
3068 | ],
3069 | "authors": [
3070 | {
3071 | "name": "Nicolas Grekas",
3072 | "email": "p@tchwork.com"
3073 | },
3074 | {
3075 | "name": "Symfony Community",
3076 | "homepage": "https://symfony.com/contributors"
3077 | }
3078 | ],
3079 | "description": "Generic abstractions related to writing services",
3080 | "homepage": "https://symfony.com",
3081 | "keywords": [
3082 | "abstractions",
3083 | "contracts",
3084 | "decoupling",
3085 | "interfaces",
3086 | "interoperability",
3087 | "standards"
3088 | ],
3089 | "support": {
3090 | "source": "https://github.com/symfony/service-contracts/tree/v3.0.0"
3091 | },
3092 | "funding": [
3093 | {
3094 | "url": "https://symfony.com/sponsor",
3095 | "type": "custom"
3096 | },
3097 | {
3098 | "url": "https://github.com/fabpot",
3099 | "type": "github"
3100 | },
3101 | {
3102 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3103 | "type": "tidelift"
3104 | }
3105 | ],
3106 | "time": "2021-11-04T17:53:12+00:00"
3107 | },
3108 | {
3109 | "name": "symfony/string",
3110 | "version": "v6.0.3",
3111 | "source": {
3112 | "type": "git",
3113 | "url": "https://github.com/symfony/string.git",
3114 | "reference": "522144f0c4c004c80d56fa47e40e17028e2eefc2"
3115 | },
3116 | "dist": {
3117 | "type": "zip",
3118 | "url": "https://api.github.com/repos/symfony/string/zipball/522144f0c4c004c80d56fa47e40e17028e2eefc2",
3119 | "reference": "522144f0c4c004c80d56fa47e40e17028e2eefc2",
3120 | "shasum": ""
3121 | },
3122 | "require": {
3123 | "php": ">=8.0.2",
3124 | "symfony/polyfill-ctype": "~1.8",
3125 | "symfony/polyfill-intl-grapheme": "~1.0",
3126 | "symfony/polyfill-intl-normalizer": "~1.0",
3127 | "symfony/polyfill-mbstring": "~1.0"
3128 | },
3129 | "conflict": {
3130 | "symfony/translation-contracts": "<2.0"
3131 | },
3132 | "require-dev": {
3133 | "symfony/error-handler": "^5.4|^6.0",
3134 | "symfony/http-client": "^5.4|^6.0",
3135 | "symfony/translation-contracts": "^2.0|^3.0",
3136 | "symfony/var-exporter": "^5.4|^6.0"
3137 | },
3138 | "type": "library",
3139 | "autoload": {
3140 | "files": [
3141 | "Resources/functions.php"
3142 | ],
3143 | "psr-4": {
3144 | "Symfony\\Component\\String\\": ""
3145 | },
3146 | "exclude-from-classmap": [
3147 | "/Tests/"
3148 | ]
3149 | },
3150 | "notification-url": "https://packagist.org/downloads/",
3151 | "license": [
3152 | "MIT"
3153 | ],
3154 | "authors": [
3155 | {
3156 | "name": "Nicolas Grekas",
3157 | "email": "p@tchwork.com"
3158 | },
3159 | {
3160 | "name": "Symfony Community",
3161 | "homepage": "https://symfony.com/contributors"
3162 | }
3163 | ],
3164 | "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
3165 | "homepage": "https://symfony.com",
3166 | "keywords": [
3167 | "grapheme",
3168 | "i18n",
3169 | "string",
3170 | "unicode",
3171 | "utf-8",
3172 | "utf8"
3173 | ],
3174 | "support": {
3175 | "source": "https://github.com/symfony/string/tree/v6.0.3"
3176 | },
3177 | "funding": [
3178 | {
3179 | "url": "https://symfony.com/sponsor",
3180 | "type": "custom"
3181 | },
3182 | {
3183 | "url": "https://github.com/fabpot",
3184 | "type": "github"
3185 | },
3186 | {
3187 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3188 | "type": "tidelift"
3189 | }
3190 | ],
3191 | "time": "2022-01-02T09:55:41+00:00"
3192 | },
3193 | {
3194 | "name": "symfony/yaml",
3195 | "version": "v6.0.3",
3196 | "source": {
3197 | "type": "git",
3198 | "url": "https://github.com/symfony/yaml.git",
3199 | "reference": "e77f3ea0b21141d771d4a5655faa54f692b34af5"
3200 | },
3201 | "dist": {
3202 | "type": "zip",
3203 | "url": "https://api.github.com/repos/symfony/yaml/zipball/e77f3ea0b21141d771d4a5655faa54f692b34af5",
3204 | "reference": "e77f3ea0b21141d771d4a5655faa54f692b34af5",
3205 | "shasum": ""
3206 | },
3207 | "require": {
3208 | "php": ">=8.0.2",
3209 | "symfony/polyfill-ctype": "^1.8"
3210 | },
3211 | "conflict": {
3212 | "symfony/console": "<5.4"
3213 | },
3214 | "require-dev": {
3215 | "symfony/console": "^5.4|^6.0"
3216 | },
3217 | "suggest": {
3218 | "symfony/console": "For validating YAML files using the lint command"
3219 | },
3220 | "bin": [
3221 | "Resources/bin/yaml-lint"
3222 | ],
3223 | "type": "library",
3224 | "autoload": {
3225 | "psr-4": {
3226 | "Symfony\\Component\\Yaml\\": ""
3227 | },
3228 | "exclude-from-classmap": [
3229 | "/Tests/"
3230 | ]
3231 | },
3232 | "notification-url": "https://packagist.org/downloads/",
3233 | "license": [
3234 | "MIT"
3235 | ],
3236 | "authors": [
3237 | {
3238 | "name": "Fabien Potencier",
3239 | "email": "fabien@symfony.com"
3240 | },
3241 | {
3242 | "name": "Symfony Community",
3243 | "homepage": "https://symfony.com/contributors"
3244 | }
3245 | ],
3246 | "description": "Loads and dumps YAML files",
3247 | "homepage": "https://symfony.com",
3248 | "support": {
3249 | "source": "https://github.com/symfony/yaml/tree/v6.0.3"
3250 | },
3251 | "funding": [
3252 | {
3253 | "url": "https://symfony.com/sponsor",
3254 | "type": "custom"
3255 | },
3256 | {
3257 | "url": "https://github.com/fabpot",
3258 | "type": "github"
3259 | },
3260 | {
3261 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3262 | "type": "tidelift"
3263 | }
3264 | ],
3265 | "time": "2022-01-26T17:23:29+00:00"
3266 | }
3267 | ],
3268 | "aliases": [],
3269 | "minimum-stability": "stable",
3270 | "stability-flags": [],
3271 | "prefer-stable": false,
3272 | "prefer-lowest": false,
3273 | "platform": {
3274 | "ext-pdo": "*"
3275 | },
3276 | "platform-dev": [],
3277 | "plugin-api-version": "2.1.0"
3278 | }
3279 |
--------------------------------------------------------------------------------