Merge ~ubuntu-fr-webteam/ubuntu-fr-www:homepage into ~ubuntu-fr-webteam/ubuntu-fr-www:master

Proposed by vidda.cc
Status: Needs review
Proposed branch: ~ubuntu-fr-webteam/ubuntu-fr-www:homepage
Merge into: ~ubuntu-fr-webteam/ubuntu-fr-www:master
Diff against target: 75029 lines (+22597/-256)
28 files modified
.gitignore (+2/-0)
composer.json (+3/-1)
composer.lock (+195/-202)
dev/null (+0/-53)
views/home.html.twig (+108/-0)
views/includes/footer.html.twig (+68/-0)
views/includes/navbar.html.twig (+27/-0)
views/layout.html.twig (+41/-0)
web/assets/css/style.css (+411/-0)
web/assets/css/style.scss (+426/-0)
web/assets/css/vendor/bootstrap.css (+6757/-0)
web/assets/css/vendor/bootstrap.css.map (+1/-0)
web/assets/css/vendor/bootstrap.min.css (+6/-0)
web/assets/css/vendor/bootstrap.min.css.map (+1/-0)
web/assets/css/vendor/bootstrap_united.css (+6770/-0)
web/assets/css/vendor/bootstrap_united.min.css (+11/-0)
web/assets/css/vendor/font-awesome.css (+2337/-0)
web/assets/css/vendor/font-awesome.min.css (+4/-0)
web/assets/fonts/vendor/fontawesome-webfont.svg (+2671/-0)
web/assets/fonts/vendor/glyphicons-halflings-regular.svg (+288/-0)
web/assets/images/ubuntu-fr.svg (+16/-0)
web/assets/js/script.js (+30/-0)
web/assets/js/vendor/bootstrap.js (+2377/-0)
web/assets/js/vendor/bootstrap.min.js (+7/-0)
web/assets/js/vendor/jquery.min.js (+5/-0)
web/assets/js/vendor/modernizr-mq.js (+3/-0)
web/assets/js/vendor/npm.js (+13/-0)
web/index.php (+19/-0)
Reviewer Review Type Date Requested Status
Ubuntu-fr-webteam Pending
Review via email: mp+312423@code.launchpad.net

Commit message

Ajout des sources de la homepage

Description of the change

Ajout des sources de la homepage.
Les sources de la homepage ont été mises dans le dossier homepage.
Pour tester il suffit d'ouvrir le fichier homepage/index.html dans un navigateur. La homepage correspond à la maquette fournie par Théodore. Seuls les liens ne sont pas fonctionnels à l'heure actuelle.

To post a comment you must log in.
23ad786... by david-cc <email address hidden>

Ajout des images de logo ubuntu

93e31e7... by david-cc <email address hidden>

Ajout de styles avec Media queries

f1b5b58... by david-cc <email address hidden>

Pauffinage des styles et emplacement de div avec media queries

1407bf2... by david-cc <email address hidden>

Ajout des fichiers JS dans l'index.html et fix de styles css

7d324b3... by david-cc <email address hidden>

Silexisation et Twigisation de la homepage

dc1774f... by david-cc <email address hidden>

Fonction pour les assets et suppression du dossier vendor du repo

Unmerged commits

dc1774f... by david-cc <email address hidden>

Fonction pour les assets et suppression du dossier vendor du repo

7d324b3... by david-cc <email address hidden>

Silexisation et Twigisation de la homepage

1407bf2... by david-cc <email address hidden>

Ajout des fichiers JS dans l'index.html et fix de styles css

f1b5b58... by david-cc <email address hidden>

Pauffinage des styles et emplacement de div avec media queries

93e31e7... by david-cc <email address hidden>

Ajout de styles avec Media queries

23ad786... by david-cc <email address hidden>

Ajout des images de logo ubuntu

1861e61... by david-cc <email address hidden>

Ajout des sources de la homepage

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/.gitignore b/.gitignore
0new file mode 1006440new file mode 100644
index 0000000..625582c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
1vendor/
2.htaccess
diff --git a/composer.json b/composer.json
index df5ed00..67c6ded 100644
--- a/composer.json
+++ b/composer.json
@@ -1,5 +1,7 @@
1{1{
2 "require": {2 "require": {
3 "silex/silex": "~1.1"3 "silex/silex": "~1.1",
4 "twig/twig": "^1.29",
5 "symfony/twig-bridge": "^3.2"
4 }6 }
5}7}
diff --git a/composer.lock b/composer.lock
index 3c3a477..7589fd9 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,52 +4,10 @@
4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5 "This file is @generated automatically"5 "This file is @generated automatically"
6 ],6 ],
7 "hash": "91b68680fa1fb7a48fe45bb20daa62f0",7 "hash": "8beb9b0c88a5ec3b3a094ed92a00689a",
8 "content-hash": "85f3e1ccb942151a1dc3ae7815a23cf1",8 "content-hash": "1cf966dc4dc77a125a02aec29d0f7015",
9 "packages": [9 "packages": [
10 {10 {
11 "name": "ircmaxell/password-compat",
12 "version": "v1.0.4",
13 "source": {
14 "type": "git",
15 "url": "https://github.com/ircmaxell/password_compat.git",
16 "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c"
17 },
18 "dist": {
19 "type": "zip",
20 "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c",
21 "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c",
22 "shasum": ""
23 },
24 "require-dev": {
25 "phpunit/phpunit": "4.*"
26 },
27 "type": "library",
28 "autoload": {
29 "files": [
30 "lib/password.php"
31 ]
32 },
33 "notification-url": "https://packagist.org/downloads/",
34 "license": [
35 "MIT"
36 ],
37 "authors": [
38 {
39 "name": "Anthony Ferrara",
40 "email": "ircmaxell@php.net",
41 "homepage": "http://blog.ircmaxell.com"
42 }
43 ],
44 "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash",
45 "homepage": "https://github.com/ircmaxell/password_compat",
46 "keywords": [
47 "hashing",
48 "password"
49 ],
50 "time": "2014-11-20 16:49:30"
51 },
52 {
53 "name": "pimple/pimple",11 "name": "pimple/pimple",
54 "version": "v1.1.1",12 "version": "v1.1.1",
55 "source": {13 "source": {
@@ -97,22 +55,30 @@
97 },55 },
98 {56 {
99 "name": "psr/log",57 "name": "psr/log",
100 "version": "1.0.0",58 "version": "1.0.2",
101 "source": {59 "source": {
102 "type": "git",60 "type": "git",
103 "url": "https://github.com/php-fig/log.git",61 "url": "https://github.com/php-fig/log.git",
104 "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"62 "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
105 },63 },
106 "dist": {64 "dist": {
107 "type": "zip",65 "type": "zip",
108 "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",66 "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
109 "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",67 "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
110 "shasum": ""68 "shasum": ""
111 },69 },
70 "require": {
71 "php": ">=5.3.0"
72 },
112 "type": "library",73 "type": "library",
74 "extra": {
75 "branch-alias": {
76 "dev-master": "1.0.x-dev"
77 }
78 },
113 "autoload": {79 "autoload": {
114 "psr-0": {80 "psr-4": {
115 "Psr\\Log\\": ""81 "Psr\\Log\\": "Psr/Log/"
116 }82 }
117 },83 },
118 "notification-url": "https://packagist.org/downloads/",84 "notification-url": "https://packagist.org/downloads/",
@@ -126,12 +92,13 @@
126 }92 }
127 ],93 ],
128 "description": "Common interface for logging libraries",94 "description": "Common interface for logging libraries",
95 "homepage": "https://github.com/php-fig/log",
129 "keywords": [96 "keywords": [
130 "log",97 "log",
131 "psr",98 "psr",
132 "psr-3"99 "psr-3"
133 ],100 ],
134 "time": "2012-12-21 11:40:51"101 "time": "2016-10-10 12:19:37"
135 },102 },
136 {103 {
137 "name": "silex/silex",104 "name": "silex/silex",
@@ -212,33 +179,33 @@
212 },179 },
213 {180 {
214 "name": "symfony/debug",181 "name": "symfony/debug",
215 "version": "v2.8.7",182 "version": "v3.2.1",
216 "source": {183 "source": {
217 "type": "git",184 "type": "git",
218 "url": "https://github.com/symfony/debug.git",185 "url": "https://github.com/symfony/debug.git",
219 "reference": "c7d6d8a599e4609a1abc76351d6234a2997e16ed"186 "reference": "9f923e68d524a3095c5a2ae5fc7220c7cbc12231"
220 },187 },
221 "dist": {188 "dist": {
222 "type": "zip",189 "type": "zip",
223 "url": "https://api.github.com/repos/symfony/debug/zipball/c7d6d8a599e4609a1abc76351d6234a2997e16ed",190 "url": "https://api.github.com/repos/symfony/debug/zipball/9f923e68d524a3095c5a2ae5fc7220c7cbc12231",
224 "reference": "c7d6d8a599e4609a1abc76351d6234a2997e16ed",191 "reference": "9f923e68d524a3095c5a2ae5fc7220c7cbc12231",
225 "shasum": ""192 "shasum": ""
226 },193 },
227 "require": {194 "require": {
228 "php": ">=5.3.9",195 "php": ">=5.5.9",
229 "psr/log": "~1.0"196 "psr/log": "~1.0"
230 },197 },
231 "conflict": {198 "conflict": {
232 "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"199 "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
233 },200 },
234 "require-dev": {201 "require-dev": {
235 "symfony/class-loader": "~2.2|~3.0.0",202 "symfony/class-loader": "~2.8|~3.0",
236 "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2|~3.0.0"203 "symfony/http-kernel": "~2.8|~3.0"
237 },204 },
238 "type": "library",205 "type": "library",
239 "extra": {206 "extra": {
240 "branch-alias": {207 "branch-alias": {
241 "dev-master": "2.8-dev"208 "dev-master": "3.2-dev"
242 }209 }
243 },210 },
244 "autoload": {211 "autoload": {
@@ -265,31 +232,31 @@
265 ],232 ],
266 "description": "Symfony Debug Component",233 "description": "Symfony Debug Component",
267 "homepage": "https://symfony.com",234 "homepage": "https://symfony.com",
268 "time": "2016-06-06 15:06:25"235 "time": "2016-11-16 22:18:16"
269 },236 },
270 {237 {
271 "name": "symfony/event-dispatcher",238 "name": "symfony/event-dispatcher",
272 "version": "v2.8.7",239 "version": "v3.0.9",
273 "source": {240 "source": {
274 "type": "git",241 "type": "git",
275 "url": "https://github.com/symfony/event-dispatcher.git",242 "url": "https://github.com/symfony/event-dispatcher.git",
276 "reference": "2a6b8713f8bdb582058cfda463527f195b066110"243 "reference": "54da3ff63dec3c9c0e32ec3f95a7d94ef64baa00"
277 },244 },
278 "dist": {245 "dist": {
279 "type": "zip",246 "type": "zip",
280 "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2a6b8713f8bdb582058cfda463527f195b066110",247 "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/54da3ff63dec3c9c0e32ec3f95a7d94ef64baa00",
281 "reference": "2a6b8713f8bdb582058cfda463527f195b066110",248 "reference": "54da3ff63dec3c9c0e32ec3f95a7d94ef64baa00",
282 "shasum": ""249 "shasum": ""
283 },250 },
284 "require": {251 "require": {
285 "php": ">=5.3.9"252 "php": ">=5.5.9"
286 },253 },
287 "require-dev": {254 "require-dev": {
288 "psr/log": "~1.0",255 "psr/log": "~1.0",
289 "symfony/config": "~2.0,>=2.0.5|~3.0.0",256 "symfony/config": "~2.8|~3.0",
290 "symfony/dependency-injection": "~2.6|~3.0.0",257 "symfony/dependency-injection": "~2.8|~3.0",
291 "symfony/expression-language": "~2.6|~3.0.0",258 "symfony/expression-language": "~2.8|~3.0",
292 "symfony/stopwatch": "~2.3|~3.0.0"259 "symfony/stopwatch": "~2.8|~3.0"
293 },260 },
294 "suggest": {261 "suggest": {
295 "symfony/dependency-injection": "",262 "symfony/dependency-injection": "",
@@ -298,7 +265,7 @@
298 "type": "library",265 "type": "library",
299 "extra": {266 "extra": {
300 "branch-alias": {267 "branch-alias": {
301 "dev-master": "2.8-dev"268 "dev-master": "3.0-dev"
302 }269 }
303 },270 },
304 "autoload": {271 "autoload": {
@@ -325,35 +292,33 @@
325 ],292 ],
326 "description": "Symfony EventDispatcher Component",293 "description": "Symfony EventDispatcher Component",
327 "homepage": "https://symfony.com",294 "homepage": "https://symfony.com",
328 "time": "2016-06-06 11:11:27"295 "time": "2016-07-19 10:44:15"
329 },296 },
330 {297 {
331 "name": "symfony/http-foundation",298 "name": "symfony/http-foundation",
332 "version": "v2.8.7",299 "version": "v3.0.9",
333 "source": {300 "source": {
334 "type": "git",301 "type": "git",
335 "url": "https://github.com/symfony/http-foundation.git",302 "url": "https://github.com/symfony/http-foundation.git",
336 "reference": "744dae663ffcfa21d8a111fb63541954199acbb2"303 "reference": "49ba00f8ede742169cb6b70abe33243f4d673f82"
337 },304 },
338 "dist": {305 "dist": {
339 "type": "zip",306 "type": "zip",
340 "url": "https://api.github.com/repos/symfony/http-foundation/zipball/744dae663ffcfa21d8a111fb63541954199acbb2",307 "url": "https://api.github.com/repos/symfony/http-foundation/zipball/49ba00f8ede742169cb6b70abe33243f4d673f82",
341 "reference": "744dae663ffcfa21d8a111fb63541954199acbb2",308 "reference": "49ba00f8ede742169cb6b70abe33243f4d673f82",
342 "shasum": ""309 "shasum": ""
343 },310 },
344 "require": {311 "require": {
345 "php": ">=5.3.9",312 "php": ">=5.5.9",
346 "symfony/polyfill-mbstring": "~1.1",313 "symfony/polyfill-mbstring": "~1.1"
347 "symfony/polyfill-php54": "~1.0",
348 "symfony/polyfill-php55": "~1.0"
349 },314 },
350 "require-dev": {315 "require-dev": {
351 "symfony/expression-language": "~2.4|~3.0.0"316 "symfony/expression-language": "~2.8|~3.0"
352 },317 },
353 "type": "library",318 "type": "library",
354 "extra": {319 "extra": {
355 "branch-alias": {320 "branch-alias": {
356 "dev-master": "2.8-dev"321 "dev-master": "3.0-dev"
357 }322 }
358 },323 },
359 "autoload": {324 "autoload": {
@@ -380,48 +345,48 @@
380 ],345 ],
381 "description": "Symfony HttpFoundation Component",346 "description": "Symfony HttpFoundation Component",
382 "homepage": "https://symfony.com",347 "homepage": "https://symfony.com",
383 "time": "2016-06-06 11:11:27"348 "time": "2016-07-17 13:54:30"
384 },349 },
385 {350 {
386 "name": "symfony/http-kernel",351 "name": "symfony/http-kernel",
387 "version": "v2.8.7",352 "version": "v3.0.9",
388 "source": {353 "source": {
389 "type": "git",354 "type": "git",
390 "url": "https://github.com/symfony/http-kernel.git",355 "url": "https://github.com/symfony/http-kernel.git",
391 "reference": "6b8e5b6100457642e7141dbbfe29f387cbd7e0ef"356 "reference": "d97ba4425e36e79c794e7d14ff36f00f081b37b3"
392 },357 },
393 "dist": {358 "dist": {
394 "type": "zip",359 "type": "zip",
395 "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6b8e5b6100457642e7141dbbfe29f387cbd7e0ef",360 "url": "https://api.github.com/repos/symfony/http-kernel/zipball/d97ba4425e36e79c794e7d14ff36f00f081b37b3",
396 "reference": "6b8e5b6100457642e7141dbbfe29f387cbd7e0ef",361 "reference": "d97ba4425e36e79c794e7d14ff36f00f081b37b3",
397 "shasum": ""362 "shasum": ""
398 },363 },
399 "require": {364 "require": {
400 "php": ">=5.3.9",365 "php": ">=5.5.9",
401 "psr/log": "~1.0",366 "psr/log": "~1.0",
402 "symfony/debug": "~2.6,>=2.6.2",367 "symfony/debug": "~2.8|~3.0",
403 "symfony/event-dispatcher": "~2.6,>=2.6.7|~3.0.0",368 "symfony/event-dispatcher": "~2.8|~3.0",
404 "symfony/http-foundation": "~2.5,>=2.5.4|~3.0.0"369 "symfony/http-foundation": "~2.8.8|~3.0.8|~3.1.2|~3.2"
405 },370 },
406 "conflict": {371 "conflict": {
407 "symfony/config": "<2.7"372 "symfony/config": "<2.8"
408 },373 },
409 "require-dev": {374 "require-dev": {
410 "symfony/browser-kit": "~2.3|~3.0.0",375 "symfony/browser-kit": "~2.8|~3.0",
411 "symfony/class-loader": "~2.1|~3.0.0",376 "symfony/class-loader": "~2.8|~3.0",
412 "symfony/config": "~2.8",377 "symfony/config": "~2.8|~3.0",
413 "symfony/console": "~2.3|~3.0.0",378 "symfony/console": "~2.8|~3.0",
414 "symfony/css-selector": "~2.0,>=2.0.5|~3.0.0",379 "symfony/css-selector": "~2.8|~3.0",
415 "symfony/dependency-injection": "~2.8|~3.0.0",380 "symfony/dependency-injection": "~2.8|~3.0",
416 "symfony/dom-crawler": "~2.0,>=2.0.5|~3.0.0",381 "symfony/dom-crawler": "~2.8|~3.0",
417 "symfony/expression-language": "~2.4|~3.0.0",382 "symfony/expression-language": "~2.8|~3.0",
418 "symfony/finder": "~2.0,>=2.0.5|~3.0.0",383 "symfony/finder": "~2.8|~3.0",
419 "symfony/process": "~2.0,>=2.0.5|~3.0.0",384 "symfony/process": "~2.8|~3.0",
420 "symfony/routing": "~2.8|~3.0.0",385 "symfony/routing": "~2.8|~3.0",
421 "symfony/stopwatch": "~2.3|~3.0.0",386 "symfony/stopwatch": "~2.8|~3.0",
422 "symfony/templating": "~2.2|~3.0.0",387 "symfony/templating": "~2.8|~3.0",
423 "symfony/translation": "~2.0,>=2.0.5|~3.0.0",388 "symfony/translation": "~2.8|~3.0",
424 "symfony/var-dumper": "~2.6|~3.0.0"389 "symfony/var-dumper": "~2.8|~3.0"
425 },390 },
426 "suggest": {391 "suggest": {
427 "symfony/browser-kit": "",392 "symfony/browser-kit": "",
@@ -435,7 +400,7 @@
435 "type": "library",400 "type": "library",
436 "extra": {401 "extra": {
437 "branch-alias": {402 "branch-alias": {
438 "dev-master": "2.8-dev"403 "dev-master": "3.0-dev"
439 }404 }
440 },405 },
441 "autoload": {406 "autoload": {
@@ -462,20 +427,20 @@
462 ],427 ],
463 "description": "Symfony HttpKernel Component",428 "description": "Symfony HttpKernel Component",
464 "homepage": "https://symfony.com",429 "homepage": "https://symfony.com",
465 "time": "2016-06-06 16:05:21"430 "time": "2016-07-30 09:10:37"
466 },431 },
467 {432 {
468 "name": "symfony/polyfill-mbstring",433 "name": "symfony/polyfill-mbstring",
469 "version": "v1.2.0",434 "version": "v1.3.0",
470 "source": {435 "source": {
471 "type": "git",436 "type": "git",
472 "url": "https://github.com/symfony/polyfill-mbstring.git",437 "url": "https://github.com/symfony/polyfill-mbstring.git",
473 "reference": "dff51f72b0706335131b00a7f49606168c582594"438 "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4"
474 },439 },
475 "dist": {440 "dist": {
476 "type": "zip",441 "type": "zip",
477 "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594",442 "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/e79d363049d1c2128f133a2667e4f4190904f7f4",
478 "reference": "dff51f72b0706335131b00a7f49606168c582594",443 "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4",
479 "shasum": ""444 "shasum": ""
480 },445 },
481 "require": {446 "require": {
@@ -487,7 +452,7 @@
487 "type": "library",452 "type": "library",
488 "extra": {453 "extra": {
489 "branch-alias": {454 "branch-alias": {
490 "dev-master": "1.2-dev"455 "dev-master": "1.3-dev"
491 }456 }
492 },457 },
493 "autoload": {458 "autoload": {
@@ -521,40 +486,57 @@
521 "portable",486 "portable",
522 "shim"487 "shim"
523 ],488 ],
524 "time": "2016-05-18 14:26:46"489 "time": "2016-11-14 01:06:16"
525 },490 },
526 {491 {
527 "name": "symfony/polyfill-php54",492 "name": "symfony/routing",
528 "version": "v1.2.0",493 "version": "v3.0.9",
529 "source": {494 "source": {
530 "type": "git",495 "type": "git",
531 "url": "https://github.com/symfony/polyfill-php54.git",496 "url": "https://github.com/symfony/routing.git",
532 "reference": "34d761992f6f2cc6092cc0e5e93f38b53ba5e4f1"497 "reference": "9038984bd9c05ab07280121e9e10f61a7231457b"
533 },498 },
534 "dist": {499 "dist": {
535 "type": "zip",500 "type": "zip",
536 "url": "https://api.github.com/repos/symfony/polyfill-php54/zipball/34d761992f6f2cc6092cc0e5e93f38b53ba5e4f1",501 "url": "https://api.github.com/repos/symfony/routing/zipball/9038984bd9c05ab07280121e9e10f61a7231457b",
537 "reference": "34d761992f6f2cc6092cc0e5e93f38b53ba5e4f1",502 "reference": "9038984bd9c05ab07280121e9e10f61a7231457b",
538 "shasum": ""503 "shasum": ""
539 },504 },
540 "require": {505 "require": {
541 "php": ">=5.3.3"506 "php": ">=5.5.9"
507 },
508 "conflict": {
509 "symfony/config": "<2.8"
510 },
511 "require-dev": {
512 "doctrine/annotations": "~1.0",
513 "doctrine/common": "~2.2",
514 "psr/log": "~1.0",
515 "symfony/config": "~2.8|~3.0",
516 "symfony/expression-language": "~2.8|~3.0",
517 "symfony/http-foundation": "~2.8|~3.0",
518 "symfony/yaml": "~2.8|~3.0"
519 },
520 "suggest": {
521 "doctrine/annotations": "For using the annotation loader",
522 "symfony/config": "For using the all-in-one router or any loader",
523 "symfony/dependency-injection": "For loading routes from a service",
524 "symfony/expression-language": "For using expression matching",
525 "symfony/http-foundation": "For using a Symfony Request object",
526 "symfony/yaml": "For using the YAML loader"
542 },527 },
543 "type": "library",528 "type": "library",
544 "extra": {529 "extra": {
545 "branch-alias": {530 "branch-alias": {
546 "dev-master": "1.2-dev"531 "dev-master": "3.0-dev"
547 }532 }
548 },533 },
549 "autoload": {534 "autoload": {
550 "psr-4": {535 "psr-4": {
551 "Symfony\\Polyfill\\Php54\\": ""536 "Symfony\\Component\\Routing\\": ""
552 },537 },
553 "files": [538 "exclude-from-classmap": [
554 "bootstrap.php"539 "/Tests/"
555 ],
556 "classmap": [
557 "Resources/stubs"
558 ]540 ]
559 },541 },
560 "notification-url": "https://packagist.org/downloads/",542 "notification-url": "https://packagist.org/downloads/",
@@ -563,54 +545,85 @@
563 ],545 ],
564 "authors": [546 "authors": [
565 {547 {
566 "name": "Nicolas Grekas",548 "name": "Fabien Potencier",
567 "email": "p@tchwork.com"549 "email": "fabien@symfony.com"
568 },550 },
569 {551 {
570 "name": "Symfony Community",552 "name": "Symfony Community",
571 "homepage": "https://symfony.com/contributors"553 "homepage": "https://symfony.com/contributors"
572 }554 }
573 ],555 ],
574 "description": "Symfony polyfill backporting some PHP 5.4+ features to lower PHP versions",556 "description": "Symfony Routing Component",
575 "homepage": "https://symfony.com",557 "homepage": "https://symfony.com",
576 "keywords": [558 "keywords": [
577 "compatibility",559 "router",
578 "polyfill",560 "routing",
579 "portable",561 "uri",
580 "shim"562 "url"
581 ],563 ],
582 "time": "2016-05-18 14:26:46"564 "time": "2016-06-29 05:40:00"
583 },565 },
584 {566 {
585 "name": "symfony/polyfill-php55",567 "name": "symfony/twig-bridge",
586 "version": "v1.2.0",568 "version": "v3.2.1",
587 "source": {569 "source": {
588 "type": "git",570 "type": "git",
589 "url": "https://github.com/symfony/polyfill-php55.git",571 "url": "https://github.com/symfony/twig-bridge.git",
590 "reference": "bf2ff9ad6be1a4772cb873e4eea94d70daa95c6d"572 "reference": "f6d8339d7b8b1d71b60eb13888d5db53acb868ac"
591 },573 },
592 "dist": {574 "dist": {
593 "type": "zip",575 "type": "zip",
594 "url": "https://api.github.com/repos/symfony/polyfill-php55/zipball/bf2ff9ad6be1a4772cb873e4eea94d70daa95c6d",576 "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/f6d8339d7b8b1d71b60eb13888d5db53acb868ac",
595 "reference": "bf2ff9ad6be1a4772cb873e4eea94d70daa95c6d",577 "reference": "f6d8339d7b8b1d71b60eb13888d5db53acb868ac",
596 "shasum": ""578 "shasum": ""
597 },579 },
598 "require": {580 "require": {
599 "ircmaxell/password-compat": "~1.0",581 "php": ">=5.5.9",
600 "php": ">=5.3.3"582 "twig/twig": "~1.28|~2.0"
601 },583 },
602 "type": "library",584 "require-dev": {
585 "symfony/asset": "~2.8|~3.0",
586 "symfony/console": "~2.8|~3.0",
587 "symfony/expression-language": "~2.8|~3.0",
588 "symfony/finder": "~2.8|~3.0",
589 "symfony/form": "~3.0.4",
590 "symfony/http-kernel": "~3.2",
591 "symfony/polyfill-intl-icu": "~1.0",
592 "symfony/routing": "~2.8|~3.0",
593 "symfony/security": "~2.8|~3.0",
594 "symfony/security-acl": "~2.8|~3.0",
595 "symfony/stopwatch": "~2.8|~3.0",
596 "symfony/templating": "~2.8|~3.0",
597 "symfony/translation": "~2.8|~3.0",
598 "symfony/var-dumper": "~2.8.10|~3.1.4|~3.2",
599 "symfony/yaml": "~2.8|~3.0"
600 },
601 "suggest": {
602 "symfony/asset": "For using the AssetExtension",
603 "symfony/expression-language": "For using the ExpressionExtension",
604 "symfony/finder": "",
605 "symfony/form": "For using the FormExtension",
606 "symfony/http-kernel": "For using the HttpKernelExtension",
607 "symfony/routing": "For using the RoutingExtension",
608 "symfony/security": "For using the SecurityExtension",
609 "symfony/stopwatch": "For using the StopwatchExtension",
610 "symfony/templating": "For using the TwigEngine",
611 "symfony/translation": "For using the TranslationExtension",
612 "symfony/var-dumper": "For using the DumpExtension",
613 "symfony/yaml": "For using the YamlExtension"
614 },
615 "type": "symfony-bridge",
603 "extra": {616 "extra": {
604 "branch-alias": {617 "branch-alias": {
605 "dev-master": "1.2-dev"618 "dev-master": "3.2-dev"
606 }619 }
607 },620 },
608 "autoload": {621 "autoload": {
609 "psr-4": {622 "psr-4": {
610 "Symfony\\Polyfill\\Php55\\": ""623 "Symfony\\Bridge\\Twig\\": ""
611 },624 },
612 "files": [625 "exclude-from-classmap": [
613 "bootstrap.php"626 "/Tests/"
614 ]627 ]
615 },628 },
616 "notification-url": "https://packagist.org/downloads/",629 "notification-url": "https://packagist.org/downloads/",
@@ -619,98 +632,78 @@
619 ],632 ],
620 "authors": [633 "authors": [
621 {634 {
622 "name": "Nicolas Grekas",635 "name": "Fabien Potencier",
623 "email": "p@tchwork.com"636 "email": "fabien@symfony.com"
624 },637 },
625 {638 {
626 "name": "Symfony Community",639 "name": "Symfony Community",
627 "homepage": "https://symfony.com/contributors"640 "homepage": "https://symfony.com/contributors"
628 }641 }
629 ],642 ],
630 "description": "Symfony polyfill backporting some PHP 5.5+ features to lower PHP versions",643 "description": "Symfony Twig Bridge",
631 "homepage": "https://symfony.com",644 "homepage": "https://symfony.com",
632 "keywords": [645 "time": "2016-12-12 19:31:24"
633 "compatibility",
634 "polyfill",
635 "portable",
636 "shim"
637 ],
638 "time": "2016-05-18 14:26:46"
639 },646 },
640 {647 {
641 "name": "symfony/routing",648 "name": "twig/twig",
642 "version": "v2.8.7",649 "version": "v1.29.0",
643 "source": {650 "source": {
644 "type": "git",651 "type": "git",
645 "url": "https://github.com/symfony/routing.git",652 "url": "https://github.com/twigphp/Twig.git",
646 "reference": "4cbc81aa378869445fbd2d18c8c8b4a056c632a0"653 "reference": "74f723e542368ca2080b252740be5f1113ebb898"
647 },654 },
648 "dist": {655 "dist": {
649 "type": "zip",656 "type": "zip",
650 "url": "https://api.github.com/repos/symfony/routing/zipball/4cbc81aa378869445fbd2d18c8c8b4a056c632a0",657 "url": "https://api.github.com/repos/twigphp/Twig/zipball/74f723e542368ca2080b252740be5f1113ebb898",
651 "reference": "4cbc81aa378869445fbd2d18c8c8b4a056c632a0",658 "reference": "74f723e542368ca2080b252740be5f1113ebb898",
652 "shasum": ""659 "shasum": ""
653 },660 },
654 "require": {661 "require": {
655 "php": ">=5.3.9"662 "php": ">=5.2.7"
656 },
657 "conflict": {
658 "symfony/config": "<2.7"
659 },663 },
660 "require-dev": {664 "require-dev": {
661 "doctrine/annotations": "~1.0",665 "symfony/debug": "~2.7",
662 "doctrine/common": "~2.2",666 "symfony/phpunit-bridge": "~3.2@dev"
663 "psr/log": "~1.0",
664 "symfony/config": "~2.7|~3.0.0",
665 "symfony/expression-language": "~2.4|~3.0.0",
666 "symfony/http-foundation": "~2.3|~3.0.0",
667 "symfony/yaml": "~2.0,>=2.0.5|~3.0.0"
668 },
669 "suggest": {
670 "doctrine/annotations": "For using the annotation loader",
671 "symfony/config": "For using the all-in-one router or any loader",
672 "symfony/dependency-injection": "For loading routes from a service",
673 "symfony/expression-language": "For using expression matching",
674 "symfony/http-foundation": "For using a Symfony Request object",
675 "symfony/yaml": "For using the YAML loader"
676 },667 },
677 "type": "library",668 "type": "library",
678 "extra": {669 "extra": {
679 "branch-alias": {670 "branch-alias": {
680 "dev-master": "2.8-dev"671 "dev-master": "1.29-dev"
681 }672 }
682 },673 },
683 "autoload": {674 "autoload": {
684 "psr-4": {675 "psr-0": {
685 "Symfony\\Component\\Routing\\": ""676 "Twig_": "lib/"
686 },677 }
687 "exclude-from-classmap": [
688 "/Tests/"
689 ]
690 },678 },
691 "notification-url": "https://packagist.org/downloads/",679 "notification-url": "https://packagist.org/downloads/",
692 "license": [680 "license": [
693 "MIT"681 "BSD-3-Clause"
694 ],682 ],
695 "authors": [683 "authors": [
696 {684 {
697 "name": "Fabien Potencier",685 "name": "Fabien Potencier",
698 "email": "fabien@symfony.com"686 "email": "fabien@symfony.com",
687 "homepage": "http://fabien.potencier.org",
688 "role": "Lead Developer"
699 },689 },
700 {690 {
701 "name": "Symfony Community",691 "name": "Armin Ronacher",
702 "homepage": "https://symfony.com/contributors"692 "email": "armin.ronacher@active-4.com",
693 "role": "Project Founder"
694 },
695 {
696 "name": "Twig Team",
697 "homepage": "http://twig.sensiolabs.org/contributors",
698 "role": "Contributors"
703 }699 }
704 ],700 ],
705 "description": "Symfony Routing Component",701 "description": "Twig, the flexible, fast, and secure template language for PHP",
706 "homepage": "https://symfony.com",702 "homepage": "http://twig.sensiolabs.org",
707 "keywords": [703 "keywords": [
708 "router",704 "templating"
709 "routing",
710 "uri",
711 "url"
712 ],705 ],
713 "time": "2016-05-30 06:57:11"706 "time": "2016-12-13 17:28:18"
714 }707 }
715 ],708 ],
716 "packages-dev": [],709 "packages-dev": [],
diff --git a/vendor/autoload.php b/vendor/autoload.php
717deleted file mode 100644710deleted file mode 100644
index 7527a4c..0000000
--- a/vendor/autoload.php
+++ /dev/null
@@ -1,7 +0,0 @@
1<?php
2
3// autoload.php @generated by Composer
4
5require_once __DIR__ . '/composer' . '/autoload_real.php';
6
7return ComposerAutoloaderInit7a5738e436f8554b2f9edfd777d29a1e::getLoader();
diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php
8deleted file mode 1006440deleted file mode 100644
index ff6ecfb..0000000
--- a/vendor/composer/ClassLoader.php
+++ /dev/null
@@ -1,413 +0,0 @@
1<?php
2
3/*
4 * This file is part of Composer.
5 *
6 * (c) Nils Adermann <naderman@naderman.de>
7 * Jordi Boggiano <j.boggiano@seld.be>
8 *
9 * For the full copyright and license information, please view the LICENSE
10 * file that was distributed with this source code.
11 */
12
13namespace Composer\Autoload;
14
15/**
16 * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
17 *
18 * $loader = new \Composer\Autoload\ClassLoader();
19 *
20 * // register classes with namespaces
21 * $loader->add('Symfony\Component', __DIR__.'/component');
22 * $loader->add('Symfony', __DIR__.'/framework');
23 *
24 * // activate the autoloader
25 * $loader->register();
26 *
27 * // to enable searching the include path (eg. for PEAR packages)
28 * $loader->setUseIncludePath(true);
29 *
30 * In this example, if you try to use a class in the Symfony\Component
31 * namespace or one of its children (Symfony\Component\Console for instance),
32 * the autoloader will first look for the class under the component/
33 * directory, and it will then fallback to the framework/ directory if not
34 * found before giving up.
35 *
36 * This class is loosely based on the Symfony UniversalClassLoader.
37 *
38 * @author Fabien Potencier <fabien@symfony.com>
39 * @author Jordi Boggiano <j.boggiano@seld.be>
40 * @see http://www.php-fig.org/psr/psr-0/
41 * @see http://www.php-fig.org/psr/psr-4/
42 */
43class ClassLoader
44{
45 // PSR-4
46 private $prefixLengthsPsr4 = array();
47 private $prefixDirsPsr4 = array();
48 private $fallbackDirsPsr4 = array();
49
50 // PSR-0
51 private $prefixesPsr0 = array();
52 private $fallbackDirsPsr0 = array();
53
54 private $useIncludePath = false;
55 private $classMap = array();
56
57 private $classMapAuthoritative = false;
58
59 public function getPrefixes()
60 {
61 if (!empty($this->prefixesPsr0)) {
62 return call_user_func_array('array_merge', $this->prefixesPsr0);
63 }
64
65 return array();
66 }
67
68 public function getPrefixesPsr4()
69 {
70 return $this->prefixDirsPsr4;
71 }
72
73 public function getFallbackDirs()
74 {
75 return $this->fallbackDirsPsr0;
76 }
77
78 public function getFallbackDirsPsr4()
79 {
80 return $this->fallbackDirsPsr4;
81 }
82
83 public function getClassMap()
84 {
85 return $this->classMap;
86 }
87
88 /**
89 * @param array $classMap Class to filename map
90 */
91 public function addClassMap(array $classMap)
92 {
93 if ($this->classMap) {
94 $this->classMap = array_merge($this->classMap, $classMap);
95 } else {
96 $this->classMap = $classMap;
97 }
98 }
99
100 /**
101 * Registers a set of PSR-0 directories for a given prefix, either
102 * appending or prepending to the ones previously set for this prefix.
103 *
104 * @param string $prefix The prefix
105 * @param array|string $paths The PSR-0 root directories
106 * @param bool $prepend Whether to prepend the directories
107 */
108 public function add($prefix, $paths, $prepend = false)
109 {
110 if (!$prefix) {
111 if ($prepend) {
112 $this->fallbackDirsPsr0 = array_merge(
113 (array) $paths,
114 $this->fallbackDirsPsr0
115 );
116 } else {
117 $this->fallbackDirsPsr0 = array_merge(
118 $this->fallbackDirsPsr0,
119 (array) $paths
120 );
121 }
122
123 return;
124 }
125
126 $first = $prefix[0];
127 if (!isset($this->prefixesPsr0[$first][$prefix])) {
128 $this->prefixesPsr0[$first][$prefix] = (array) $paths;
129
130 return;
131 }
132 if ($prepend) {
133 $this->prefixesPsr0[$first][$prefix] = array_merge(
134 (array) $paths,
135 $this->prefixesPsr0[$first][$prefix]
136 );
137 } else {
138 $this->prefixesPsr0[$first][$prefix] = array_merge(
139 $this->prefixesPsr0[$first][$prefix],
140 (array) $paths
141 );
142 }
143 }
144
145 /**
146 * Registers a set of PSR-4 directories for a given namespace, either
147 * appending or prepending to the ones previously set for this namespace.
148 *
149 * @param string $prefix The prefix/namespace, with trailing '\\'
150 * @param array|string $paths The PSR-4 base directories
151 * @param bool $prepend Whether to prepend the directories
152 *
153 * @throws \InvalidArgumentException
154 */
155 public function addPsr4($prefix, $paths, $prepend = false)
156 {
157 if (!$prefix) {
158 // Register directories for the root namespace.
159 if ($prepend) {
160 $this->fallbackDirsPsr4 = array_merge(
161 (array) $paths,
162 $this->fallbackDirsPsr4
163 );
164 } else {
165 $this->fallbackDirsPsr4 = array_merge(
166 $this->fallbackDirsPsr4,
167 (array) $paths
168 );
169 }
170 } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
171 // Register directories for a new namespace.
172 $length = strlen($prefix);
173 if ('\\' !== $prefix[$length - 1]) {
174 throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
175 }
176 $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
177 $this->prefixDirsPsr4[$prefix] = (array) $paths;
178 } elseif ($prepend) {
179 // Prepend directories for an already registered namespace.
180 $this->prefixDirsPsr4[$prefix] = array_merge(
181 (array) $paths,
182 $this->prefixDirsPsr4[$prefix]
183 );
184 } else {
185 // Append directories for an already registered namespace.
186 $this->prefixDirsPsr4[$prefix] = array_merge(
187 $this->prefixDirsPsr4[$prefix],
188 (array) $paths
189 );
190 }
191 }
192
193 /**
194 * Registers a set of PSR-0 directories for a given prefix,
195 * replacing any others previously set for this prefix.
196 *
197 * @param string $prefix The prefix
198 * @param array|string $paths The PSR-0 base directories
199 */
200 public function set($prefix, $paths)
201 {
202 if (!$prefix) {
203 $this->fallbackDirsPsr0 = (array) $paths;
204 } else {
205 $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
206 }
207 }
208
209 /**
210 * Registers a set of PSR-4 directories for a given namespace,
211 * replacing any others previously set for this namespace.
212 *
213 * @param string $prefix The prefix/namespace, with trailing '\\'
214 * @param array|string $paths The PSR-4 base directories
215 *
216 * @throws \InvalidArgumentException
217 */
218 public function setPsr4($prefix, $paths)
219 {
220 if (!$prefix) {
221 $this->fallbackDirsPsr4 = (array) $paths;
222 } else {
223 $length = strlen($prefix);
224 if ('\\' !== $prefix[$length - 1]) {
225 throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
226 }
227 $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
228 $this->prefixDirsPsr4[$prefix] = (array) $paths;
229 }
230 }
231
232 /**
233 * Turns on searching the include path for class files.
234 *
235 * @param bool $useIncludePath
236 */
237 public function setUseIncludePath($useIncludePath)
238 {
239 $this->useIncludePath = $useIncludePath;
240 }
241
242 /**
243 * Can be used to check if the autoloader uses the include path to check
244 * for classes.
245 *
246 * @return bool
247 */
248 public function getUseIncludePath()
249 {
250 return $this->useIncludePath;
251 }
252
253 /**
254 * Turns off searching the prefix and fallback directories for classes
255 * that have not been registered with the class map.
256 *
257 * @param bool $classMapAuthoritative
258 */
259 public function setClassMapAuthoritative($classMapAuthoritative)
260 {
261 $this->classMapAuthoritative = $classMapAuthoritative;
262 }
263
264 /**
265 * Should class lookup fail if not found in the current class map?
266 *
267 * @return bool
268 */
269 public function isClassMapAuthoritative()
270 {
271 return $this->classMapAuthoritative;
272 }
273
274 /**
275 * Registers this instance as an autoloader.
276 *
277 * @param bool $prepend Whether to prepend the autoloader or not
278 */
279 public function register($prepend = false)
280 {
281 spl_autoload_register(array($this, 'loadClass'), true, $prepend);
282 }
283
284 /**
285 * Unregisters this instance as an autoloader.
286 */
287 public function unregister()
288 {
289 spl_autoload_unregister(array($this, 'loadClass'));
290 }
291
292 /**
293 * Loads the given class or interface.
294 *
295 * @param string $class The name of the class
296 * @return bool|null True if loaded, null otherwise
297 */
298 public function loadClass($class)
299 {
300 if ($file = $this->findFile($class)) {
301 includeFile($file);
302
303 return true;
304 }
305 }
306
307 /**
308 * Finds the path to the file where the class is defined.
309 *
310 * @param string $class The name of the class
311 *
312 * @return string|false The path if found, false otherwise
313 */
314 public function findFile($class)
315 {
316 // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
317 if ('\\' == $class[0]) {
318 $class = substr($class, 1);
319 }
320
321 // class map lookup
322 if (isset($this->classMap[$class])) {
323 return $this->classMap[$class];
324 }
325 if ($this->classMapAuthoritative) {
326 return false;
327 }
328
329 $file = $this->findFileWithExtension($class, '.php');
330
331 // Search for Hack files if we are running on HHVM
332 if ($file === null && defined('HHVM_VERSION')) {
333 $file = $this->findFileWithExtension($class, '.hh');
334 }
335
336 if ($file === null) {
337 // Remember that this class does not exist.
338 return $this->classMap[$class] = false;
339 }
340
341 return $file;
342 }
343
344 private function findFileWithExtension($class, $ext)
345 {
346 // PSR-4 lookup
347 $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
348
349 $first = $class[0];
350 if (isset($this->prefixLengthsPsr4[$first])) {
351 foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
352 if (0 === strpos($class, $prefix)) {
353 foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
354 if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
355 return $file;
356 }
357 }
358 }
359 }
360 }
361
362 // PSR-4 fallback dirs
363 foreach ($this->fallbackDirsPsr4 as $dir) {
364 if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
365 return $file;
366 }
367 }
368
369 // PSR-0 lookup
370 if (false !== $pos = strrpos($class, '\\')) {
371 // namespaced class name
372 $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
373 . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
374 } else {
375 // PEAR-like class name
376 $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
377 }
378
379 if (isset($this->prefixesPsr0[$first])) {
380 foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
381 if (0 === strpos($class, $prefix)) {
382 foreach ($dirs as $dir) {
383 if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
384 return $file;
385 }
386 }
387 }
388 }
389 }
390
391 // PSR-0 fallback dirs
392 foreach ($this->fallbackDirsPsr0 as $dir) {
393 if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
394 return $file;
395 }
396 }
397
398 // PSR-0 include paths.
399 if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
400 return $file;
401 }
402 }
403}
404
405/**
406 * Scope isolated include.
407 *
408 * Prevents access to $this/self from included files.
409 */
410function includeFile($file)
411{
412 include $file;
413}
diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE
414deleted file mode 1006440deleted file mode 100644
index 1a28124..0000000
--- a/vendor/composer/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
1
2Copyright (c) 2016 Nils Adermann, Jordi Boggiano
3
4Permission is hereby granted, free of charge, to any person obtaining a copy
5of this software and associated documentation files (the "Software"), to deal
6in the Software without restriction, including without limitation the rights
7to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8copies of the Software, and to permit persons to whom the Software is furnished
9to do so, subject to the following conditions:
10
11The above copyright notice and this permission notice shall be included in all
12copies or substantial portions of the Software.
13
14THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20THE SOFTWARE.
21
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
22deleted file mode 1006440deleted file mode 100644
index 7b48126..0000000
--- a/vendor/composer/autoload_classmap.php
+++ /dev/null
@@ -1,12 +0,0 @@
1<?php
2
3// autoload_classmap.php @generated by Composer
4
5$vendorDir = dirname(dirname(__FILE__));
6$baseDir = dirname($vendorDir);
7
8return array(
9 'CallbackFilterIterator' => $vendorDir . '/symfony/polyfill-php54/Resources/stubs/CallbackFilterIterator.php',
10 'RecursiveCallbackFilterIterator' => $vendorDir . '/symfony/polyfill-php54/Resources/stubs/RecursiveCallbackFilterIterator.php',
11 'SessionHandlerInterface' => $vendorDir . '/symfony/polyfill-php54/Resources/stubs/SessionHandlerInterface.php',
12);
diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php
13deleted file mode 1006440deleted file mode 100644
index 82c0de9..0000000
--- a/vendor/composer/autoload_files.php
+++ /dev/null
@@ -1,13 +0,0 @@
1<?php
2
3// autoload_files.php @generated by Composer
4
5$vendorDir = dirname(dirname(__FILE__));
6$baseDir = dirname($vendorDir);
7
8return array(
9 'e40631d46120a9c38ea139981f8dab26' => $vendorDir . '/ircmaxell/password-compat/lib/password.php',
10 '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
11 'edc6464955a37aa4d5fbf39d40fb6ee7' => $vendorDir . '/symfony/polyfill-php55/bootstrap.php',
12 '3e2471375464aac821502deb0ac64275' => $vendorDir . '/symfony/polyfill-php54/bootstrap.php',
13);
diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php
14deleted file mode 1006440deleted file mode 100644
index ee5ced3..0000000
--- a/vendor/composer/autoload_namespaces.php
+++ /dev/null
@@ -1,11 +0,0 @@
1<?php
2
3// autoload_namespaces.php @generated by Composer
4
5$vendorDir = dirname(dirname(__FILE__));
6$baseDir = dirname($vendorDir);
7
8return array(
9 'Psr\\Log\\' => array($vendorDir . '/psr/log'),
10 'Pimple' => array($vendorDir . '/pimple/pimple/lib'),
11);
diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php
12deleted file mode 1006440deleted file mode 100644
index 81b771d..0000000
--- a/vendor/composer/autoload_psr4.php
+++ /dev/null
@@ -1,18 +0,0 @@
1<?php
2
3// autoload_psr4.php @generated by Composer
4
5$vendorDir = dirname(dirname(__FILE__));
6$baseDir = dirname($vendorDir);
7
8return array(
9 'Symfony\\Polyfill\\Php55\\' => array($vendorDir . '/symfony/polyfill-php55'),
10 'Symfony\\Polyfill\\Php54\\' => array($vendorDir . '/symfony/polyfill-php54'),
11 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
12 'Symfony\\Component\\Routing\\' => array($vendorDir . '/symfony/routing'),
13 'Symfony\\Component\\HttpKernel\\' => array($vendorDir . '/symfony/http-kernel'),
14 'Symfony\\Component\\HttpFoundation\\' => array($vendorDir . '/symfony/http-foundation'),
15 'Symfony\\Component\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher'),
16 'Symfony\\Component\\Debug\\' => array($vendorDir . '/symfony/debug'),
17 'Silex\\' => array($vendorDir . '/silex/silex/src/Silex'),
18);
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
19deleted file mode 1006440deleted file mode 100644
index e863ab3..0000000
--- a/vendor/composer/autoload_real.php
+++ /dev/null
@@ -1,70 +0,0 @@
1<?php
2
3// autoload_real.php @generated by Composer
4
5class ComposerAutoloaderInit7a5738e436f8554b2f9edfd777d29a1e
6{
7 private static $loader;
8
9 public static function loadClassLoader($class)
10 {
11 if ('Composer\Autoload\ClassLoader' === $class) {
12 require __DIR__ . '/ClassLoader.php';
13 }
14 }
15
16 public static function getLoader()
17 {
18 if (null !== self::$loader) {
19 return self::$loader;
20 }
21
22 spl_autoload_register(array('ComposerAutoloaderInit7a5738e436f8554b2f9edfd777d29a1e', 'loadClassLoader'), true, true);
23 self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24 spl_autoload_unregister(array('ComposerAutoloaderInit7a5738e436f8554b2f9edfd777d29a1e', 'loadClassLoader'));
25
26 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION');
27 if ($useStaticLoader) {
28 require_once __DIR__ . '/autoload_static.php';
29
30 call_user_func(\Composer\Autoload\ComposerStaticInit7a5738e436f8554b2f9edfd777d29a1e::getInitializer($loader));
31 } else {
32 $map = require __DIR__ . '/autoload_namespaces.php';
33 foreach ($map as $namespace => $path) {
34 $loader->set($namespace, $path);
35 }
36
37 $map = require __DIR__ . '/autoload_psr4.php';
38 foreach ($map as $namespace => $path) {
39 $loader->setPsr4($namespace, $path);
40 }
41
42 $classMap = require __DIR__ . '/autoload_classmap.php';
43 if ($classMap) {
44 $loader->addClassMap($classMap);
45 }
46 }
47
48 $loader->register(true);
49
50 if ($useStaticLoader) {
51 $includeFiles = Composer\Autoload\ComposerStaticInit7a5738e436f8554b2f9edfd777d29a1e::$files;
52 } else {
53 $includeFiles = require __DIR__ . '/autoload_files.php';
54 }
55 foreach ($includeFiles as $fileIdentifier => $file) {
56 composerRequire7a5738e436f8554b2f9edfd777d29a1e($fileIdentifier, $file);
57 }
58
59 return $loader;
60 }
61}
62
63function composerRequire7a5738e436f8554b2f9edfd777d29a1e($fileIdentifier, $file)
64{
65 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66 require $file;
67
68 $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
69 }
70}
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
71deleted file mode 1006440deleted file mode 100644
index 496a876..0000000
--- a/vendor/composer/autoload_static.php
+++ /dev/null
@@ -1,100 +0,0 @@
1<?php
2
3// autoload_static.php @generated by Composer
4
5namespace Composer\Autoload;
6
7class ComposerStaticInit7a5738e436f8554b2f9edfd777d29a1e
8{
9 public static $files = array (
10 'e40631d46120a9c38ea139981f8dab26' => __DIR__ . '/..' . '/ircmaxell/password-compat/lib/password.php',
11 '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
12 'edc6464955a37aa4d5fbf39d40fb6ee7' => __DIR__ . '/..' . '/symfony/polyfill-php55/bootstrap.php',
13 '3e2471375464aac821502deb0ac64275' => __DIR__ . '/..' . '/symfony/polyfill-php54/bootstrap.php',
14 );
15
16 public static $prefixLengthsPsr4 = array (
17 'S' =>
18 array (
19 'Symfony\\Polyfill\\Php55\\' => 23,
20 'Symfony\\Polyfill\\Php54\\' => 23,
21 'Symfony\\Polyfill\\Mbstring\\' => 26,
22 'Symfony\\Component\\Routing\\' => 26,
23 'Symfony\\Component\\HttpKernel\\' => 29,
24 'Symfony\\Component\\HttpFoundation\\' => 33,
25 'Symfony\\Component\\EventDispatcher\\' => 34,
26 'Symfony\\Component\\Debug\\' => 24,
27 'Silex\\' => 6,
28 ),
29 );
30
31 public static $prefixDirsPsr4 = array (
32 'Symfony\\Polyfill\\Php55\\' =>
33 array (
34 0 => __DIR__ . '/..' . '/symfony/polyfill-php55',
35 ),
36 'Symfony\\Polyfill\\Php54\\' =>
37 array (
38 0 => __DIR__ . '/..' . '/symfony/polyfill-php54',
39 ),
40 'Symfony\\Polyfill\\Mbstring\\' =>
41 array (
42 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
43 ),
44 'Symfony\\Component\\Routing\\' =>
45 array (
46 0 => __DIR__ . '/..' . '/symfony/routing',
47 ),
48 'Symfony\\Component\\HttpKernel\\' =>
49 array (
50 0 => __DIR__ . '/..' . '/symfony/http-kernel',
51 ),
52 'Symfony\\Component\\HttpFoundation\\' =>
53 array (
54 0 => __DIR__ . '/..' . '/symfony/http-foundation',
55 ),
56 'Symfony\\Component\\EventDispatcher\\' =>
57 array (
58 0 => __DIR__ . '/..' . '/symfony/event-dispatcher',
59 ),
60 'Symfony\\Component\\Debug\\' =>
61 array (
62 0 => __DIR__ . '/..' . '/symfony/debug',
63 ),
64 'Silex\\' =>
65 array (
66 0 => __DIR__ . '/..' . '/silex/silex/src/Silex',
67 ),
68 );
69
70 public static $prefixesPsr0 = array (
71 'P' =>
72 array (
73 'Psr\\Log\\' =>
74 array (
75 0 => __DIR__ . '/..' . '/psr/log',
76 ),
77 'Pimple' =>
78 array (
79 0 => __DIR__ . '/..' . '/pimple/pimple/lib',
80 ),
81 ),
82 );
83
84 public static $classMap = array (
85 'CallbackFilterIterator' => __DIR__ . '/..' . '/symfony/polyfill-php54/Resources/stubs/CallbackFilterIterator.php',
86 'RecursiveCallbackFilterIterator' => __DIR__ . '/..' . '/symfony/polyfill-php54/Resources/stubs/RecursiveCallbackFilterIterator.php',
87 'SessionHandlerInterface' => __DIR__ . '/..' . '/symfony/polyfill-php54/Resources/stubs/SessionHandlerInterface.php',
88 );
89
90 public static function getInitializer(ClassLoader $loader)
91 {
92 return \Closure::bind(function () use ($loader) {
93 $loader->prefixLengthsPsr4 = ComposerStaticInit7a5738e436f8554b2f9edfd777d29a1e::$prefixLengthsPsr4;
94 $loader->prefixDirsPsr4 = ComposerStaticInit7a5738e436f8554b2f9edfd777d29a1e::$prefixDirsPsr4;
95 $loader->prefixesPsr0 = ComposerStaticInit7a5738e436f8554b2f9edfd777d29a1e::$prefixesPsr0;
96 $loader->classMap = ComposerStaticInit7a5738e436f8554b2f9edfd777d29a1e::$classMap;
97
98 }, null, ClassLoader::class);
99 }
100}
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
101deleted file mode 1006440deleted file mode 100644
index cc70848..0000000
--- a/vendor/composer/installed.json
+++ /dev/null
@@ -1,731 +0,0 @@
1[
2 {
3 "name": "symfony/routing",
4 "version": "v2.8.7",
5 "version_normalized": "2.8.7.0",
6 "source": {
7 "type": "git",
8 "url": "https://github.com/symfony/routing.git",
9 "reference": "4cbc81aa378869445fbd2d18c8c8b4a056c632a0"
10 },
11 "dist": {
12 "type": "zip",
13 "url": "https://api.github.com/repos/symfony/routing/zipball/4cbc81aa378869445fbd2d18c8c8b4a056c632a0",
14 "reference": "4cbc81aa378869445fbd2d18c8c8b4a056c632a0",
15 "shasum": ""
16 },
17 "require": {
18 "php": ">=5.3.9"
19 },
20 "conflict": {
21 "symfony/config": "<2.7"
22 },
23 "require-dev": {
24 "doctrine/annotations": "~1.0",
25 "doctrine/common": "~2.2",
26 "psr/log": "~1.0",
27 "symfony/config": "~2.7|~3.0.0",
28 "symfony/expression-language": "~2.4|~3.0.0",
29 "symfony/http-foundation": "~2.3|~3.0.0",
30 "symfony/yaml": "~2.0,>=2.0.5|~3.0.0"
31 },
32 "suggest": {
33 "doctrine/annotations": "For using the annotation loader",
34 "symfony/config": "For using the all-in-one router or any loader",
35 "symfony/dependency-injection": "For loading routes from a service",
36 "symfony/expression-language": "For using expression matching",
37 "symfony/http-foundation": "For using a Symfony Request object",
38 "symfony/yaml": "For using the YAML loader"
39 },
40 "time": "2016-05-30 06:57:11",
41 "type": "library",
42 "extra": {
43 "branch-alias": {
44 "dev-master": "2.8-dev"
45 }
46 },
47 "installation-source": "dist",
48 "autoload": {
49 "psr-4": {
50 "Symfony\\Component\\Routing\\": ""
51 },
52 "exclude-from-classmap": [
53 "/Tests/"
54 ]
55 },
56 "notification-url": "https://packagist.org/downloads/",
57 "license": [
58 "MIT"
59 ],
60 "authors": [
61 {
62 "name": "Fabien Potencier",
63 "email": "fabien@symfony.com"
64 },
65 {
66 "name": "Symfony Community",
67 "homepage": "https://symfony.com/contributors"
68 }
69 ],
70 "description": "Symfony Routing Component",
71 "homepage": "https://symfony.com",
72 "keywords": [
73 "router",
74 "routing",
75 "uri",
76 "url"
77 ]
78 },
79 {
80 "name": "psr/log",
81 "version": "1.0.0",
82 "version_normalized": "1.0.0.0",
83 "source": {
84 "type": "git",
85 "url": "https://github.com/php-fig/log.git",
86 "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
87 },
88 "dist": {
89 "type": "zip",
90 "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
91 "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
92 "shasum": ""
93 },
94 "time": "2012-12-21 11:40:51",
95 "type": "library",
96 "installation-source": "dist",
97 "autoload": {
98 "psr-0": {
99 "Psr\\Log\\": ""
100 }
101 },
102 "notification-url": "https://packagist.org/downloads/",
103 "license": [
104 "MIT"
105 ],
106 "authors": [
107 {
108 "name": "PHP-FIG",
109 "homepage": "http://www.php-fig.org/"
110 }
111 ],
112 "description": "Common interface for logging libraries",
113 "keywords": [
114 "log",
115 "psr",
116 "psr-3"
117 ]
118 },
119 {
120 "name": "symfony/debug",
121 "version": "v2.8.7",
122 "version_normalized": "2.8.7.0",
123 "source": {
124 "type": "git",
125 "url": "https://github.com/symfony/debug.git",
126 "reference": "c7d6d8a599e4609a1abc76351d6234a2997e16ed"
127 },
128 "dist": {
129 "type": "zip",
130 "url": "https://api.github.com/repos/symfony/debug/zipball/c7d6d8a599e4609a1abc76351d6234a2997e16ed",
131 "reference": "c7d6d8a599e4609a1abc76351d6234a2997e16ed",
132 "shasum": ""
133 },
134 "require": {
135 "php": ">=5.3.9",
136 "psr/log": "~1.0"
137 },
138 "conflict": {
139 "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
140 },
141 "require-dev": {
142 "symfony/class-loader": "~2.2|~3.0.0",
143 "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2|~3.0.0"
144 },
145 "time": "2016-06-06 15:06:25",
146 "type": "library",
147 "extra": {
148 "branch-alias": {
149 "dev-master": "2.8-dev"
150 }
151 },
152 "installation-source": "dist",
153 "autoload": {
154 "psr-4": {
155 "Symfony\\Component\\Debug\\": ""
156 },
157 "exclude-from-classmap": [
158 "/Tests/"
159 ]
160 },
161 "notification-url": "https://packagist.org/downloads/",
162 "license": [
163 "MIT"
164 ],
165 "authors": [
166 {
167 "name": "Fabien Potencier",
168 "email": "fabien@symfony.com"
169 },
170 {
171 "name": "Symfony Community",
172 "homepage": "https://symfony.com/contributors"
173 }
174 ],
175 "description": "Symfony Debug Component",
176 "homepage": "https://symfony.com"
177 },
178 {
179 "name": "symfony/polyfill-mbstring",
180 "version": "v1.2.0",
181 "version_normalized": "1.2.0.0",
182 "source": {
183 "type": "git",
184 "url": "https://github.com/symfony/polyfill-mbstring.git",
185 "reference": "dff51f72b0706335131b00a7f49606168c582594"
186 },
187 "dist": {
188 "type": "zip",
189 "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594",
190 "reference": "dff51f72b0706335131b00a7f49606168c582594",
191 "shasum": ""
192 },
193 "require": {
194 "php": ">=5.3.3"
195 },
196 "suggest": {
197 "ext-mbstring": "For best performance"
198 },
199 "time": "2016-05-18 14:26:46",
200 "type": "library",
201 "extra": {
202 "branch-alias": {
203 "dev-master": "1.2-dev"
204 }
205 },
206 "installation-source": "dist",
207 "autoload": {
208 "psr-4": {
209 "Symfony\\Polyfill\\Mbstring\\": ""
210 },
211 "files": [
212 "bootstrap.php"
213 ]
214 },
215 "notification-url": "https://packagist.org/downloads/",
216 "license": [
217 "MIT"
218 ],
219 "authors": [
220 {
221 "name": "Nicolas Grekas",
222 "email": "p@tchwork.com"
223 },
224 {
225 "name": "Symfony Community",
226 "homepage": "https://symfony.com/contributors"
227 }
228 ],
229 "description": "Symfony polyfill for the Mbstring extension",
230 "homepage": "https://symfony.com",
231 "keywords": [
232 "compatibility",
233 "mbstring",
234 "polyfill",
235 "portable",
236 "shim"
237 ]
238 },
239 {
240 "name": "ircmaxell/password-compat",
241 "version": "v1.0.4",
242 "version_normalized": "1.0.4.0",
243 "source": {
244 "type": "git",
245 "url": "https://github.com/ircmaxell/password_compat.git",
246 "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c"
247 },
248 "dist": {
249 "type": "zip",
250 "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c",
251 "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c",
252 "shasum": ""
253 },
254 "require-dev": {
255 "phpunit/phpunit": "4.*"
256 },
257 "time": "2014-11-20 16:49:30",
258 "type": "library",
259 "installation-source": "dist",
260 "autoload": {
261 "files": [
262 "lib/password.php"
263 ]
264 },
265 "notification-url": "https://packagist.org/downloads/",
266 "license": [
267 "MIT"
268 ],
269 "authors": [
270 {
271 "name": "Anthony Ferrara",
272 "email": "ircmaxell@php.net",
273 "homepage": "http://blog.ircmaxell.com"
274 }
275 ],
276 "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash",
277 "homepage": "https://github.com/ircmaxell/password_compat",
278 "keywords": [
279 "hashing",
280 "password"
281 ]
282 },
283 {
284 "name": "symfony/polyfill-php55",
285 "version": "v1.2.0",
286 "version_normalized": "1.2.0.0",
287 "source": {
288 "type": "git",
289 "url": "https://github.com/symfony/polyfill-php55.git",
290 "reference": "bf2ff9ad6be1a4772cb873e4eea94d70daa95c6d"
291 },
292 "dist": {
293 "type": "zip",
294 "url": "https://api.github.com/repos/symfony/polyfill-php55/zipball/bf2ff9ad6be1a4772cb873e4eea94d70daa95c6d",
295 "reference": "bf2ff9ad6be1a4772cb873e4eea94d70daa95c6d",
296 "shasum": ""
297 },
298 "require": {
299 "ircmaxell/password-compat": "~1.0",
300 "php": ">=5.3.3"
301 },
302 "time": "2016-05-18 14:26:46",
303 "type": "library",
304 "extra": {
305 "branch-alias": {
306 "dev-master": "1.2-dev"
307 }
308 },
309 "installation-source": "dist",
310 "autoload": {
311 "psr-4": {
312 "Symfony\\Polyfill\\Php55\\": ""
313 },
314 "files": [
315 "bootstrap.php"
316 ]
317 },
318 "notification-url": "https://packagist.org/downloads/",
319 "license": [
320 "MIT"
321 ],
322 "authors": [
323 {
324 "name": "Nicolas Grekas",
325 "email": "p@tchwork.com"
326 },
327 {
328 "name": "Symfony Community",
329 "homepage": "https://symfony.com/contributors"
330 }
331 ],
332 "description": "Symfony polyfill backporting some PHP 5.5+ features to lower PHP versions",
333 "homepage": "https://symfony.com",
334 "keywords": [
335 "compatibility",
336 "polyfill",
337 "portable",
338 "shim"
339 ]
340 },
341 {
342 "name": "symfony/polyfill-php54",
343 "version": "v1.2.0",
344 "version_normalized": "1.2.0.0",
345 "source": {
346 "type": "git",
347 "url": "https://github.com/symfony/polyfill-php54.git",
348 "reference": "34d761992f6f2cc6092cc0e5e93f38b53ba5e4f1"
349 },
350 "dist": {
351 "type": "zip",
352 "url": "https://api.github.com/repos/symfony/polyfill-php54/zipball/34d761992f6f2cc6092cc0e5e93f38b53ba5e4f1",
353 "reference": "34d761992f6f2cc6092cc0e5e93f38b53ba5e4f1",
354 "shasum": ""
355 },
356 "require": {
357 "php": ">=5.3.3"
358 },
359 "time": "2016-05-18 14:26:46",
360 "type": "library",
361 "extra": {
362 "branch-alias": {
363 "dev-master": "1.2-dev"
364 }
365 },
366 "installation-source": "dist",
367 "autoload": {
368 "psr-4": {
369 "Symfony\\Polyfill\\Php54\\": ""
370 },
371 "files": [
372 "bootstrap.php"
373 ],
374 "classmap": [
375 "Resources/stubs"
376 ]
377 },
378 "notification-url": "https://packagist.org/downloads/",
379 "license": [
380 "MIT"
381 ],
382 "authors": [
383 {
384 "name": "Nicolas Grekas",
385 "email": "p@tchwork.com"
386 },
387 {
388 "name": "Symfony Community",
389 "homepage": "https://symfony.com/contributors"
390 }
391 ],
392 "description": "Symfony polyfill backporting some PHP 5.4+ features to lower PHP versions",
393 "homepage": "https://symfony.com",
394 "keywords": [
395 "compatibility",
396 "polyfill",
397 "portable",
398 "shim"
399 ]
400 },
401 {
402 "name": "symfony/http-foundation",
403 "version": "v2.8.7",
404 "version_normalized": "2.8.7.0",
405 "source": {
406 "type": "git",
407 "url": "https://github.com/symfony/http-foundation.git",
408 "reference": "744dae663ffcfa21d8a111fb63541954199acbb2"
409 },
410 "dist": {
411 "type": "zip",
412 "url": "https://api.github.com/repos/symfony/http-foundation/zipball/744dae663ffcfa21d8a111fb63541954199acbb2",
413 "reference": "744dae663ffcfa21d8a111fb63541954199acbb2",
414 "shasum": ""
415 },
416 "require": {
417 "php": ">=5.3.9",
418 "symfony/polyfill-mbstring": "~1.1",
419 "symfony/polyfill-php54": "~1.0",
420 "symfony/polyfill-php55": "~1.0"
421 },
422 "require-dev": {
423 "symfony/expression-language": "~2.4|~3.0.0"
424 },
425 "time": "2016-06-06 11:11:27",
426 "type": "library",
427 "extra": {
428 "branch-alias": {
429 "dev-master": "2.8-dev"
430 }
431 },
432 "installation-source": "dist",
433 "autoload": {
434 "psr-4": {
435 "Symfony\\Component\\HttpFoundation\\": ""
436 },
437 "exclude-from-classmap": [
438 "/Tests/"
439 ]
440 },
441 "notification-url": "https://packagist.org/downloads/",
442 "license": [
443 "MIT"
444 ],
445 "authors": [
446 {
447 "name": "Fabien Potencier",
448 "email": "fabien@symfony.com"
449 },
450 {
451 "name": "Symfony Community",
452 "homepage": "https://symfony.com/contributors"
453 }
454 ],
455 "description": "Symfony HttpFoundation Component",
456 "homepage": "https://symfony.com"
457 },
458 {
459 "name": "symfony/event-dispatcher",
460 "version": "v2.8.7",
461 "version_normalized": "2.8.7.0",
462 "source": {
463 "type": "git",
464 "url": "https://github.com/symfony/event-dispatcher.git",
465 "reference": "2a6b8713f8bdb582058cfda463527f195b066110"
466 },
467 "dist": {
468 "type": "zip",
469 "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2a6b8713f8bdb582058cfda463527f195b066110",
470 "reference": "2a6b8713f8bdb582058cfda463527f195b066110",
471 "shasum": ""
472 },
473 "require": {
474 "php": ">=5.3.9"
475 },
476 "require-dev": {
477 "psr/log": "~1.0",
478 "symfony/config": "~2.0,>=2.0.5|~3.0.0",
479 "symfony/dependency-injection": "~2.6|~3.0.0",
480 "symfony/expression-language": "~2.6|~3.0.0",
481 "symfony/stopwatch": "~2.3|~3.0.0"
482 },
483 "suggest": {
484 "symfony/dependency-injection": "",
485 "symfony/http-kernel": ""
486 },
487 "time": "2016-06-06 11:11:27",
488 "type": "library",
489 "extra": {
490 "branch-alias": {
491 "dev-master": "2.8-dev"
492 }
493 },
494 "installation-source": "dist",
495 "autoload": {
496 "psr-4": {
497 "Symfony\\Component\\EventDispatcher\\": ""
498 },
499 "exclude-from-classmap": [
500 "/Tests/"
501 ]
502 },
503 "notification-url": "https://packagist.org/downloads/",
504 "license": [
505 "MIT"
506 ],
507 "authors": [
508 {
509 "name": "Fabien Potencier",
510 "email": "fabien@symfony.com"
511 },
512 {
513 "name": "Symfony Community",
514 "homepage": "https://symfony.com/contributors"
515 }
516 ],
517 "description": "Symfony EventDispatcher Component",
518 "homepage": "https://symfony.com"
519 },
520 {
521 "name": "symfony/http-kernel",
522 "version": "v2.8.7",
523 "version_normalized": "2.8.7.0",
524 "source": {
525 "type": "git",
526 "url": "https://github.com/symfony/http-kernel.git",
527 "reference": "6b8e5b6100457642e7141dbbfe29f387cbd7e0ef"
528 },
529 "dist": {
530 "type": "zip",
531 "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6b8e5b6100457642e7141dbbfe29f387cbd7e0ef",
532 "reference": "6b8e5b6100457642e7141dbbfe29f387cbd7e0ef",
533 "shasum": ""
534 },
535 "require": {
536 "php": ">=5.3.9",
537 "psr/log": "~1.0",
538 "symfony/debug": "~2.6,>=2.6.2",
539 "symfony/event-dispatcher": "~2.6,>=2.6.7|~3.0.0",
540 "symfony/http-foundation": "~2.5,>=2.5.4|~3.0.0"
541 },
542 "conflict": {
543 "symfony/config": "<2.7"
544 },
545 "require-dev": {
546 "symfony/browser-kit": "~2.3|~3.0.0",
547 "symfony/class-loader": "~2.1|~3.0.0",
548 "symfony/config": "~2.8",
549 "symfony/console": "~2.3|~3.0.0",
550 "symfony/css-selector": "~2.0,>=2.0.5|~3.0.0",
551 "symfony/dependency-injection": "~2.8|~3.0.0",
552 "symfony/dom-crawler": "~2.0,>=2.0.5|~3.0.0",
553 "symfony/expression-language": "~2.4|~3.0.0",
554 "symfony/finder": "~2.0,>=2.0.5|~3.0.0",
555 "symfony/process": "~2.0,>=2.0.5|~3.0.0",
556 "symfony/routing": "~2.8|~3.0.0",
557 "symfony/stopwatch": "~2.3|~3.0.0",
558 "symfony/templating": "~2.2|~3.0.0",
559 "symfony/translation": "~2.0,>=2.0.5|~3.0.0",
560 "symfony/var-dumper": "~2.6|~3.0.0"
561 },
562 "suggest": {
563 "symfony/browser-kit": "",
564 "symfony/class-loader": "",
565 "symfony/config": "",
566 "symfony/console": "",
567 "symfony/dependency-injection": "",
568 "symfony/finder": "",
569 "symfony/var-dumper": ""
570 },
571 "time": "2016-06-06 16:05:21",
572 "type": "library",
573 "extra": {
574 "branch-alias": {
575 "dev-master": "2.8-dev"
576 }
577 },
578 "installation-source": "dist",
579 "autoload": {
580 "psr-4": {
581 "Symfony\\Component\\HttpKernel\\": ""
582 },
583 "exclude-from-classmap": [
584 "/Tests/"
585 ]
586 },
587 "notification-url": "https://packagist.org/downloads/",
588 "license": [
589 "MIT"
590 ],
591 "authors": [
592 {
593 "name": "Fabien Potencier",
594 "email": "fabien@symfony.com"
595 },
596 {
597 "name": "Symfony Community",
598 "homepage": "https://symfony.com/contributors"
599 }
600 ],
601 "description": "Symfony HttpKernel Component",
602 "homepage": "https://symfony.com"
603 },
604 {
605 "name": "pimple/pimple",
606 "version": "v1.1.1",
607 "version_normalized": "1.1.1.0",
608 "source": {
609 "type": "git",
610 "url": "https://github.com/silexphp/Pimple.git",
611 "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d"
612 },
613 "dist": {
614 "type": "zip",
615 "url": "https://api.github.com/repos/silexphp/Pimple/zipball/2019c145fe393923f3441b23f29bbdfaa5c58c4d",
616 "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d",
617 "shasum": ""
618 },
619 "require": {
620 "php": ">=5.3.0"
621 },
622 "time": "2013-11-22 08:30:29",
623 "type": "library",
624 "extra": {
625 "branch-alias": {
626 "dev-master": "1.1.x-dev"
627 }
628 },
629 "installation-source": "dist",
630 "autoload": {
631 "psr-0": {
632 "Pimple": "lib/"
633 }
634 },
635 "notification-url": "https://packagist.org/downloads/",
636 "license": [
637 "MIT"
638 ],
639 "authors": [
640 {
641 "name": "Fabien Potencier",
642 "email": "fabien@symfony.com"
643 }
644 ],
645 "description": "Pimple is a simple Dependency Injection Container for PHP 5.3",
646 "homepage": "http://pimple.sensiolabs.org",
647 "keywords": [
648 "container",
649 "dependency injection"
650 ]
651 },
652 {
653 "name": "silex/silex",
654 "version": "v1.3.5",
655 "version_normalized": "1.3.5.0",
656 "source": {
657 "type": "git",
658 "url": "https://github.com/silexphp/Silex.git",
659 "reference": "374c7e04040a6f781c90f7d746726a5daa78e783"
660 },
661 "dist": {
662 "type": "zip",
663 "url": "https://api.github.com/repos/silexphp/Silex/zipball/374c7e04040a6f781c90f7d746726a5daa78e783",
664 "reference": "374c7e04040a6f781c90f7d746726a5daa78e783",
665 "shasum": ""
666 },
667 "require": {
668 "php": ">=5.3.9",
669 "pimple/pimple": "~1.0",
670 "symfony/event-dispatcher": "~2.3|3.0.*",
671 "symfony/http-foundation": "~2.3|3.0.*",
672 "symfony/http-kernel": "~2.3|3.0.*",
673 "symfony/routing": "~2.3|3.0.*"
674 },
675 "require-dev": {
676 "doctrine/dbal": "~2.2",
677 "monolog/monolog": "^1.4.1",
678 "swiftmailer/swiftmailer": "~5",
679 "symfony/browser-kit": "~2.3|3.0.*",
680 "symfony/config": "~2.3|3.0.*",
681 "symfony/css-selector": "~2.3|3.0.*",
682 "symfony/debug": "~2.3|3.0.*",
683 "symfony/dom-crawler": "~2.3|3.0.*",
684 "symfony/finder": "~2.3|3.0.*",
685 "symfony/form": "~2.3|3.0.*",
686 "symfony/locale": "~2.3|3.0.*",
687 "symfony/monolog-bridge": "~2.3|3.0.*",
688 "symfony/options-resolver": "~2.3|3.0.*",
689 "symfony/phpunit-bridge": "~2.7",
690 "symfony/process": "~2.3|3.0.*",
691 "symfony/security": "~2.3|3.0.*",
692 "symfony/serializer": "~2.3|3.0.*",
693 "symfony/translation": "~2.3|3.0.*",
694 "symfony/twig-bridge": "~2.3|3.0.*",
695 "symfony/validator": "~2.3|3.0.*",
696 "twig/twig": "~1.8|~2.0"
697 },
698 "time": "2016-01-06 14:59:35",
699 "type": "library",
700 "extra": {
701 "branch-alias": {
702 "dev-master": "1.3.x-dev"
703 }
704 },
705 "installation-source": "dist",
706 "autoload": {
707 "psr-4": {
708 "Silex\\": "src/Silex"
709 }
710 },
711 "notification-url": "https://packagist.org/downloads/",
712 "license": [
713 "MIT"
714 ],
715 "authors": [
716 {
717 "name": "Fabien Potencier",
718 "email": "fabien@symfony.com"
719 },
720 {
721 "name": "Igor Wiedler",
722 "email": "igor@wiedler.ch"
723 }
724 ],
725 "description": "The PHP micro-framework based on the Symfony Components",
726 "homepage": "http://silex.sensiolabs.org",
727 "keywords": [
728 "microframework"
729 ]
730 }
731]
diff --git a/vendor/ircmaxell/password-compat/LICENSE.md b/vendor/ircmaxell/password-compat/LICENSE.md
732deleted file mode 1006440deleted file mode 100644
index 1efc565..0000000
--- a/vendor/ircmaxell/password-compat/LICENSE.md
+++ /dev/null
@@ -1,7 +0,0 @@
1Copyright (c) 2012 Anthony Ferrara
2
3Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
5The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
7THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8\ No newline at end of file0\ No newline at end of file
diff --git a/vendor/ircmaxell/password-compat/composer.json b/vendor/ircmaxell/password-compat/composer.json
9deleted file mode 1006441deleted file mode 100644
index 822fd1f..0000000
--- a/vendor/ircmaxell/password-compat/composer.json
+++ /dev/null
@@ -1,20 +0,0 @@
1{
2 "name": "ircmaxell/password-compat",
3 "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash",
4 "keywords": ["password", "hashing"],
5 "homepage": "https://github.com/ircmaxell/password_compat",
6 "license": "MIT",
7 "authors": [
8 {
9 "name": "Anthony Ferrara",
10 "email": "ircmaxell@php.net",
11 "homepage": "http://blog.ircmaxell.com"
12 }
13 ],
14 "require-dev": {
15 "phpunit/phpunit": "4.*"
16 },
17 "autoload": {
18 "files": ["lib/password.php"]
19 }
20}
diff --git a/vendor/ircmaxell/password-compat/lib/password.php b/vendor/ircmaxell/password-compat/lib/password.php
21deleted file mode 1006440deleted file mode 100644
index cc6896c..0000000
--- a/vendor/ircmaxell/password-compat/lib/password.php
+++ /dev/null
@@ -1,314 +0,0 @@
1<?php
2/**
3 * A Compatibility library with PHP 5.5's simplified password hashing API.
4 *
5 * @author Anthony Ferrara <ircmaxell@php.net>
6 * @license http://www.opensource.org/licenses/mit-license.html MIT License
7 * @copyright 2012 The Authors
8 */
9
10namespace {
11
12 if (!defined('PASSWORD_BCRYPT')) {
13 /**
14 * PHPUnit Process isolation caches constants, but not function declarations.
15 * So we need to check if the constants are defined separately from
16 * the functions to enable supporting process isolation in userland
17 * code.
18 */
19 define('PASSWORD_BCRYPT', 1);
20 define('PASSWORD_DEFAULT', PASSWORD_BCRYPT);
21 define('PASSWORD_BCRYPT_DEFAULT_COST', 10);
22 }
23
24 if (!function_exists('password_hash')) {
25
26 /**
27 * Hash the password using the specified algorithm
28 *
29 * @param string $password The password to hash
30 * @param int $algo The algorithm to use (Defined by PASSWORD_* constants)
31 * @param array $options The options for the algorithm to use
32 *
33 * @return string|false The hashed password, or false on error.
34 */
35 function password_hash($password, $algo, array $options = array()) {
36 if (!function_exists('crypt')) {
37 trigger_error("Crypt must be loaded for password_hash to function", E_USER_WARNING);
38 return null;
39 }
40 if (is_null($password) || is_int($password)) {
41 $password = (string) $password;
42 }
43 if (!is_string($password)) {
44 trigger_error("password_hash(): Password must be a string", E_USER_WARNING);
45 return null;
46 }
47 if (!is_int($algo)) {
48 trigger_error("password_hash() expects parameter 2 to be long, " . gettype($algo) . " given", E_USER_WARNING);
49 return null;
50 }
51 $resultLength = 0;
52 switch ($algo) {
53 case PASSWORD_BCRYPT:
54 $cost = PASSWORD_BCRYPT_DEFAULT_COST;
55 if (isset($options['cost'])) {
56 $cost = $options['cost'];
57 if ($cost < 4 || $cost > 31) {
58 trigger_error(sprintf("password_hash(): Invalid bcrypt cost parameter specified: %d", $cost), E_USER_WARNING);
59 return null;
60 }
61 }
62 // The length of salt to generate
63 $raw_salt_len = 16;
64 // The length required in the final serialization
65 $required_salt_len = 22;
66 $hash_format = sprintf("$2y$%02d$", $cost);
67 // The expected length of the final crypt() output
68 $resultLength = 60;
69 break;
70 default:
71 trigger_error(sprintf("password_hash(): Unknown password hashing algorithm: %s", $algo), E_USER_WARNING);
72 return null;
73 }
74 $salt_requires_encoding = false;
75 if (isset($options['salt'])) {
76 switch (gettype($options['salt'])) {
77 case 'NULL':
78 case 'boolean':
79 case 'integer':
80 case 'double':
81 case 'string':
82 $salt = (string) $options['salt'];
83 break;
84 case 'object':
85 if (method_exists($options['salt'], '__tostring')) {
86 $salt = (string) $options['salt'];
87 break;
88 }
89 case 'array':
90 case 'resource':
91 default:
92 trigger_error('password_hash(): Non-string salt parameter supplied', E_USER_WARNING);
93 return null;
94 }
95 if (PasswordCompat\binary\_strlen($salt) < $required_salt_len) {
96 trigger_error(sprintf("password_hash(): Provided salt is too short: %d expecting %d", PasswordCompat\binary\_strlen($salt), $required_salt_len), E_USER_WARNING);
97 return null;
98 } elseif (0 == preg_match('#^[a-zA-Z0-9./]+$#D', $salt)) {
99 $salt_requires_encoding = true;
100 }
101 } else {
102 $buffer = '';
103 $buffer_valid = false;
104 if (function_exists('mcrypt_create_iv') && !defined('PHALANGER')) {
105 $buffer = mcrypt_create_iv($raw_salt_len, MCRYPT_DEV_URANDOM);
106 if ($buffer) {
107 $buffer_valid = true;
108 }
109 }
110 if (!$buffer_valid && function_exists('openssl_random_pseudo_bytes')) {
111 $buffer = openssl_random_pseudo_bytes($raw_salt_len);
112 if ($buffer) {
113 $buffer_valid = true;
114 }
115 }
116 if (!$buffer_valid && @is_readable('/dev/urandom')) {
117 $f = fopen('/dev/urandom', 'r');
118 $read = PasswordCompat\binary\_strlen($buffer);
119 while ($read < $raw_salt_len) {
120 $buffer .= fread($f, $raw_salt_len - $read);
121 $read = PasswordCompat\binary\_strlen($buffer);
122 }
123 fclose($f);
124 if ($read >= $raw_salt_len) {
125 $buffer_valid = true;
126 }
127 }
128 if (!$buffer_valid || PasswordCompat\binary\_strlen($buffer) < $raw_salt_len) {
129 $bl = PasswordCompat\binary\_strlen($buffer);
130 for ($i = 0; $i < $raw_salt_len; $i++) {
131 if ($i < $bl) {
132 $buffer[$i] = $buffer[$i] ^ chr(mt_rand(0, 255));
133 } else {
134 $buffer .= chr(mt_rand(0, 255));
135 }
136 }
137 }
138 $salt = $buffer;
139 $salt_requires_encoding = true;
140 }
141 if ($salt_requires_encoding) {
142 // encode string with the Base64 variant used by crypt
143 $base64_digits =
144 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
145 $bcrypt64_digits =
146 './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
147
148 $base64_string = base64_encode($salt);
149 $salt = strtr(rtrim($base64_string, '='), $base64_digits, $bcrypt64_digits);
150 }
151 $salt = PasswordCompat\binary\_substr($salt, 0, $required_salt_len);
152
153 $hash = $hash_format . $salt;
154
155 $ret = crypt($password, $hash);
156
157 if (!is_string($ret) || PasswordCompat\binary\_strlen($ret) != $resultLength) {
158 return false;
159 }
160
161 return $ret;
162 }
163
164 /**
165 * Get information about the password hash. Returns an array of the information
166 * that was used to generate the password hash.
167 *
168 * array(
169 * 'algo' => 1,
170 * 'algoName' => 'bcrypt',
171 * 'options' => array(
172 * 'cost' => PASSWORD_BCRYPT_DEFAULT_COST,
173 * ),
174 * )
175 *
176 * @param string $hash The password hash to extract info from
177 *
178 * @return array The array of information about the hash.
179 */
180 function password_get_info($hash) {
181 $return = array(
182 'algo' => 0,
183 'algoName' => 'unknown',
184 'options' => array(),
185 );
186 if (PasswordCompat\binary\_substr($hash, 0, 4) == '$2y$' && PasswordCompat\binary\_strlen($hash) == 60) {
187 $return['algo'] = PASSWORD_BCRYPT;
188 $return['algoName'] = 'bcrypt';
189 list($cost) = sscanf($hash, "$2y$%d$");
190 $return['options']['cost'] = $cost;
191 }
192 return $return;
193 }
194
195 /**
196 * Determine if the password hash needs to be rehashed according to the options provided
197 *
198 * If the answer is true, after validating the password using password_verify, rehash it.
199 *
200 * @param string $hash The hash to test
201 * @param int $algo The algorithm used for new password hashes
202 * @param array $options The options array passed to password_hash
203 *
204 * @return boolean True if the password needs to be rehashed.
205 */
206 function password_needs_rehash($hash, $algo, array $options = array()) {
207 $info = password_get_info($hash);
208 if ($info['algo'] != $algo) {
209 return true;
210 }
211 switch ($algo) {
212 case PASSWORD_BCRYPT:
213 $cost = isset($options['cost']) ? $options['cost'] : PASSWORD_BCRYPT_DEFAULT_COST;
214 if ($cost != $info['options']['cost']) {
215 return true;
216 }
217 break;
218 }
219 return false;
220 }
221
222 /**
223 * Verify a password against a hash using a timing attack resistant approach
224 *
225 * @param string $password The password to verify
226 * @param string $hash The hash to verify against
227 *
228 * @return boolean If the password matches the hash
229 */
230 function password_verify($password, $hash) {
231 if (!function_exists('crypt')) {
232 trigger_error("Crypt must be loaded for password_verify to function", E_USER_WARNING);
233 return false;
234 }
235 $ret = crypt($password, $hash);
236 if (!is_string($ret) || PasswordCompat\binary\_strlen($ret) != PasswordCompat\binary\_strlen($hash) || PasswordCompat\binary\_strlen($ret) <= 13) {
237 return false;
238 }
239
240 $status = 0;
241 for ($i = 0; $i < PasswordCompat\binary\_strlen($ret); $i++) {
242 $status |= (ord($ret[$i]) ^ ord($hash[$i]));
243 }
244
245 return $status === 0;
246 }
247 }
248
249}
250
251namespace PasswordCompat\binary {
252
253 if (!function_exists('PasswordCompat\\binary\\_strlen')) {
254
255 /**
256 * Count the number of bytes in a string
257 *
258 * We cannot simply use strlen() for this, because it might be overwritten by the mbstring extension.
259 * In this case, strlen() will count the number of *characters* based on the internal encoding. A
260 * sequence of bytes might be regarded as a single multibyte character.
261 *
262 * @param string $binary_string The input string
263 *
264 * @internal
265 * @return int The number of bytes
266 */
267 function _strlen($binary_string) {
268 if (function_exists('mb_strlen')) {
269 return mb_strlen($binary_string, '8bit');
270 }
271 return strlen($binary_string);
272 }
273
274 /**
275 * Get a substring based on byte limits
276 *
277 * @see _strlen()
278 *
279 * @param string $binary_string The input string
280 * @param int $start
281 * @param int $length
282 *
283 * @internal
284 * @return string The substring
285 */
286 function _substr($binary_string, $start, $length) {
287 if (function_exists('mb_substr')) {
288 return mb_substr($binary_string, $start, $length, '8bit');
289 }
290 return substr($binary_string, $start, $length);
291 }
292
293 /**
294 * Check if current PHP version is compatible with the library
295 *
296 * @return boolean the check result
297 */
298 function check() {
299 static $pass = NULL;
300
301 if (is_null($pass)) {
302 if (function_exists('crypt')) {
303 $hash = '$2y$04$usesomesillystringfore7hnbRJHxXVLeakoG8K30oukPsA.ztMG';
304 $test = crypt("password", $hash);
305 $pass = $test == $hash;
306 } else {
307 $pass = false;
308 }
309 }
310 return $pass;
311 }
312
313 }
314}
315\ No newline at end of file0\ No newline at end of file
diff --git a/vendor/ircmaxell/password-compat/version-test.php b/vendor/ircmaxell/password-compat/version-test.php
316deleted file mode 1006441deleted file mode 100644
index 96f60ca..0000000
--- a/vendor/ircmaxell/password-compat/version-test.php
+++ /dev/null
@@ -1,6 +0,0 @@
1<?php
2
3require "lib/password.php";
4
5echo "Test for functionality of compat library: " . (PasswordCompat\binary\check() ? "Pass" : "Fail");
6echo "\n";
7\ No newline at end of file0\ No newline at end of file
diff --git a/vendor/pimple/pimple/.gitignore b/vendor/pimple/pimple/.gitignore
8deleted file mode 1006441deleted file mode 100644
index ce3aa65..0000000
--- a/vendor/pimple/pimple/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
1phpunit.xml
diff --git a/vendor/pimple/pimple/.travis.yml b/vendor/pimple/pimple/.travis.yml
2deleted file mode 1006440deleted file mode 100644
index 72b4067..0000000
--- a/vendor/pimple/pimple/.travis.yml
+++ /dev/null
@@ -1,6 +0,0 @@
1language: php
2
3php:
4 - 5.3
5 - 5.4
6 - 5.5
diff --git a/vendor/pimple/pimple/LICENSE b/vendor/pimple/pimple/LICENSE
7deleted file mode 1006440deleted file mode 100644
index f61e90d..0000000
--- a/vendor/pimple/pimple/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
1Copyright (c) 2009-2013 Fabien Potencier
2
3Permission is hereby granted, free of charge, to any person obtaining a copy
4of this software and associated documentation files (the "Software"), to deal
5in the Software without restriction, including without limitation the rights
6to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7copies of the Software, and to permit persons to whom the Software is furnished
8to do so, subject to the following conditions:
9
10The above copyright notice and this permission notice shall be included in all
11copies or substantial portions of the Software.
12
13THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19THE SOFTWARE.
diff --git a/vendor/pimple/pimple/README.rst b/vendor/pimple/pimple/README.rst
20deleted file mode 1006440deleted file mode 100644
index f685caa..0000000
--- a/vendor/pimple/pimple/README.rst
+++ /dev/null
@@ -1,159 +0,0 @@
1Pimple
2======
3
4Pimple is a small Dependency Injection Container for PHP 5.3 that consists
5of just one file and one class (about 80 lines of code).
6
7`Download it`_, require it in your code, and you're good to go::
8
9 require_once '/path/to/Pimple.php';
10
11Creating a container is a matter of instating the ``Pimple`` class::
12
13 $container = new Pimple();
14
15As many other dependency injection containers, Pimple is able to manage two
16different kind of data: *services* and *parameters*.
17
18Defining Parameters
19-------------------
20
21Defining a parameter is as simple as using the Pimple instance as an array::
22
23 // define some parameters
24 $container['cookie_name'] = 'SESSION_ID';
25 $container['session_storage_class'] = 'SessionStorage';
26
27Defining Services
28-----------------
29
30A service is an object that does something as part of a larger system.
31Examples of services: Database connection, templating engine, mailer. Almost
32any object could be a service.
33
34Services are defined by anonymous functions that return an instance of an
35object::
36
37 // define some services
38 $container['session_storage'] = function ($c) {
39 return new $c['session_storage_class']($c['cookie_name']);
40 };
41
42 $container['session'] = function ($c) {
43 return new Session($c['session_storage']);
44 };
45
46Notice that the anonymous function has access to the current container
47instance, allowing references to other services or parameters.
48
49As objects are only created when you get them, the order of the definitions
50does not matter, and there is no performance penalty.
51
52Using the defined services is also very easy::
53
54 // get the session object
55 $session = $container['session'];
56
57 // the above call is roughly equivalent to the following code:
58 // $storage = new SessionStorage('SESSION_ID');
59 // $session = new Session($storage);
60
61Defining Shared Services
62------------------------
63
64By default, each time you get a service, Pimple returns a new instance of it.
65If you want the same instance to be returned for all calls, wrap your
66anonymous function with the ``share()`` method::
67
68 $container['session'] = $container->share(function ($c) {
69 return new Session($c['session_storage']);
70 });
71
72Protecting Parameters
73---------------------
74
75Because Pimple sees anonymous functions as service definitions, you need to
76wrap anonymous functions with the ``protect()`` method to store them as
77parameter::
78
79 $container['random'] = $container->protect(function () { return rand(); });
80
81Modifying services after creation
82---------------------------------
83
84In some cases you may want to modify a service definition after it has been
85defined. You can use the ``extend()`` method to define additional code to
86be run on your service just after it is created::
87
88 $container['mail'] = function ($c) {
89 return new \Zend_Mail();
90 };
91
92 $container['mail'] = $container->extend('mail', function($mail, $c) {
93 $mail->setFrom($c['mail.default_from']);
94 return $mail;
95 });
96
97The first argument is the name of the object, the second is a function that
98gets access to the object instance and the container. The return value is
99a service definition, so you need to re-assign it on the container.
100
101If the service you plan to extend is already shared, it's recommended that you
102re-wrap your extended service with the ``shared`` method, otherwise your extension
103code will be called every time you access the service::
104
105 $container['twig'] = $container->share(function ($c) {
106 return new Twig_Environment($c['twig.loader'], $c['twig.options']);
107 });
108
109 $container['twig'] = $container->share($container->extend('twig', function ($twig, $c) {
110 $twig->addExtension(new MyTwigExtension());
111 return $twig;
112 }));
113
114Fetching the service creation function
115--------------------------------------
116
117When you access an object, Pimple automatically calls the anonymous function
118that you defined, which creates the service object for you. If you want to get
119raw access to this function, you can use the ``raw()`` method::
120
121 $container['session'] = $container->share(function ($c) {
122 return new Session($c['session_storage']);
123 });
124
125 $sessionFunction = $container->raw('session');
126
127Packaging a Container for reusability
128-------------------------------------
129
130If you use the same libraries over and over, you might want to create reusable
131containers. Creating a reusable container is as simple as creating a class
132that extends ``Pimple``, and configuring it in the constructor::
133
134 class SomeContainer extends Pimple
135 {
136 public function __construct()
137 {
138 $this['parameter'] = 'foo';
139 $this['object'] = function () { return stdClass(); };
140 }
141 }
142
143Using this container from your own is as easy as it can get::
144
145 $container = new Pimple();
146
147 // define your project parameters and services
148 // ...
149
150 // embed the SomeContainer container
151 $container['embedded'] = $container->share(function () { return new SomeContainer(); });
152
153 // configure it
154 $container['embedded']['parameter'] = 'bar';
155
156 // use it
157 $container['embedded']['object']->...;
158
159.. _Download it: https://github.com/fabpot/Pimple
diff --git a/vendor/pimple/pimple/composer.json b/vendor/pimple/pimple/composer.json
160deleted file mode 1006440deleted file mode 100644
index d95c8c5..0000000
--- a/vendor/pimple/pimple/composer.json
+++ /dev/null
@@ -1,25 +0,0 @@
1{
2 "name": "pimple/pimple",
3 "type": "library",
4 "description": "Pimple is a simple Dependency Injection Container for PHP 5.3",
5 "keywords": ["dependency injection", "container"],
6 "homepage": "http://pimple.sensiolabs.org",
7 "license": "MIT",
8 "authors": [
9 {
10 "name": "Fabien Potencier",
11 "email": "fabien@symfony.com"
12 }
13 ],
14 "require": {
15 "php": ">=5.3.0"
16 },
17 "autoload": {
18 "psr-0": { "Pimple": "lib/" }
19 },
20 "extra": {
21 "branch-alias": {
22 "dev-master": "1.1.x-dev"
23 }
24 }
25}
26\ No newline at end of file0\ No newline at end of file
diff --git a/vendor/pimple/pimple/lib/Pimple.php b/vendor/pimple/pimple/lib/Pimple.php
27deleted file mode 1006441deleted file mode 100644
index b980522..0000000
--- a/vendor/pimple/pimple/lib/Pimple.php
+++ /dev/null
@@ -1,214 +0,0 @@
1<?php
2
3/*
4 * This file is part of Pimple.
5 *
6 * Copyright (c) 2009 Fabien Potencier
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a copy
9 * of this software and associated documentation files (the "Software"), to deal
10 * in the Software without restriction, including without limitation the rights
11 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 * copies of the Software, and to permit persons to whom the Software is furnished
13 * to do so, subject to the following conditions:
14 *
15 * The above copyright notice and this permission notice shall be included in all
16 * copies or substantial portions of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 * THE SOFTWARE.
25 */
26
27/**
28 * Pimple main class.
29 *
30 * @package pimple
31 * @author Fabien Potencier
32 */
33class Pimple implements ArrayAccess
34{
35 protected $values = array();
36
37 /**
38 * Instantiate the container.
39 *
40 * Objects and parameters can be passed as argument to the constructor.
41 *
42 * @param array $values The parameters or objects.
43 */
44 public function __construct(array $values = array())
45 {
46 $this->values = $values;
47 }
48
49 /**
50 * Sets a parameter or an object.
51 *
52 * Objects must be defined as Closures.
53 *
54 * Allowing any PHP callable leads to difficult to debug problems
55 * as function names (strings) are callable (creating a function with
56 * the same a name as an existing parameter would break your container).
57 *
58 * @param string $id The unique identifier for the parameter or object
59 * @param mixed $value The value of the parameter or a closure to defined an object
60 */
61 public function offsetSet($id, $value)
62 {
63 $this->values[$id] = $value;
64 }
65
66 /**
67 * Gets a parameter or an object.
68 *
69 * @param string $id The unique identifier for the parameter or object
70 *
71 * @return mixed The value of the parameter or an object
72 *
73 * @throws InvalidArgumentException if the identifier is not defined
74 */
75 public function offsetGet($id)
76 {
77 if (!array_key_exists($id, $this->values)) {
78 throw new InvalidArgumentException(sprintf('Identifier "%s" is not defined.', $id));
79 }
80
81 $isFactory = is_object($this->values[$id]) && method_exists($this->values[$id], '__invoke');
82
83 return $isFactory ? $this->values[$id]($this) : $this->values[$id];
84 }
85
86 /**
87 * Checks if a parameter or an object is set.
88 *
89 * @param string $id The unique identifier for the parameter or object
90 *
91 * @return Boolean
92 */
93 public function offsetExists($id)
94 {
95 return array_key_exists($id, $this->values);
96 }
97
98 /**
99 * Unsets a parameter or an object.
100 *
101 * @param string $id The unique identifier for the parameter or object
102 */
103 public function offsetUnset($id)
104 {
105 unset($this->values[$id]);
106 }
107
108 /**
109 * Returns a closure that stores the result of the given service definition
110 * for uniqueness in the scope of this instance of Pimple.
111 *
112 * @param callable $callable A service definition to wrap for uniqueness
113 *
114 * @return Closure The wrapped closure
115 */
116 public static function share($callable)
117 {
118 if (!is_object($callable) || !method_exists($callable, '__invoke')) {
119 throw new InvalidArgumentException('Service definition is not a Closure or invokable object.');
120 }
121
122 return function ($c) use ($callable) {
123 static $object;
124
125 if (null === $object) {
126 $object = $callable($c);
127 }
128
129 return $object;
130 };
131 }
132
133 /**
134 * Protects a callable from being interpreted as a service.
135 *
136 * This is useful when you want to store a callable as a parameter.
137 *
138 * @param callable $callable A callable to protect from being evaluated
139 *
140 * @return Closure The protected closure
141 */
142 public static function protect($callable)
143 {
144 if (!is_object($callable) || !method_exists($callable, '__invoke')) {
145 throw new InvalidArgumentException('Callable is not a Closure or invokable object.');
146 }
147
148 return function ($c) use ($callable) {
149 return $callable;
150 };
151 }
152
153 /**
154 * Gets a parameter or the closure defining an object.
155 *
156 * @param string $id The unique identifier for the parameter or object
157 *
158 * @return mixed The value of the parameter or the closure defining an object
159 *
160 * @throws InvalidArgumentException if the identifier is not defined
161 */
162 public function raw($id)
163 {
164 if (!array_key_exists($id, $this->values)) {
165 throw new InvalidArgumentException(sprintf('Identifier "%s" is not defined.', $id));
166 }
167
168 return $this->values[$id];
169 }
170
171 /**
172 * Extends an object definition.
173 *
174 * Useful when you want to extend an existing object definition,
175 * without necessarily loading that object.
176 *
177 * @param string $id The unique identifier for the object
178 * @param callable $callable A service definition to extend the original
179 *
180 * @return Closure The wrapped closure
181 *
182 * @throws InvalidArgumentException if the identifier is not defined or not a service definition
183 */
184 public function extend($id, $callable)
185 {
186 if (!array_key_exists($id, $this->values)) {
187 throw new InvalidArgumentException(sprintf('Identifier "%s" is not defined.', $id));
188 }
189
190 if (!is_object($this->values[$id]) || !method_exists($this->values[$id], '__invoke')) {
191 throw new InvalidArgumentException(sprintf('Identifier "%s" does not contain an object definition.', $id));
192 }
193
194 if (!is_object($callable) || !method_exists($callable, '__invoke')) {
195 throw new InvalidArgumentException('Extension service definition is not a Closure or invokable object.');
196 }
197
198 $factory = $this->values[$id];
199
200 return $this->values[$id] = function ($c) use ($callable, $factory) {
201 return $callable($factory($c), $c);
202 };
203 }
204
205 /**
206 * Returns all defined value names.
207 *
208 * @return array An array of value names
209 */
210 public function keys()
211 {
212 return array_keys($this->values);
213 }
214}
diff --git a/vendor/psr/log/.gitignore b/vendor/psr/log/.gitignore
215deleted file mode 1006440deleted file mode 100644
index 22d0d82..0000000
--- a/vendor/psr/log/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
1vendor
diff --git a/vendor/psr/log/LICENSE b/vendor/psr/log/LICENSE
2deleted file mode 1006440deleted file mode 100644
index 474c952..0000000
--- a/vendor/psr/log/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
1Copyright (c) 2012 PHP Framework Interoperability Group
2
3Permission is hereby granted, free of charge, to any person obtaining a copy
4of this software and associated documentation files (the "Software"), to deal
5in the Software without restriction, including without limitation the rights
6to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7copies of the Software, and to permit persons to whom the Software is
8furnished to do so, subject to the following conditions:
9
10The above copyright notice and this permission notice shall be included in
11all copies or substantial portions of the Software.
12
13THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19THE SOFTWARE.
diff --git a/vendor/psr/log/Psr/Log/AbstractLogger.php b/vendor/psr/log/Psr/Log/AbstractLogger.php
20deleted file mode 1006440deleted file mode 100644
index 00f9034..0000000
--- a/vendor/psr/log/Psr/Log/AbstractLogger.php
+++ /dev/null
@@ -1,120 +0,0 @@
1<?php
2
3namespace Psr\Log;
4
5/**
6 * This is a simple Logger implementation that other Loggers can inherit from.
7 *
8 * It simply delegates all log-level-specific methods to the `log` method to
9 * reduce boilerplate code that a simple Logger that does the same thing with
10 * messages regardless of the error level has to implement.
11 */
12abstract class AbstractLogger implements LoggerInterface
13{
14 /**
15 * System is unusable.
16 *
17 * @param string $message
18 * @param array $context
19 * @return null
20 */
21 public function emergency($message, array $context = array())
22 {
23 $this->log(LogLevel::EMERGENCY, $message, $context);
24 }
25
26 /**
27 * Action must be taken immediately.
28 *
29 * Example: Entire website down, database unavailable, etc. This should
30 * trigger the SMS alerts and wake you up.
31 *
32 * @param string $message
33 * @param array $context
34 * @return null
35 */
36 public function alert($message, array $context = array())
37 {
38 $this->log(LogLevel::ALERT, $message, $context);
39 }
40
41 /**
42 * Critical conditions.
43 *
44 * Example: Application component unavailable, unexpected exception.
45 *
46 * @param string $message
47 * @param array $context
48 * @return null
49 */
50 public function critical($message, array $context = array())
51 {
52 $this->log(LogLevel::CRITICAL, $message, $context);
53 }
54
55 /**
56 * Runtime errors that do not require immediate action but should typically
57 * be logged and monitored.
58 *
59 * @param string $message
60 * @param array $context
61 * @return null
62 */
63 public function error($message, array $context = array())
64 {
65 $this->log(LogLevel::ERROR, $message, $context);
66 }
67
68 /**
69 * Exceptional occurrences that are not errors.
70 *
71 * Example: Use of deprecated APIs, poor use of an API, undesirable things
72 * that are not necessarily wrong.
73 *
74 * @param string $message
75 * @param array $context
76 * @return null
77 */
78 public function warning($message, array $context = array())
79 {
80 $this->log(LogLevel::WARNING, $message, $context);
81 }
82
83 /**
84 * Normal but significant events.
85 *
86 * @param string $message
87 * @param array $context
88 * @return null
89 */
90 public function notice($message, array $context = array())
91 {
92 $this->log(LogLevel::NOTICE, $message, $context);
93 }
94
95 /**
96 * Interesting events.
97 *
98 * Example: User logs in, SQL logs.
99 *
100 * @param string $message
101 * @param array $context
102 * @return null
103 */
104 public function info($message, array $context = array())
105 {
106 $this->log(LogLevel::INFO, $message, $context);
107 }
108
109 /**
110 * Detailed debug information.
111 *
112 * @param string $message
113 * @param array $context
114 * @return null
115 */
116 public function debug($message, array $context = array())
117 {
118 $this->log(LogLevel::DEBUG, $message, $context);
119 }
120}
diff --git a/vendor/psr/log/Psr/Log/InvalidArgumentException.php b/vendor/psr/log/Psr/Log/InvalidArgumentException.php
121deleted file mode 1006440deleted file mode 100644
index 67f852d..0000000
--- a/vendor/psr/log/Psr/Log/InvalidArgumentException.php
+++ /dev/null
@@ -1,7 +0,0 @@
1<?php
2
3namespace Psr\Log;
4
5class InvalidArgumentException extends \InvalidArgumentException
6{
7}
diff --git a/vendor/psr/log/Psr/Log/LogLevel.php b/vendor/psr/log/Psr/Log/LogLevel.php
8deleted file mode 1006440deleted file mode 100644
index e32c151..0000000
--- a/vendor/psr/log/Psr/Log/LogLevel.php
+++ /dev/null
@@ -1,18 +0,0 @@
1<?php
2
3namespace Psr\Log;
4
5/**
6 * Describes log levels
7 */
8class LogLevel
9{
10 const EMERGENCY = 'emergency';
11 const ALERT = 'alert';
12 const CRITICAL = 'critical';
13 const ERROR = 'error';
14 const WARNING = 'warning';
15 const NOTICE = 'notice';
16 const INFO = 'info';
17 const DEBUG = 'debug';
18}
diff --git a/vendor/psr/log/Psr/Log/LoggerAwareInterface.php b/vendor/psr/log/Psr/Log/LoggerAwareInterface.php
19deleted file mode 1006440deleted file mode 100644
index 2eebc4e..0000000
--- a/vendor/psr/log/Psr/Log/LoggerAwareInterface.php
+++ /dev/null
@@ -1,17 +0,0 @@
1<?php
2
3namespace Psr\Log;
4
5/**
6 * Describes a logger-aware instance
7 */
8interface LoggerAwareInterface
9{
10 /**
11 * Sets a logger instance on the object
12 *
13 * @param LoggerInterface $logger
14 * @return null
15 */
16 public function setLogger(LoggerInterface $logger);
17}
diff --git a/vendor/psr/log/Psr/Log/LoggerAwareTrait.php b/vendor/psr/log/Psr/Log/LoggerAwareTrait.php
18deleted file mode 1006440deleted file mode 100644
index f087a3d..0000000
--- a/vendor/psr/log/Psr/Log/LoggerAwareTrait.php
+++ /dev/null
@@ -1,22 +0,0 @@
1<?php
2
3namespace Psr\Log;
4
5/**
6 * Basic Implementation of LoggerAwareInterface.
7 */
8trait LoggerAwareTrait
9{
10 /** @var LoggerInterface */
11 protected $logger;
12
13 /**
14 * Sets a logger.
15 *
16 * @param LoggerInterface $logger
17 */
18 public function setLogger(LoggerInterface $logger)
19 {
20 $this->logger = $logger;
21 }
22}
diff --git a/vendor/psr/log/Psr/Log/LoggerInterface.php b/vendor/psr/log/Psr/Log/LoggerInterface.php
23deleted file mode 1006440deleted file mode 100644
index 476bb96..0000000
--- a/vendor/psr/log/Psr/Log/LoggerInterface.php
+++ /dev/null
@@ -1,114 +0,0 @@
1<?php
2
3namespace Psr\Log;
4
5/**
6 * Describes a logger instance
7 *
8 * The message MUST be a string or object implementing __toString().
9 *
10 * The message MAY contain placeholders in the form: {foo} where foo
11 * will be replaced by the context data in key "foo".
12 *
13 * The context array can contain arbitrary data, the only assumption that
14 * can be made by implementors is that if an Exception instance is given
15 * to produce a stack trace, it MUST be in a key named "exception".
16 *
17 * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
18 * for the full interface specification.
19 */
20interface LoggerInterface
21{
22 /**
23 * System is unusable.
24 *
25 * @param string $message
26 * @param array $context
27 * @return null
28 */
29 public function emergency($message, array $context = array());
30
31 /**
32 * Action must be taken immediately.
33 *
34 * Example: Entire website down, database unavailable, etc. This should
35 * trigger the SMS alerts and wake you up.
36 *
37 * @param string $message
38 * @param array $context
39 * @return null
40 */
41 public function alert($message, array $context = array());
42
43 /**
44 * Critical conditions.
45 *
46 * Example: Application component unavailable, unexpected exception.
47 *
48 * @param string $message
49 * @param array $context
50 * @return null
51 */
52 public function critical($message, array $context = array());
53
54 /**
55 * Runtime errors that do not require immediate action but should typically
56 * be logged and monitored.
57 *
58 * @param string $message
59 * @param array $context
60 * @return null
61 */
62 public function error($message, array $context = array());
63
64 /**
65 * Exceptional occurrences that are not errors.
66 *
67 * Example: Use of deprecated APIs, poor use of an API, undesirable things
68 * that are not necessarily wrong.
69 *
70 * @param string $message
71 * @param array $context
72 * @return null
73 */
74 public function warning($message, array $context = array());
75
76 /**
77 * Normal but significant events.
78 *
79 * @param string $message
80 * @param array $context
81 * @return null
82 */
83 public function notice($message, array $context = array());
84
85 /**
86 * Interesting events.
87 *
88 * Example: User logs in, SQL logs.
89 *
90 * @param string $message
91 * @param array $context
92 * @return null
93 */
94 public function info($message, array $context = array());
95
96 /**
97 * Detailed debug information.
98 *
99 * @param string $message
100 * @param array $context
101 * @return null
102 */
103 public function debug($message, array $context = array());
104
105 /**
106 * Logs with an arbitrary level.
107 *
108 * @param mixed $level
109 * @param string $message
110 * @param array $context
111 * @return null
112 */
113 public function log($level, $message, array $context = array());
114}
diff --git a/vendor/psr/log/Psr/Log/LoggerTrait.php b/vendor/psr/log/Psr/Log/LoggerTrait.php
115deleted file mode 1006440deleted file mode 100644
index 5912496..0000000
--- a/vendor/psr/log/Psr/Log/LoggerTrait.php
+++ /dev/null
@@ -1,131 +0,0 @@
1<?php
2
3namespace Psr\Log;
4
5/**
6 * This is a simple Logger trait that classes unable to extend AbstractLogger
7 * (because they extend another class, etc) can include.
8 *
9 * It simply delegates all log-level-specific methods to the `log` method to
10 * reduce boilerplate code that a simple Logger that does the same thing with
11 * messages regardless of the error level has to implement.
12 */
13trait LoggerTrait
14{
15 /**
16 * System is unusable.
17 *
18 * @param string $message
19 * @param array $context
20 * @return null
21 */
22 public function emergency($message, array $context = array())
23 {
24 $this->log(LogLevel::EMERGENCY, $message, $context);
25 }
26
27 /**
28 * Action must be taken immediately.
29 *
30 * Example: Entire website down, database unavailable, etc. This should
31 * trigger the SMS alerts and wake you up.
32 *
33 * @param string $message
34 * @param array $context
35 * @return null
36 */
37 public function alert($message, array $context = array())
38 {
39 $this->log(LogLevel::ALERT, $message, $context);
40 }
41
42 /**
43 * Critical conditions.
44 *
45 * Example: Application component unavailable, unexpected exception.
46 *
47 * @param string $message
48 * @param array $context
49 * @return null
50 */
51 public function critical($message, array $context = array())
52 {
53 $this->log(LogLevel::CRITICAL, $message, $context);
54 }
55
56 /**
57 * Runtime errors that do not require immediate action but should typically
58 * be logged and monitored.
59 *
60 * @param string $message
61 * @param array $context
62 * @return null
63 */
64 public function error($message, array $context = array())
65 {
66 $this->log(LogLevel::ERROR, $message, $context);
67 }
68
69 /**
70 * Exceptional occurrences that are not errors.
71 *
72 * Example: Use of deprecated APIs, poor use of an API, undesirable things
73 * that are not necessarily wrong.
74 *
75 * @param string $message
76 * @param array $context
77 * @return null
78 */
79 public function warning($message, array $context = array())
80 {
81 $this->log(LogLevel::WARNING, $message, $context);
82 }
83
84 /**
85 * Normal but significant events.
86 *
87 * @param string $message
88 * @param array $context
89 * @return null
90 */
91 public function notice($message, array $context = array())
92 {
93 $this->log(LogLevel::NOTICE, $message, $context);
94 }
95
96 /**
97 * Interesting events.
98 *
99 * Example: User logs in, SQL logs.
100 *
101 * @param string $message
102 * @param array $context
103 * @return null
104 */
105 public function info($message, array $context = array())
106 {
107 $this->log(LogLevel::INFO, $message, $context);
108 }
109
110 /**
111 * Detailed debug information.
112 *
113 * @param string $message
114 * @param array $context
115 * @return null
116 */
117 public function debug($message, array $context = array())
118 {
119 $this->log(LogLevel::DEBUG, $message, $context);
120 }
121
122 /**
123 * Logs with an arbitrary level.
124 *
125 * @param mixed $level
126 * @param string $message
127 * @param array $context
128 * @return null
129 */
130 abstract public function log($level, $message, array $context = array());
131}
diff --git a/vendor/psr/log/Psr/Log/NullLogger.php b/vendor/psr/log/Psr/Log/NullLogger.php
132deleted file mode 1006440deleted file mode 100644
index 553a3c5..0000000
--- a/vendor/psr/log/Psr/Log/NullLogger.php
+++ /dev/null
@@ -1,27 +0,0 @@
1<?php
2
3namespace Psr\Log;
4
5/**
6 * This Logger can be used to avoid conditional log calls
7 *
8 * Logging should always be optional, and if no logger is provided to your
9 * library creating a NullLogger instance to have something to throw logs at
10 * is a good way to avoid littering your code with `if ($this->logger) { }`
11 * blocks.
12 */
13class NullLogger extends AbstractLogger
14{
15 /**
16 * Logs with an arbitrary level.
17 *
18 * @param mixed $level
19 * @param string $message
20 * @param array $context
21 * @return null
22 */
23 public function log($level, $message, array $context = array())
24 {
25 // noop
26 }
27}
diff --git a/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php b/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
28deleted file mode 1006440deleted file mode 100644
index a932815..0000000
--- a/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
+++ /dev/null
@@ -1,116 +0,0 @@
1<?php
2
3namespace Psr\Log\Test;
4
5use Psr\Log\LogLevel;
6
7/**
8 * Provides a base test class for ensuring compliance with the LoggerInterface
9 *
10 * Implementors can extend the class and implement abstract methods to run this as part of their test suite
11 */
12abstract class LoggerInterfaceTest extends \PHPUnit_Framework_TestCase
13{
14 /**
15 * @return LoggerInterface
16 */
17 abstract function getLogger();
18
19 /**
20 * This must return the log messages in order with a simple formatting: "<LOG LEVEL> <MESSAGE>"
21 *
22 * Example ->error('Foo') would yield "error Foo"
23 *
24 * @return string[]
25 */
26 abstract function getLogs();
27
28 public function testImplements()
29 {
30 $this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger());
31 }
32
33 /**
34 * @dataProvider provideLevelsAndMessages
35 */
36 public function testLogsAtAllLevels($level, $message)
37 {
38 $logger = $this->getLogger();
39 $logger->{$level}($message, array('user' => 'Bob'));
40 $logger->log($level, $message, array('user' => 'Bob'));
41
42 $expected = array(
43 $level.' message of level '.$level.' with context: Bob',
44 $level.' message of level '.$level.' with context: Bob',
45 );
46 $this->assertEquals($expected, $this->getLogs());
47 }
48
49 public function provideLevelsAndMessages()
50 {
51 return array(
52 LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'),
53 LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'),
54 LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'),
55 LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'),
56 LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'),
57 LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'),
58 LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'),
59 LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'),
60 );
61 }
62
63 /**
64 * @expectedException Psr\Log\InvalidArgumentException
65 */
66 public function testThrowsOnInvalidLevel()
67 {
68 $logger = $this->getLogger();
69 $logger->log('invalid level', 'Foo');
70 }
71
72 public function testContextReplacement()
73 {
74 $logger = $this->getLogger();
75 $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar'));
76
77 $expected = array('info {Message {nothing} Bob Bar a}');
78 $this->assertEquals($expected, $this->getLogs());
79 }
80
81 public function testObjectCastToString()
82 {
83 $dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString'));
84 $dummy->expects($this->once())
85 ->method('__toString')
86 ->will($this->returnValue('DUMMY'));
87
88 $this->getLogger()->warning($dummy);
89 }
90
91 public function testContextCanContainAnything()
92 {
93 $context = array(
94 'bool' => true,
95 'null' => null,
96 'string' => 'Foo',
97 'int' => 0,
98 'float' => 0.5,
99 'nested' => array('with object' => new DummyTest),
100 'object' => new \DateTime,
101 'resource' => fopen('php://memory', 'r'),
102 );
103
104 $this->getLogger()->warning('Crazy context data', $context);
105 }
106
107 public function testContextExceptionKeyCanBeExceptionOrOtherValues()
108 {
109 $this->getLogger()->warning('Random message', array('exception' => 'oops'));
110 $this->getLogger()->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail')));
111 }
112}
113
114class DummyTest
115{
116}
117\ No newline at end of file0\ No newline at end of file
diff --git a/vendor/psr/log/README.md b/vendor/psr/log/README.md
118deleted file mode 1006441deleted file mode 100644
index 574bc1c..0000000
--- a/vendor/psr/log/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
1PSR Log
2=======
3
4This repository holds all interfaces/classes/traits related to
5[PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md).
6
7Note that this is not a logger of its own. It is merely an interface that
8describes a logger. See the specification for more details.
9
10Usage
11-----
12
13If you need a logger, you can use the interface like this:
14
15```php
16<?php
17
18use Psr\Log\LoggerInterface;
19
20class Foo
21{
22 private $logger;
23
24 public function __construct(LoggerInterface $logger = null)
25 {
26 $this->logger = $logger;
27 }
28
29 public function doSomething()
30 {
31 if ($this->logger) {
32 $this->logger->info('Doing work');
33 }
34
35 // do something useful
36 }
37}
38```
39
40You can then pick one of the implementations of the interface to get a logger.
41
42If you want to implement the interface, you can require this package and
43implement `Psr\Log\LoggerInterface` in your code. Please read the
44[specification text](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md)
45for details.
diff --git a/vendor/psr/log/composer.json b/vendor/psr/log/composer.json
46deleted file mode 1006440deleted file mode 100644
index 6bdcc21..0000000
--- a/vendor/psr/log/composer.json
+++ /dev/null
@@ -1,17 +0,0 @@
1{
2 "name": "psr/log",
3 "description": "Common interface for logging libraries",
4 "keywords": ["psr", "psr-3", "log"],
5 "license": "MIT",
6 "authors": [
7 {
8 "name": "PHP-FIG",
9 "homepage": "http://www.php-fig.org/"
10 }
11 ],
12 "autoload": {
13 "psr-0": {
14 "Psr\\Log\\": ""
15 }
16 }
17}
diff --git a/vendor/silex/silex/.gitignore b/vendor/silex/silex/.gitignore
18deleted file mode 1006440deleted file mode 100644
index 3d4ff05..0000000
--- a/vendor/silex/silex/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
1/phpunit.xml
2/vendor
3/build
4/composer.lock
5
diff --git a/vendor/silex/silex/.travis.yml b/vendor/silex/silex/.travis.yml
6deleted file mode 1006440deleted file mode 100644
index 18ec7e6..0000000
--- a/vendor/silex/silex/.travis.yml
+++ /dev/null
@@ -1,34 +0,0 @@
1language: php
2
3sudo: false
4
5cache:
6 directories:
7 - $HOME/.composer/cache
8
9before_script:
10 # symfony/*
11 - sh -c "if [ '$TWIG_VERSION' != '2.0' ]; then sed -i 's/~1.8|~2.0/~1.8/g' composer.json; composer update; fi"
12 - sh -c "if [ '$SYMFONY_DEPS_VERSION' = '3.0' ]; then sed -i 's/~2\.3|3\.0\.\*/3.0.*@dev/g' composer.json; composer update; fi"
13 - sh -c "if [ '$SYMFONY_DEPS_VERSION' = '2.8' ]; then sed -i 's/~2\.3|3\.0\.\*/2.8.*@dev/g' composer.json; composer update; fi"
14 - sh -c "if [ '$SYMFONY_DEPS_VERSION' = '' ]; then sed -i 's/~2\.3|3\.0\.\*/2.7.*@dev/g' composer.json; composer update; fi"
15 - sh -c "if [ '$SYMFONY_DEPS_VERSION' = '2.3' ]; then sed -i 's/~2\.3|3\.0\.\*/2.3.*@dev/g' composer.json; composer update; fi"
16 - composer install
17
18script: phpunit
19
20matrix:
21 include:
22 - php: 5.3
23 - php: 5.4
24 - php: 5.5
25 - php: 5.6
26 env: TWIG_VERSION=2.0
27 - php: 5.6
28 env: SYMFONY_DEPS_VERSION=2.3
29 - php: 5.6
30 env: SYMFONY_DEPS_VERSION=2.8
31 - php: 5.6
32 env: SYMFONY_DEPS_VERSION=3
33 - php: 7.0
34 - php: hhvm
diff --git a/vendor/silex/silex/LICENSE b/vendor/silex/silex/LICENSE
35deleted file mode 1006440deleted file mode 100644
index 7c3778d..0000000
--- a/vendor/silex/silex/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
1Copyright (c) 2010-2016 Fabien Potencier
2
3Permission is hereby granted, free of charge, to any person obtaining a copy
4of this software and associated documentation files (the "Software"), to deal
5in the Software without restriction, including without limitation the rights
6to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7copies of the Software, and to permit persons to whom the Software is furnished
8to do so, subject to the following conditions:
9
10The above copyright notice and this permission notice shall be included in all
11copies or substantial portions of the Software.
12
13THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19THE SOFTWARE.
diff --git a/vendor/silex/silex/README.rst b/vendor/silex/silex/README.rst
20deleted file mode 1006440deleted file mode 100644
index 5b7519b..0000000
--- a/vendor/silex/silex/README.rst
+++ /dev/null
@@ -1,64 +0,0 @@
1Silex, a simple Web Framework
2=============================
3
4Silex is a PHP micro-framework to develop websites based on `Symfony
5components`_:
6
7.. code-block:: php
8
9 <?php
10
11 require_once __DIR__.'/../vendor/autoload.php';
12
13 $app = new Silex\Application();
14
15 $app->get('/hello/{name}', function ($name) use ($app) {
16 return 'Hello '.$app->escape($name);
17 });
18
19 $app->run();
20
21Silex works with PHP 5.3.9 or later.
22
23Installation
24------------
25
26The recommended way to install Silex is through `Composer`_:
27
28.. code-block:: bash
29
30 composer require silex/silex "~1.3"
31
32Alternatively, you can download the `silex.zip`_ file and extract it.
33
34More Information
35----------------
36
37Read the `documentation`_ for more information and `changelog
38<doc/changelog.rst>`_ for upgrading information.
39
40Tests
41-----
42
43To run the test suite, you need `Composer`_ and `PHPUnit`_:
44
45.. code-block:: bash
46
47 $ composer install
48 $ phpunit
49
50Community
51---------
52
53Check out #silex-php on irc.freenode.net.
54
55License
56-------
57
58Silex is licensed under the MIT license.
59
60.. _Symfony components: http://symfony.com
61.. _Composer: http://getcomposer.org
62.. _PHPUnit: https://phpunit.de
63.. _silex.zip: http://silex.sensiolabs.org/download
64.. _documentation: http://silex.sensiolabs.org/documentation
diff --git a/vendor/silex/silex/bin/build b/vendor/silex/silex/bin/build
65deleted file mode 1007550deleted file mode 100755
index e727003..0000000
--- a/vendor/silex/silex/bin/build
+++ /dev/null
@@ -1,67 +0,0 @@
1#!/bin/sh
2
3PHP=`which php`
4GIT=`which git`
5DIR=`$PHP -r "echo dirname(dirname(realpath('$0')));"`
6
7if [ ! -d "$DIR/build" ]; then
8 mkdir -p $DIR/build
9fi
10
11cd $DIR/build
12
13if [ ! -f "composer.phar" ]; then
14 curl -s http://getcomposer.org/installer 2>/dev/null | $PHP >/dev/null 2>/dev/null
15else
16 $PHP composer.phar self-update >/dev/null 2>/dev/null
17fi
18
19for TYPE in slim fat
20do
21 if [ -d "$DIR/build/skeleton" ]; then
22 rm -rf $DIR/build/skeleton
23 fi
24 mkdir -p $DIR/build/skeleton
25
26 cd "$DIR/build/skeleton"
27
28 mkdir -p web/
29 COMPOSER=$TYPE"_composer.json"
30 cp $DIR/bin/skeleton/$COMPOSER composer.json
31 cp $DIR/bin/skeleton/index.php web/index.php
32
33 $PHP ../composer.phar install -q
34
35 if [ -d "$DIR/build/tmp/silex" ]; then
36 rm -rf $DIR/build/tmp/silex
37 fi
38 mkdir -p $DIR/build/tmp/silex
39
40 cd "$DIR/build/tmp/silex"
41 cp -r ../../skeleton/* .
42
43 find . -name .DS_Store | xargs rm -rf -
44 find . -name .git | xargs rm -rf -
45 find . -name phpunit.xml.* | xargs rm -rf -
46 find . -type d -name Tests | xargs rm -rf -
47 find . -type d -name test* | xargs rm -rf -
48 find . -type d -name doc | xargs rm -rf -
49 find . -type d -name ext | xargs rm -rf -
50
51 export COPY_EXTENDED_ATTRIBUTES_DISABLE=true
52 export COPYFILE_DISABLE=true
53
54 cd "$DIR/build/tmp"
55
56 if [ "slim" = "$TYPE" ]; then
57 NAME="silex"
58 else
59 NAME="silex_fat"
60 fi
61
62 rm -f "$DIR/build/$NAME.*"
63 tar zcpf "$DIR/build/$NAME.tgz" silex
64 zip -rq "$DIR/build/$NAME.zip" silex
65 rm -rf "$DIR/build/tmp"
66 rm -rf "$DIR/build/skeleton"
67done
diff --git a/vendor/silex/silex/bin/compile b/vendor/silex/silex/bin/compile
68deleted file mode 1007550deleted file mode 100755
index f0986ed..0000000
--- a/vendor/silex/silex/bin/compile
+++ /dev/null
@@ -1,9 +0,0 @@
1#!/usr/bin/env php
2<?php
3
4require_once __DIR__.'/../vendor/autoload.php';
5
6use Silex\Util\Compiler;
7
8$compiler = new Compiler();
9$compiler->compile();
diff --git a/vendor/silex/silex/bin/skeleton/fat_composer.json b/vendor/silex/silex/bin/skeleton/fat_composer.json
10deleted file mode 1006440deleted file mode 100644
index 4495d4f..0000000
--- a/vendor/silex/silex/bin/skeleton/fat_composer.json
+++ /dev/null
@@ -1,23 +0,0 @@
1{
2 "require": {
3 "silex/silex": "~1.1",
4 "symfony/browser-kit": "~2.3",
5 "symfony/console": "~2.3",
6 "symfony/config": "~2.3",
7 "symfony/css-selector": "~2.3",
8 "symfony/dom-crawler": "~2.3",
9 "symfony/filesystem": "~2.3",
10 "symfony/finder": "~2.3",
11 "symfony/form": "~2.3",
12 "symfony/locale": "~2.3",
13 "symfony/process": "~2.3",
14 "symfony/security": "~2.3",
15 "symfony/serializer": "~2.3",
16 "symfony/translation": "~2.3",
17 "symfony/validator": "~2.3",
18 "symfony/monolog-bridge": "~2.3",
19 "symfony/twig-bridge": "~2.3",
20 "doctrine/dbal": ">=2.2.0,<2.4.0-dev",
21 "swiftmailer/swiftmailer": "5.*"
22 }
23}
diff --git a/vendor/silex/silex/bin/skeleton/index.php b/vendor/silex/silex/bin/skeleton/index.php
24deleted file mode 1006440deleted file mode 100644
index 683c610..0000000
--- a/vendor/silex/silex/bin/skeleton/index.php
+++ /dev/null
@@ -1,11 +0,0 @@
1<?php
2
3require_once __DIR__.'/../vendor/autoload.php';
4
5$app = new Silex\Application();
6
7$app->get('/hello', function () {
8 return 'Hello!';
9});
10
11$app->run();
diff --git a/vendor/silex/silex/bin/skeleton/slim_composer.json b/vendor/silex/silex/bin/skeleton/slim_composer.json
12deleted file mode 1006440deleted file mode 100644
index df5ed00..0000000
--- a/vendor/silex/silex/bin/skeleton/slim_composer.json
+++ /dev/null
@@ -1,5 +0,0 @@
1{
2 "require": {
3 "silex/silex": "~1.1"
4 }
5}
diff --git a/vendor/silex/silex/composer.json b/vendor/silex/silex/composer.json
6deleted file mode 1006440deleted file mode 100644
index 17fd3e3..0000000
--- a/vendor/silex/silex/composer.json
+++ /dev/null
@@ -1,60 +0,0 @@
1{
2 "name": "silex/silex",
3 "description": "The PHP micro-framework based on the Symfony Components",
4 "keywords": ["microframework"],
5 "homepage": "http://silex.sensiolabs.org",
6 "license": "MIT",
7 "authors": [
8 {
9 "name": "Fabien Potencier",
10 "email": "fabien@symfony.com"
11 },
12 {
13 "name": "Igor Wiedler",
14 "email": "igor@wiedler.ch"
15 }
16 ],
17 "require": {
18 "php": ">=5.3.9",
19 "pimple/pimple": "~1.0",
20 "symfony/event-dispatcher": "~2.3|3.0.*",
21 "symfony/http-foundation": "~2.3|3.0.*",
22 "symfony/http-kernel": "~2.3|3.0.*",
23 "symfony/routing": "~2.3|3.0.*"
24 },
25 "require-dev": {
26 "symfony/security": "~2.3|3.0.*",
27 "symfony/config": "~2.3|3.0.*",
28 "symfony/locale": "~2.3|3.0.*",
29 "symfony/form": "~2.3|3.0.*",
30 "symfony/browser-kit": "~2.3|3.0.*",
31 "symfony/css-selector": "~2.3|3.0.*",
32 "symfony/debug": "~2.3|3.0.*",
33 "symfony/dom-crawler": "~2.3|3.0.*",
34 "symfony/finder": "~2.3|3.0.*",
35 "symfony/monolog-bridge": "~2.3|3.0.*",
36 "symfony/options-resolver": "~2.3|3.0.*",
37 "symfony/phpunit-bridge": "~2.7",
38 "symfony/process": "~2.3|3.0.*",
39 "symfony/serializer": "~2.3|3.0.*",
40 "symfony/translation": "~2.3|3.0.*",
41 "symfony/twig-bridge": "~2.3|3.0.*",
42 "symfony/validator": "~2.3|3.0.*",
43 "twig/twig": "~1.8|~2.0",
44 "doctrine/dbal": "~2.2",
45 "swiftmailer/swiftmailer": "~5",
46 "monolog/monolog": "^1.4.1"
47 },
48 "autoload": {
49 "psr-4": { "Silex\\": "src/Silex" }
50 },
51 "autoload-dev" : {
52 "psr-4": { "Silex\\Tests\\" : "tests/Silex/Tests" }
53 },
54 "extra": {
55 "branch-alias": {
56 "dev-master": "1.3.x-dev"
57 }
58 },
59 "minimum-stability": "dev"
60}
diff --git a/vendor/silex/silex/src/Silex/Application.php b/vendor/silex/silex/src/Silex/Application.php
61deleted file mode 1006440deleted file mode 100644
index b4ab48e..0000000
--- a/vendor/silex/silex/src/Silex/Application.php
+++ /dev/null
@@ -1,600 +0,0 @@
1<?php
2
3/*
4 * This file is part of the Silex framework.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Silex;
13
14use Symfony\Component\EventDispatcher\EventDispatcherInterface;
15use Symfony\Component\HttpFoundation\BinaryFileResponse;
16use Symfony\Component\HttpKernel\HttpKernel;
17use Symfony\Component\HttpKernel\Kernel;
18use Symfony\Component\HttpKernel\HttpKernelInterface;
19use Symfony\Component\HttpKernel\TerminableInterface;
20use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
21use Symfony\Component\HttpKernel\Event\GetResponseEvent;
22use Symfony\Component\HttpKernel\Event\PostResponseEvent;
23use Symfony\Component\HttpKernel\EventListener\ResponseListener;
24use Symfony\Component\HttpKernel\EventListener\RouterListener;
25use Symfony\Component\HttpKernel\Exception\HttpException;
26use Symfony\Component\HttpKernel\KernelEvents;
27use Symfony\Component\HttpFoundation\Request;
28use Symfony\Component\HttpFoundation\RequestStack;
29use Symfony\Component\HttpFoundation\Response;
30use Symfony\Component\HttpFoundation\RedirectResponse;
31use Symfony\Component\HttpFoundation\StreamedResponse;
32use Symfony\Component\HttpFoundation\JsonResponse;
33use Symfony\Component\Routing\RouteCollection;
34use Symfony\Component\Routing\RequestContext;
35use Silex\EventListener\LocaleListener;
36use Silex\EventListener\MiddlewareListener;
37use Silex\EventListener\ConverterListener;
38use Silex\EventListener\StringToResponseListener;
39
40/**
41 * The Silex framework class.
42 *
43 * @author Fabien Potencier <fabien@symfony.com>
44 */
45class Application extends \Pimple implements HttpKernelInterface, TerminableInterface
46{
47 const VERSION = '1.3.5';
48
49 const EARLY_EVENT = 512;
50 const LATE_EVENT = -512;
51
52 protected $providers = array();
53 protected $booted = false;
54
55 /**
56 * Instantiate a new Application.
57 *
58 * Objects and parameters can be passed as argument to the constructor.
59 *
60 * @param array $values The parameters or objects.
61 */
62 public function __construct(array $values = array())
63 {
64 parent::__construct();
65
66 $app = $this;
67
68 $this['logger'] = null;
69
70 $this['routes'] = $this->share(function () {
71 return new RouteCollection();
72 });
73
74 $this['controllers'] = $this->share(function () use ($app) {
75 return $app['controllers_factory'];
76 });
77
78 $this['controllers_factory'] = function () use ($app) {
79 return new ControllerCollection($app['route_factory']);
80 };
81
82 $this['route_class'] = 'Silex\\Route';
83 $this['route_factory'] = function () use ($app) {
84 return new $app['route_class']();
85 };
86
87 $this['exception_handler'] = $this->share(function () use ($app) {
88 return new ExceptionHandler($app['debug']);
89 });
90
91 $this['dispatcher_class'] = 'Symfony\\Component\\EventDispatcher\\EventDispatcher';
92 $this['dispatcher'] = $this->share(function () use ($app) {
93 /*
94 * @var EventDispatcherInterface
95 */
96 $dispatcher = new $app['dispatcher_class']();
97
98 $urlMatcher = new LazyUrlMatcher(function () use ($app) {
99 return $app['url_matcher'];
100 });
101 if (Kernel::VERSION_ID >= 20800) {
102 $dispatcher->addSubscriber(new RouterListener($urlMatcher, $app['request_stack'], $app['request_context'], $app['logger']));
103 } else {
104 $dispatcher->addSubscriber(new RouterListener($urlMatcher, $app['request_context'], $app['logger'], $app['request_stack']));
105 }
106 $dispatcher->addSubscriber(new LocaleListener($app, $urlMatcher, $app['request_stack']));
107 if (isset($app['exception_handler'])) {
108 $dispatcher->addSubscriber($app['exception_handler']);
109 }
110 $dispatcher->addSubscriber(new ResponseListener($app['charset']));
111 $dispatcher->addSubscriber(new MiddlewareListener($app));
112 $dispatcher->addSubscriber(new ConverterListener($app['routes'], $app['callback_resolver']));
113 $dispatcher->addSubscriber(new StringToResponseListener());
114
115 return $dispatcher;
116 });
117
118 $this['callback_resolver'] = $this->share(function () use ($app) {
119 return new CallbackResolver($app);
120 });
121
122 $this['resolver'] = $this->share(function () use ($app) {
123 return new ControllerResolver($app, $app['logger']);
124 });
125
126 $this['kernel'] = $this->share(function () use ($app) {
127 return new HttpKernel($app['dispatcher'], $app['resolver'], $app['request_stack']);
128 });
129
130 $this['request_stack'] = $this->share(function () use ($app) {
131 if (class_exists('Symfony\Component\HttpFoundation\RequestStack')) {
132 return new RequestStack();
133 }
134 });
135
136 $this['request_context'] = $this->share(function () use ($app) {
137 $context = new RequestContext();
138
139 $context->setHttpPort($app['request.http_port']);
140 $context->setHttpsPort($app['request.https_port']);
141
142 return $context;
143 });
144
145 $this['url_matcher'] = $this->share(function () use ($app) {
146 return new RedirectableUrlMatcher($app['routes'], $app['request_context']);
147 });
148
149 $this['request_error'] = $this->protect(function () {
150 throw new \RuntimeException('Accessed request service outside of request scope. Try moving that call to a before handler or controller.');
151 });
152
153 $this['request'] = $this['request_error'];
154
155 $this['request.http_port'] = 80;
156 $this['request.https_port'] = 443;
157 $this['debug'] = false;
158 $this['charset'] = 'UTF-8';
159 $this['locale'] = 'en';
160
161 foreach ($values as $key => $value) {
162 $this[$key] = $value;
163 }
164 }
165
166 /**
167 * Registers a service provider.
168 *
169 * @param ServiceProviderInterface $provider A ServiceProviderInterface instance
170 * @param array $values An array of values that customizes the provider
171 *
172 * @return Application
173 */
174 public function register(ServiceProviderInterface $provider, array $values = array())
175 {
176 $this->providers[] = $provider;
177
178 $provider->register($this);
179
180 foreach ($values as $key => $value) {
181 $this[$key] = $value;
182 }
183
184 return $this;
185 }
186
187 /**
188 * Boots all service providers.
189 *
190 * This method is automatically called by handle(), but you can use it
191 * to boot all service providers when not handling a request.
192 */
193 public function boot()
194 {
195 if (!$this->booted) {
196 foreach ($this->providers as $provider) {
197 $provider->boot($this);
198 }
199
200 $this->booted = true;
201 }
202 }
203
204 /**
205 * Maps a pattern to a callable.
206 *
207 * You can optionally specify HTTP methods that should be matched.
208 *
209 * @param string $pattern Matched route pattern
210 * @param mixed $to Callback that returns the response when matched
211 *
212 * @return Controller
213 */
214 public function match($pattern, $to = null)
215 {
216 return $this['controllers']->match($pattern, $to);
217 }
218
219 /**
220 * Maps a GET request to a callable.
221 *
222 * @param string $pattern Matched route pattern
223 * @param mixed $to Callback that returns the response when matched
224 *
225 * @return Controller
226 */
227 public function get($pattern, $to = null)
228 {
229 return $this['controllers']->get($pattern, $to);
230 }
231
232 /**
233 * Maps a POST request to a callable.
234 *
235 * @param string $pattern Matched route pattern
236 * @param mixed $to Callback that returns the response when matched
237 *
238 * @return Controller
239 */
240 public function post($pattern, $to = null)
241 {
242 return $this['controllers']->post($pattern, $to);
243 }
244
245 /**
246 * Maps a PUT request to a callable.
247 *
248 * @param string $pattern Matched route pattern
249 * @param mixed $to Callback that returns the response when matched
250 *
251 * @return Controller
252 */
253 public function put($pattern, $to = null)
254 {
255 return $this['controllers']->put($pattern, $to);
256 }
257
258 /**
259 * Maps a DELETE request to a callable.
260 *
261 * @param string $pattern Matched route pattern
262 * @param mixed $to Callback that returns the response when matched
263 *
264 * @return Controller
265 */
266 public function delete($pattern, $to = null)
267 {
268 return $this['controllers']->delete($pattern, $to);
269 }
270
271 /**
272 * Maps an OPTIONS request to a callable.
273 *
274 * @param string $pattern Matched route pattern
275 * @param mixed $to Callback that returns the response when matched
276 *
277 * @return Controller
278 */
279 public function options($pattern, $to = null)
280 {
281 return $this['controllers']->options($pattern, $to);
282 }
283
284 /**
285 * Maps a PATCH request to a callable.
286 *
287 * @param string $pattern Matched route pattern
288 * @param mixed $to Callback that returns the response when matched
289 *
290 * @return Controller
291 */
292 public function patch($pattern, $to = null)
293 {
294 return $this['controllers']->patch($pattern, $to);
295 }
296
297 /**
298 * Adds an event listener that listens on the specified events.
299 *
300 * @param string $eventName The event to listen on
301 * @param callable $callback The listener
302 * @param int $priority The higher this value, the earlier an event
303 * listener will be triggered in the chain (defaults to 0)
304 */
305 public function on($eventName, $callback, $priority = 0)
306 {
307 if ($this->booted) {
308 $this['dispatcher']->addListener($eventName, $this['callback_resolver']->resolveCallback($callback), $priority);
309
310 return;
311 }
312
313 $this['dispatcher'] = $this->share($this->extend('dispatcher', function (EventDispatcherInterface $dispatcher, $app) use ($callback, $priority, $eventName) {
314 $dispatcher->addListener($eventName, $app['callback_resolver']->resolveCallback($callback), $priority);
315
316 return $dispatcher;
317 }));
318 }
319
320 /**
321 * Registers a before filter.
322 *
323 * Before filters are run before any route has been matched.
324 *
325 * @param mixed $callback Before filter callback
326 * @param int $priority The higher this value, the earlier an event
327 * listener will be triggered in the chain (defaults to 0)
328 */
329 public function before($callback, $priority = 0)
330 {
331 $app = $this;
332
333 $this->on(KernelEvents::REQUEST, function (GetResponseEvent $event) use ($callback, $app) {
334 if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
335 return;
336 }
337
338 $ret = call_user_func($app['callback_resolver']->resolveCallback($callback), $event->getRequest(), $app);
339
340 if ($ret instanceof Response) {
341 $event->setResponse($ret);
342 }
343 }, $priority);
344 }
345
346 /**
347 * Registers an after filter.
348 *
349 * After filters are run after the controller has been executed.
350 *
351 * @param mixed $callback After filter callback
352 * @param int $priority The higher this value, the earlier an event
353 * listener will be triggered in the chain (defaults to 0)
354 */
355 public function after($callback, $priority = 0)
356 {
357 $app = $this;
358
359 $this->on(KernelEvents::RESPONSE, function (FilterResponseEvent $event) use ($callback, $app) {
360 if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
361 return;
362 }
363
364 $response = call_user_func($app['callback_resolver']->resolveCallback($callback), $event->getRequest(), $event->getResponse(), $app);
365 if ($response instanceof Response) {
366 $event->setResponse($response);
367 } elseif (null !== $response) {
368 throw new \RuntimeException('An after middleware returned an invalid response value. Must return null or an instance of Response.');
369 }
370 }, $priority);
371 }
372
373 /**
374 * Registers a finish filter.
375 *
376 * Finish filters are run after the response has been sent.
377 *
378 * @param mixed $callback Finish filter callback
379 * @param int $priority The higher this value, the earlier an event
380 * listener will be triggered in the chain (defaults to 0)
381 */
382 public function finish($callback, $priority = 0)
383 {
384 $app = $this;
385
386 $this->on(KernelEvents::TERMINATE, function (PostResponseEvent $event) use ($callback, $app) {
387 call_user_func($app['callback_resolver']->resolveCallback($callback), $event->getRequest(), $event->getResponse(), $app);
388 }, $priority);
389 }
390
391 /**
392 * Aborts the current request by sending a proper HTTP error.
393 *
394 * @param int $statusCode The HTTP status code
395 * @param string $message The status message
396 * @param array $headers An array of HTTP headers
397 */
398 public function abort($statusCode, $message = '', array $headers = array())
399 {
400 throw new HttpException($statusCode, $message, null, $headers);
401 }
402
403 /**
404 * Registers an error handler.
405 *
406 * Error handlers are simple callables which take a single Exception
407 * as an argument. If a controller throws an exception, an error handler
408 * can return a specific response.
409 *
410 * When an exception occurs, all handlers will be called, until one returns
411 * something (a string or a Response object), at which point that will be
412 * returned to the client.
413 *
414 * For this reason you should add logging handlers before output handlers.
415 *
416 * @param mixed $callback Error handler callback, takes an Exception argument
417 * @param int $priority The higher this value, the earlier an event
418 * listener will be triggered in the chain (defaults to -8)
419 */
420 public function error($callback, $priority = -8)
421 {
422 $this->on(KernelEvents::EXCEPTION, new ExceptionListenerWrapper($this, $callback), $priority);
423 }
424
425 /**
426 * Registers a view handler.
427 *
428 * View handlers are simple callables which take a controller result and the
429 * request as arguments, whenever a controller returns a value that is not
430 * an instance of Response. When this occurs, all suitable handlers will be
431 * called, until one returns a Response object.
432 *
433 * @param mixed $callback View handler callback
434 * @param int $priority The higher this value, the earlier an event
435 * listener will be triggered in the chain (defaults to 0)
436 */
437 public function view($callback, $priority = 0)
438 {
439 $this->on(KernelEvents::VIEW, new ViewListenerWrapper($this, $callback), $priority);
440 }
441
442 /**
443 * Flushes the controller collection.
444 *
445 * @param string $prefix The route prefix
446 */
447 public function flush($prefix = '')
448 {
449 $this['routes']->addCollection($this['controllers']->flush($prefix));
450 }
451
452 /**
453 * Redirects the user to another URL.
454 *
455 * @param string $url The URL to redirect to
456 * @param int $status The status code (302 by default)
457 *
458 * @return RedirectResponse
459 */
460 public function redirect($url, $status = 302)
461 {
462 return new RedirectResponse($url, $status);
463 }
464
465 /**
466 * Creates a streaming response.
467 *
468 * @param mixed $callback A valid PHP callback
469 * @param int $status The response status code
470 * @param array $headers An array of response headers
471 *
472 * @return StreamedResponse
473 */
474 public function stream($callback = null, $status = 200, array $headers = array())
475 {
476 return new StreamedResponse($callback, $status, $headers);
477 }
478
479 /**
480 * Escapes a text for HTML.
481 *
482 * @param string $text The input text to be escaped
483 * @param int $flags The flags (@see htmlspecialchars)
484 * @param string $charset The charset
485 * @param bool $doubleEncode Whether to try to avoid double escaping or not
486 *
487 * @return string Escaped text
488 */
489 public function escape($text, $flags = ENT_COMPAT, $charset = null, $doubleEncode = true)
490 {
491 return htmlspecialchars($text, $flags, $charset ?: $this['charset'], $doubleEncode);
492 }
493
494 /**
495 * Convert some data into a JSON response.
496 *
497 * @param mixed $data The response data
498 * @param int $status The response status code
499 * @param array $headers An array of response headers
500 *
501 * @return JsonResponse
502 */
503 public function json($data = array(), $status = 200, array $headers = array())
504 {
505 return new JsonResponse($data, $status, $headers);
506 }
507
508 /**
509 * Sends a file.
510 *
511 * @param \SplFileInfo|string $file The file to stream
512 * @param int $status The response status code
513 * @param array $headers An array of response headers
514 * @param null|string $contentDisposition The type of Content-Disposition to set automatically with the filename
515 *
516 * @return BinaryFileResponse
517 *
518 * @throws \RuntimeException When the feature is not supported, before http-foundation v2.2
519 */
520 public function sendFile($file, $status = 200, array $headers = array(), $contentDisposition = null)
521 {
522 return new BinaryFileResponse($file, $status, $headers, true, $contentDisposition);
523 }
524
525 /**
526 * Mounts controllers under the given route prefix.
527 *
528 * @param string $prefix The route prefix
529 * @param ControllerCollection|ControllerProviderInterface $controllers A ControllerCollection or a ControllerProviderInterface instance
530 *
531 * @return Application
532 */
533 public function mount($prefix, $controllers)
534 {
535 if ($controllers instanceof ControllerProviderInterface) {
536 $connectedControllers = $controllers->connect($this);
537
538 if (!$connectedControllers instanceof ControllerCollection) {
539 throw new \LogicException(sprintf('The method "%s::connect" must return a "ControllerCollection" instance. Got: "%s"', get_class($controllers), is_object($connectedControllers) ? get_class($connectedControllers) : gettype($connectedControllers)));
540 }
541
542 $controllers = $connectedControllers;
543 } elseif (!$controllers instanceof ControllerCollection) {
544 throw new \LogicException('The "mount" method takes either a "ControllerCollection" or a "ControllerProviderInterface" instance.');
545 }
546
547 $this['controllers']->mount($prefix, $controllers);
548
549 return $this;
550 }
551
552 /**
553 * Handles the request and delivers the response.
554 *
555 * @param Request|null $request Request to process
556 */
557 public function run(Request $request = null)
558 {
559 if (null === $request) {
560 $request = Request::createFromGlobals();
561 }
562
563 $response = $this->handle($request);
564 $response->send();
565 $this->terminate($request, $response);
566 }
567
568 /**
569 * {@inheritdoc}
570 *
571 * If you call this method directly instead of run(), you must call the
572 * terminate() method yourself if you want the finish filters to be run.
573 */
574 public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
575 {
576 if (!$this->booted) {
577 $this->boot();
578 }
579
580 $current = HttpKernelInterface::SUB_REQUEST === $type ? $this['request'] : $this['request_error'];
581
582 $this['request'] = $request;
583
584 $this->flush();
585
586 $response = $this['kernel']->handle($request, $type, $catch);
587
588 $this['request'] = $current;
589
590 return $response;
591 }
592
593 /**
594 * {@inheritdoc}
595 */
596 public function terminate(Request $request, Response $response)
597 {
598 $this['kernel']->terminate($request, $response);
599 }
600}
diff --git a/vendor/silex/silex/src/Silex/Application/FormTrait.php b/vendor/silex/silex/src/Silex/Application/FormTrait.php
601deleted file mode 1006440deleted file mode 100644
index 46e5e88..0000000
--- a/vendor/silex/silex/src/Silex/Application/FormTrait.php
+++ /dev/null
@@ -1,41 +0,0 @@
1<?php
2
3/*
4 * This file is part of the Silex framework.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Silex\Application;
13
14use Symfony\Component\Form\FormBuilder;
15
16/**
17 * Form trait.
18 *
19 * @author Fabien Potencier <fabien@symfony.com>
20 */
21trait FormTrait
22{
23 /**
24 * Creates and returns a form builder instance.
25 *
26 * @param mixed $data The initial data for the form
27 * @param array $options Options for the form
28 *
29 * @return FormBuilder
30 */
31 public function form($data = null, array $options = array())
32 {
33 $name = 'Symfony\Component\Form\Extension\Core\Type\FormType';
34 // BC with Symfony < 2.8
35 if (!class_exists('Symfony\Component\Form\Extension\Core\Type\RangeType')) {
36 $name = 'form';
37 }
38
39 return $this['form.factory']->createBuilder($name, $data, $options);
40 }
41}
diff --git a/vendor/silex/silex/src/Silex/Application/MonologTrait.php b/vendor/silex/silex/src/Silex/Application/MonologTrait.php
42deleted file mode 1006440deleted file mode 100644
index 18cb54c..0000000
--- a/vendor/silex/silex/src/Silex/Application/MonologTrait.php
+++ /dev/null
@@ -1,36 +0,0 @@
1<?php
2
3/*
4 * This file is part of the Silex framework.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Silex\Application;
13
14use Monolog\Logger;
15
16/**
17 * Monolog trait.
18 *
19 * @author Fabien Potencier <fabien@symfony.com>
20 */
21trait MonologTrait
22{
23 /**
24 * Adds a log record.
25 *
26 * @param string $message The log message
27 * @param array $context The log context
28 * @param int $level The logging level
29 *
30 * @return bool Whether the record has been processed
31 */
32 public function log($message, array $context = array(), $level = Logger::INFO)
33 {
34 return $this['monolog']->addRecord($level, $message, $context);
35 }
36}
diff --git a/vendor/silex/silex/src/Silex/Application/SecurityTrait.php b/vendor/silex/silex/src/Silex/Application/SecurityTrait.php
37deleted file mode 1006440deleted file mode 100644
index 6bca5e0..0000000
--- a/vendor/silex/silex/src/Silex/Application/SecurityTrait.php
+++ /dev/null
@@ -1,67 +0,0 @@
1<?php
2
3/*
4 * This file is part of the Silex framework.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Silex\Application;
13
14use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
15use Symfony\Component\Security\Core\Exception\AuthenticationCredentialsNotFoundException;
16use Symfony\Component\Security\Core\User\UserInterface;
17
18/**
19 * Security trait.
20 *
21 * @author Fabien Potencier <fabien@symfony.com>
22 */
23trait SecurityTrait
24{
25 /**
26 * Gets a user from the Security context.
27 *
28 * @return mixed
29 *
30 * @see TokenInterface::getUser()
31 * @deprecated since 1.3, to be removed in 3.0
32 */
33 public function user()
34 {
35 return $this['user'];
36 }
37
38 /**
39 * Encodes the raw password.
40 *
41 * @param UserInterface $user A UserInterface instance
42 * @param string $password The password to encode
43 *
44 * @return string The encoded password
45 *
46 * @throws \RuntimeException when no password encoder could be found for the user
47 */
48 public function encodePassword(UserInterface $user, $password)
49 {
50 return $this['security.encoder_factory']->getEncoder($user)->encodePassword($password, $user->getSalt());
51 }
52
53 /**
54 * Checks if the attributes are granted against the current authentication token and optionally supplied object.
55 *
56 * @param mixed $attributes
57 * @param mixed $object
58 *
59 * @return bool
60 *
61 * @throws AuthenticationCredentialsNotFoundException when the token storage has no authentication token.
62 */
63 public function isGranted($attributes, $object = null)
64 {
65 return $this['security.authorization_checker']->isGranted($attributes, $object);
66 }
67}
diff --git a/vendor/silex/silex/src/Silex/Application/SwiftmailerTrait.php b/vendor/silex/silex/src/Silex/Application/SwiftmailerTrait.php
68deleted file mode 1006440deleted file mode 100644
index 157f94d..0000000
--- a/vendor/silex/silex/src/Silex/Application/SwiftmailerTrait.php
+++ /dev/null
@@ -1,33 +0,0 @@
1<?php
2
3/*
4 * This file is part of the Silex framework.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Silex\Application;
13
14/**
15 * Swiftmailer trait.
16 *
17 * @author Fabien Potencier <fabien@symfony.com>
18 */
19trait SwiftmailerTrait
20{
21 /**
22 * Sends an email.
23 *
24 * @param \Swift_Message $message A \Swift_Message instance
25 * @param array $failedRecipients An array of failures by-reference
26 *
27 * @return int The number of sent messages
28 */
29 public function mail(\Swift_Message $message, &$failedRecipients = null)
30 {
31 return $this['mailer']->send($message, $failedRecipients);
32 }
33}
diff --git a/vendor/silex/silex/src/Silex/Application/TranslationTrait.php b/vendor/silex/silex/src/Silex/Application/TranslationTrait.php
34deleted file mode 1006440deleted file mode 100644
index 8b6e818..0000000
--- a/vendor/silex/silex/src/Silex/Application/TranslationTrait.php
+++ /dev/null
@@ -1,51 +0,0 @@
1<?php
2
3/*
4 * This file is part of the Silex framework.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Silex\Application;
13
14/**
15 * Translation trait.
16 *
17 * @author Fabien Potencier <fabien@symfony.com>
18 */
19trait TranslationTrait
20{
21 /**
22 * Translates the given message.
23 *
24 * @param string $id The message id
25 * @param array $parameters An array of parameters for the message
26 * @param string $domain The domain for the message
27 * @param string $locale The locale
28 *
29 * @return string The translated string
30 */
31 public function trans($id, array $parameters = array(), $domain = 'messages', $locale = null)
32 {
33 return $this['translator']->trans($id, $parameters, $domain, $locale);
34 }
35
36 /**
37 * Translates the given choice message by choosing a translation according to a number.
38 *
39 * @param string $id The message id
40 * @param int $number The number to use to find the indice of the message
41 * @param array $parameters An array of parameters for the message
42 * @param string $domain The domain for the message
43 * @param string $locale The locale
44 *
45 * @return string The translated string
46 */
47 public function transChoice($id, $number, array $parameters = array(), $domain = 'messages', $locale = null)
48 {
49 return $this['translator']->transChoice($id, $number, $parameters, $domain, $locale);
50 }
51}
diff --git a/vendor/silex/silex/src/Silex/Application/TwigTrait.php b/vendor/silex/silex/src/Silex/Application/TwigTrait.php
52deleted file mode 1006440deleted file mode 100644
index cb4127d..0000000
--- a/vendor/silex/silex/src/Silex/Application/TwigTrait.php
+++ /dev/null
@@ -1,65 +0,0 @@
1<?php
2
3/*
4 * This file is part of the Silex framework.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Silex\Application;
13
14use Symfony\Component\HttpFoundation\Response;
15use Symfony\Component\HttpFoundation\StreamedResponse;
16
17/**
18 * Twig trait.
19 *
20 * @author Fabien Potencier <fabien@symfony.com>
21 */
22trait TwigTrait
23{
24 /**
25 * Renders a view and returns a Response.
26 *
27 * To stream a view, pass an instance of StreamedResponse as a third argument.
28 *
29 * @param string $view The view name
30 * @param array $parameters An array of parameters to pass to the view
31 * @param Response $response A Response instance
32 *
33 * @return Response A Response instance
34 */
35 public function render($view, array $parameters = array(), Response $response = null)
36 {
37 $twig = $this['twig'];
38
39 if ($response instanceof StreamedResponse) {
40 $response->setCallback(function () use ($twig, $view, $parameters) {
41 $twig->display($view, $parameters);
42 });
43 } else {
44 if (null === $response) {
45 $response = new Response();
46 }
47 $response->setContent($twig->render($view, $parameters));
48 }
49
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: