Quellcode durchsuchen

uppgrade to 2.0.22

Sevajol Bastien vor 11 Jahren
Ursprung
Commit
ece174dd45
99 geänderte Dateien mit 1700 neuen und 3503 gelöschten Zeilen
  1. 4 4
      app/bootstrap.php.cache
  2. 1 1
      deps
  3. 4 4
      deps.lock
  4. 2 1
      vendor/bundles/Sensio/Bundle/FrameworkExtraBundle/EventListener/CacheListener.php
  5. 2 0
      vendor/bundles/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/routing.rst
  6. 13 0
      vendor/bundles/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/index.rst
  7. 1 1
      vendor/bundles/Sensio/Bundle/GeneratorBundle/Resources/doc/index.rst
  8. 5 0
      vendor/symfony/.travis.yml
  9. 33 0
      vendor/symfony/CHANGELOG-2.0.md
  10. 3 1
      vendor/symfony/CONTRIBUTING.md
  11. 186 97
      vendor/symfony/CONTRIBUTORS.md
  12. 3 3
      vendor/symfony/README.md
  13. 4 0
      vendor/symfony/phpunit.xml.dist
  14. 1 1
      vendor/symfony/src/Symfony/Bridge/Monolog/composer.json
  15. 0 1
      vendor/symfony/src/Symfony/Bridge/Twig/Extension/FormExtension.php
  16. 5 5
      vendor/symfony/src/Symfony/Bridge/Twig/Extension/YamlExtension.php
  17. 29 0
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/InternalController.php
  18. 13 1
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php
  19. 3 0
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
  20. 4 1
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/EventListener/RouterListener.php
  21. 1 1
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/EventListener/SessionListener.php
  22. 4 2
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php
  23. 17 4
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/HttpKernel.php
  24. 2 2
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/esi.xml
  25. 1 0
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd
  26. 0 1
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/attributes.html.php
  27. 0 1
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_widget.html.php
  28. 9 0
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/CodeHelper.php
  29. 0 1
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/FormHelper.php
  30. 52 0
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/InternalControllerTest.php
  31. 81 0
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php
  32. 2 0
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/full.php
  33. 1 1
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/full.xml
  34. 2 0
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/full.yml
  35. 8 0
      vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php
  36. 4 1
      vendor/symfony/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml
  37. 2 2
      vendor/symfony/src/Symfony/Bundle/TwigBundle/Resources/views/Exception/trace.html.twig
  38. 2 2
      vendor/symfony/src/Symfony/Bundle/TwigBundle/Resources/views/Exception/traces.html.twig
  39. 9 7
      vendor/symfony/src/Symfony/Bundle/TwigBundle/Tests/DependencyInjection/TwigExtensionTest.php
  40. 0 92
      vendor/symfony/src/Symfony/Bundle/TwigBundle/Tests/TwigEngineTest.php
  41. 1 7
      vendor/symfony/src/Symfony/Bundle/TwigBundle/TwigEngine.php
  42. 3 1
      vendor/symfony/src/Symfony/Component/Config/Loader/Loader.php
  43. 4 2
      vendor/symfony/src/Symfony/Component/Console/Input/ArgvInput.php
  44. 2 0
      vendor/symfony/src/Symfony/Component/Console/Input/Input.php
  45. 0 2
      vendor/symfony/src/Symfony/Component/CssSelector/Node/FunctionNode.php
  46. 1 1
      vendor/symfony/src/Symfony/Component/CssSelector/Tokenizer.php
  47. 1 1
      vendor/symfony/src/Symfony/Component/DependencyInjection/Compiler/ResolveInvalidReferencesPass.php
  48. 49 48
      vendor/symfony/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
  49. 4 8
      vendor/symfony/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
  50. 10 2
      vendor/symfony/src/Symfony/Component/Form/Extension/Core/ChoiceList/MonthChoiceList.php
  51. 0 5
      vendor/symfony/src/Symfony/Component/Form/Form.php
  52. 15 8
      vendor/symfony/src/Symfony/Component/HttpFoundation/File/File.php
  53. 2 1
      vendor/symfony/src/Symfony/Component/HttpFoundation/File/MimeType/FileBinaryMimeTypeGuesser.php
  54. 15 2
      vendor/symfony/src/Symfony/Component/HttpFoundation/File/UploadedFile.php
  55. 17 10
      vendor/symfony/src/Symfony/Component/HttpFoundation/Request.php
  56. 0 1
      vendor/symfony/src/Symfony/Component/HttpFoundation/RequestMatcher.php
  57. 1 1
      vendor/symfony/src/Symfony/Component/HttpFoundation/Response.php
  58. 1 0
      vendor/symfony/src/Symfony/Component/HttpFoundation/SessionStorage/PdoSessionStorage.php
  59. 1 1
      vendor/symfony/src/Symfony/Component/HttpKernel/Bundle/Bundle.php
  60. 1 1
      vendor/symfony/src/Symfony/Component/HttpKernel/Exception/FlattenException.php
  61. 3 3
      vendor/symfony/src/Symfony/Component/HttpKernel/Kernel.php
  62. 79 6
      vendor/symfony/src/Symfony/Component/Locale/Stub/StubIntlDateFormatter.php
  63. 8 1
      vendor/symfony/src/Symfony/Component/Process/Process.php
  64. 6 3
      vendor/symfony/src/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd
  65. 1 0
      vendor/symfony/src/Symfony/Component/Security/Http/Firewall/ContextListener.php
  66. 2 2
      vendor/symfony/src/Symfony/Component/Security/Http/HttpUtils.php
  67. 26 7
      vendor/symfony/src/Symfony/Component/Yaml/Dumper.php
  68. 44 12
      vendor/symfony/src/Symfony/Component/Yaml/Inline.php
  69. 15 11
      vendor/symfony/src/Symfony/Component/Yaml/Parser.php
  70. 71 18
      vendor/symfony/src/Symfony/Component/Yaml/Yaml.php
  71. 0 1
      vendor/symfony/tests/Symfony/Tests/Bridge/Doctrine/Logger/DbalLoggerTest.php
  72. 9 0
      vendor/symfony/tests/Symfony/Tests/Component/Config/Loader/LoaderTest.php
  73. 1 1
      vendor/symfony/tests/Symfony/Tests/Component/Config/Resource/DirectoryResourceTest.php
  74. 12 0
      vendor/symfony/tests/Symfony/Tests/Component/Console/Input/ArgvInputTest.php
  75. 1 0
      vendor/symfony/tests/Symfony/Tests/Component/CssSelector/TokenizerTest.php
  76. 14 0
      vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Compiler/ResolveInvalidReferencesPassTest.php
  77. 7 0
      vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Dumper/PhpDumperTest.php
  78. 21 4
      vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/containers/container9.php
  79. 9 3
      vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/graphviz/services9.dot
  80. 13 0
      vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/includes/classes.php
  81. 63 6
      vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/php/services9.php
  82. 238 0
      vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/php/services9_compiled.php
  83. 20 4
      vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/xml/services9.xml
  84. 19 2
      vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/yaml/services9.yml
  85. 6 2
      vendor/symfony/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformerTest.php
  86. 0 1
      vendor/symfony/tests/Symfony/Tests/Component/HttpFoundation/RequestMatcherTest.php
  87. 11 3
      vendor/symfony/tests/Symfony/Tests/Component/HttpFoundation/RequestTest.php
  88. 213 52
      vendor/symfony/tests/Symfony/Tests/Component/Locale/Stub/StubIntlDateFormatterTest.php
  89. 23 18
      vendor/symfony/tests/Symfony/Tests/Component/Locale/Stub/StubNumberFormatterTest.php
  90. 8 0
      vendor/symfony/tests/Symfony/Tests/Component/Locale/TestCase.php
  91. 18 3
      vendor/symfony/tests/Symfony/Tests/Component/Yaml/DumperTest.php
  92. 22 6
      vendor/symfony/tests/Symfony/Tests/Component/Yaml/ParserTest.php
  93. 7 1479
      web/css/3a5c85c.css
  94. 0 89
      web/css/3a5c85c_base_2.css
  95. 7 0
      web/css/3a5c85c_main_5.css
  96. 0 1392
      web/css/3a5c85c_old_3.css
  97. 31 17
      web/js/f792d24.js
  98. 7 4
      web/js/f792d24_autoplay_14.js
  99. 24 13
      web/js/f792d24_muzich_15.js

+ 4 - 4
app/bootstrap.php.cache Datei anzeigen

@@ -458,11 +458,11 @@ abstract class Kernel implements KernelInterface
458 458
     protected $startTime;
459 459
     protected $classes;
460 460
 
461
-    const VERSION         = '2.0.19';
462
-    const VERSION_ID      = '20019';
461
+    const VERSION         = '2.0.22';
462
+    const VERSION_ID      = '20022';
463 463
     const MAJOR_VERSION   = '2';
464 464
     const MINOR_VERSION   = '0';
465
-    const RELEASE_VERSION = '19';
465
+    const RELEASE_VERSION = '22';
466 466
     const EXTRA_VERSION   = '';
467 467
 
468 468
     
@@ -1373,7 +1373,7 @@ abstract class Bundle extends ContainerAware implements BundleInterface
1373 1373
     
1374 1374
     public function registerCommands(Application $application)
1375 1375
     {
1376
-        if (!$dir = realpath($this->getPath().'/Command')) {
1376
+        if (!is_dir($dir = $this->getPath().'/Command')) {
1377 1377
             return;
1378 1378
         }
1379 1379
 

+ 1 - 1
deps Datei anzeigen

@@ -1,6 +1,6 @@
1 1
 [symfony]
2 2
     git=http://github.com/symfony/symfony.git
3
-    version=v2.0.19
3
+    version=v2.0.22
4 4
 
5 5
 [twig]
6 6
     git=http://github.com/fabpot/Twig.git

+ 4 - 4
deps.lock Datei anzeigen

@@ -1,4 +1,4 @@
1
-symfony v2.0.19
1
+symfony v2.0.22
2 2
 twig v1.10.3
3 3
 monolog 1.2.1
4 4
 doctrine-common 2.1.4
@@ -8,8 +8,8 @@ swiftmailer v4.2.2
8 8
 assetic v1.0.4
9 9
 twig-extensions v1.0.0-alpha
10 10
 metadata 1.0.0
11
-SensioFrameworkExtraBundle v2.0.17
11
+SensioFrameworkExtraBundle v2.0.22
12 12
 JMSSecurityExtraBundle e752f888c51425f71382c056961f10f2be642102
13
-SensioDistributionBundle v2.0.17
14
-SensioGeneratorBundle v2.0.19
13
+SensioDistributionBundle v2.0.22
14
+SensioGeneratorBundle v2.0.22
15 15
 AsseticBundle 6f15728c1aefa5246caa83730e3dbf70b0d46052

+ 2 - 1
vendor/bundles/Sensio/Bundle/FrameworkExtraBundle/EventListener/CacheListener.php Datei anzeigen

@@ -35,7 +35,8 @@ class CacheListener
35 35
 
36 36
         $response = $event->getResponse();
37 37
 
38
-        if (!$response->isSuccessful()) {
38
+        // http://tools.ietf.org/html/draft-ietf-httpbis-p4-conditional-12#section-3.1
39
+        if (!$response->isSuccessful() && 304 != $response->getStatusCode()) {
39 40
             return;
40 41
         }
41 42
 

+ 2 - 0
vendor/bundles/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/routing.rst Datei anzeigen

@@ -49,6 +49,8 @@ annotations::
49 49
     {
50 50
     }
51 51
 
52
+.. _annotated-routes-activation:
53
+
52 54
 Activation
53 55
 ----------
54 56
 

+ 13 - 0
vendor/bundles/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/index.rst Datei anzeigen

@@ -141,5 +141,18 @@ annotations::
141 141
     {
142 142
     }
143 143
 
144
+The routes need to be imported to be active as any other routing resources, for example:
145
+
146
+.. code-block:: yaml
147
+
148
+    # app/config/routing.yml
149
+
150
+    # import routes from a controller directory
151
+    annot:
152
+        resource: "@AnnotRoutingBundle/Controller"
153
+        type:     annotation
154
+
155
+see :ref:`Annotated Routes Activation<annotated-routes-activation>` for more details.
156
+
144 157
 .. _`SensioFrameworkExtraBundle`: https://github.com/sensio/SensioFrameworkExtraBundle
145 158
 .. _`Download`: http://github.com/sensio/SensioFrameworkExtraBundle

+ 1 - 1
vendor/bundles/Sensio/Bundle/GeneratorBundle/Resources/doc/index.rst Datei anzeigen

@@ -35,8 +35,8 @@ new commands are listed below:
35 35
    :maxdepth: 1
36 36
 
37 37
    commands/generate_bundle
38
-   commands/generate_doctrine_crud
39 38
    commands/generate_doctrine_entity
39
+   commands/generate_doctrine_crud
40 40
    commands/generate_doctrine_form
41 41
 
42 42
 .. _Download: http://github.com/sensio/SensioGeneratorBundle

+ 5 - 0
vendor/symfony/.travis.yml Datei anzeigen

@@ -4,5 +4,10 @@ php:
4 4
   - 5.3.3
5 5
   - 5.3
6 6
   - 5.4
7
+  - 5.5
8
+
9
+matrix:
10
+  allow_failures:
11
+    - php: 5.5
7 12
 
8 13
 before_script: php vendors.php

+ 33 - 0
vendor/symfony/CHANGELOG-2.0.md Datei anzeigen

@@ -7,6 +7,39 @@ in 2.0 minor versions.
7 7
 To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash
8 8
 To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v2.0.0...v2.0.1
9 9
 
10
+* 2.0.22 (2013-01-17)
11
+
12
+ * 3c87e2e: Added Yaml\Dumper::setIndentation() method to allow a custom indentation level of nested nodes.
13
+ * ba6e315: added a way to enable/disable object support when parsing/dumping
14
+ * ac756bf: added a way to enable/disable PHP support when parsing a YAML input via Yaml::parse()
15
+ * dc2cc6b: [Console] fixed input bug when the value of an option is empty (closes #6649, closes #6689)
16
+ * 880da01: [Process] In edge cases `getcwd()` can return `false`, then `proc_open()` should get `null` to use default value (the working dir of the current PHP process)
17
+ * 1d362b8: [DependencyInjection] fixed a bug where the strict flag on references were lost (closes #6607)
18
+ * 3195122: [HttpFoundation] Check if required shell functions for `FileBinaryMimeTypeGuesser` are not disabled
19
+ * dbafc2c: [CssSelector] added css selector with empty string
20
+ * ba2d035: Restrict Monolog version to be in version <1.3
21
+ * e0923ae: [DependencyInjection] fixed PhpDumper optimizations when an inlined service depends on the current one indirectly
22
+ * cd15390: [DependencyInjection] fixed PhpDumper when an inlined service definition has some properties
23
+ * 73d9cef: [Locale] Adjust `StubIntlDateFormatter` to have new methods added in PHP 5.5
24
+ * 913b564: [Locale] Fix failing `StubIntlDateFormatter` in PHP 5.5
25
+ * 8ae773b: [Form] Fix failing `MonthChoiceList` in PHP 5.5
26
+
27
+* 2.0.21 (2012-12-21)
28
+
29
+ * b8e5689: [FrameworkBundle] fixed ESI calls
30
+
31
+* 2.0.20 (2012-12-20)
32
+
33
+ * 532cc9a: [FrameworkBundle] added support for URIs as an argument to HttpKernel::render()
34
+ * 1f8c501: [FrameworkBundle] restricted the type of controllers that can be executed by InternalController
35
+ * 8b2c17f: fix double-decoding in the routing system
36
+ * 773d818: [FrameworkBundle] Added a check on file mime type for CodeHelper::fileExcerpt()
37
+ * a0e2391: [FrameworkBundle] used the new method for trusted proxies
38
+ * 8bb3208: [Config] Loader::import must return imported data
39
+ * 447ff91: [HttpFoundation] changed UploadedFile::move() to use move_uploaded_file() when possible
40
+ * 0489799: [HttpFoundation] added a check for the host header value
41
+ * ae3d531: [TwigBundle] Moved the registration of the app global to the environment
42
+
10 43
 * 2.0.19 (2012-11-29)
11 44
 
12 45
  * e5536f0: replaced magic strings by proper constants

+ 3 - 1
vendor/symfony/CONTRIBUTING.md Datei anzeigen

@@ -3,7 +3,9 @@ Contributing
3 3
 
4 4
 Symfony2 is an open source, community-driven project. If you'd like to contribute,
5 5
 please read the [Contributing Code][1] part of the documentation. If you're submitting
6
-a pull request, please follow the guidelines in the [Submitting a Patch][2] section.
6
+a pull request, please follow the guidelines in the [Submitting a Patch][2] section
7
+and use the [Pull Request Template][3].
7 8
 
8 9
 [1]: http://symfony.com/doc/current/contributing/code/index.html
9 10
 [2]: http://symfony.com/doc/current/contributing/code/patches.html#check-list
11
+[3]: http://symfony.com/doc/current/contributing/code/patches.html#make-a-pull-request

+ 186 - 97
vendor/symfony/CONTRIBUTORS.md Datei anzeigen

@@ -10,84 +10,96 @@ Symfony2 is the result of the work of many people who made the code better
10 10
  - Jordi Boggiano (seldaek)
11 11
  - Johannes S (johannes)
12 12
  - Kris Wallsmith (kriswallsmith)
13
- - Christophe Coevoet (stof)
14 13
  - Tobias Schultze (tobion)
15
- - Karma Dordrak (drak)
14
+ - Christophe Coevoet (stof)
16 15
  - Pascal Borreli (pborreli)
16
+ - Karma Dordrak (drak)
17 17
  - Ryan Weaver
18 18
  - Lukas Kahwe Smith (lsmith)
19 19
  - Jeremy Mikola (jmikola)
20
- - Benjamin Eberlei (beberlei)
21
- - Igor Wiedler (igorw)
22 20
  - Joseph Bielawski (stloyd)
23
- - Eriksen Costa (eriksencosta)
21
+ - Igor Wiedler (igorw)
22
+ - Benjamin Eberlei (beberlei)
24 23
  - Hugo Hamon (hhamon)
25
- - Jonathan Wage (jwage)
24
+ - Eriksen Costa (eriksencosta)
26 25
  - Martin Hasoň (hason)
26
+ - Jonathan Wage (jwage)
27 27
  - William Durand (couac)
28 28
  - Alexandre Salomé (alexandresalome)
29 29
  - ornicar
30 30
  - stealth35 ‏ (stealth35)
31
- - Bulat Shakirzyanov (avalanche123)
32 31
  - Jean-François Simon (jfsimon)
32
+ - Alexander Mols (asm89)
33
+ - Bulat Shakirzyanov (avalanche123)
33 34
  - Francis Besset (francisbesset)
35
+ - Jakub Zalas (jakubzalas)
34 36
  - Miha Vrhovnik
35 37
  - Henrik Bjørnskov (henrikbjorn)
36 38
  - Konstantin Kudryashov (everzet)
37
- - Jakub Zalas (jakubzalas)
39
+ - Саша Стаменковић (umpirsky)
40
+ - Arnaud Le Blanc (arnaud-lb)
38 41
  - Eric Clemmons (ericclemmons)
39 42
  - Henrik Westphal (snc)
43
+ - Romain Neutron (romain)
40 44
  - Deni
45
+ - Florin Patan (florinpatan)
41 46
  - Dariusz Górecki (canni)
42
- - Alexander Mols (asm89)
47
+ - Marc Weistroff (futurecat)
48
+ - Jordan Alliot (jalliot)
43 49
  - Arnout Boks (aboks)
44 50
  - Hidenori Goto (hidenorigoto)
45
- - Jordan Alliot (jalliot)
46
- - Marc Weistroff (futurecat)
51
+ - Bilal Amarni (bamarni)
47 52
  - Brandon Turner
48
- - Саша Стаменковић (umpirsky)
49 53
  - Andrej Hudec (pulzarraider)
50 54
  - Brikou Carré (brikou)
51 55
  - John Wards (johnwards)
52 56
  - Antoine Hérault (herzult)
53 57
  - Daniel Holmes (dholmes)
54
- - Arnaud Le Blanc (arnaud-lb)
55 58
  - Christian Raue
56
- - lenar
57
- - Fabien Pennequin (fabienpennequin)
58 59
  - Tim Nagel (merk)
60
+ - Michal Piotrowski (eventhorizon)
61
+ - Bart van den Burg (burgov)
59 62
  - Włodzimierz Gajda (gajdaw)
63
+ - Colin Frei
64
+ - lenar
65
+ - Lee McDermott
66
+ - Fabien Pennequin (fabienpennequin)
60 67
  - excelwebzone
61
- - Bilal Amarni (bamarni)
62
- - Romain Neutron (romain)
63
- - Bart van den Burg (burgov)
64
- - Kevin Bond (kbond)
65
- - Florin Patan (florinpatan)
66 68
  - Toni Uebernickel (havvg)
67
- - Jacob Dreesen (jdreesen)
69
+ - woodspire
70
+ - Grégoire Pineau (lyrixx)
71
+ - Mario A. Alvarez Garcia (nomack84)
68 72
  - Douglas Greenshields (shieldo)
73
+ - Kevin Bond (kbond)
69 74
  - Richard Miller (mr_r_miller)
70
- - Grégoire Pineau (lyrixx)
75
+ - Jacob Dreesen (jdreesen)
76
+ - Michel Weimerskirch (mweimerskirch)
71 77
  - Richard Shank (iampersistent)
72 78
  - Sebastian Hörl (blogsh)
73
- - Michal Piotrowski (eventhorizon)
79
+ - Fran Moreno (franmomu)
74 80
  - Juti Noppornpitak
75 81
  - Robert Schönthal (digitalkaoz)
82
+ - Felix Labrecque
76 83
  - Michał Pipa (michal.pipa)
77 84
  - Daniel Gomes (danielcsgomes)
78
- - Michel Weimerskirch (mweimerskirch)
79 85
  - Tigran Azatyan (tigranazatyan)
80 86
  - Pierre Minnieur (pminnieur)
87
+ - Larry Garfield (crell)
88
+ - Arnaud Kleinpeter (nanocom)
89
+ - David Buchmann (dbu)
90
+ - Jonathan Ingram (jonathaningram)
81 91
  - Javier Eguiluz (javier.eguiluz)
82 92
  - Matthieu Ouellette-Vachon (maoueh)
83 93
  - Amal Raghav (kertz)
84
- - Jonathan Ingram (jonathaningram)
85 94
  - Artur Kotyrba
86 95
  - Pablo Godel (pgodel)
96
+ - Sebastiaan Stok (sstok)
87 97
  - Helmer Aaviksoo
98
+ - Gábor Egyed (1ed)
88 99
  - Clément JOBEILI (dator)
89 100
  - Julien Brochet (mewt)
90
- - Arnaud Kleinpeter (nanocom)
101
+ - Rafael Dohms (rdohms)
102
+ - Gordon Franke (gimler)
91 103
  - Benjamin Dulau (dbenjamin)
92 104
  - Andreas Hucks (meandmymonkey)
93 105
  - Noel Guilbert (noel)
@@ -95,74 +107,81 @@ Symfony2 is the result of the work of many people who made the code better
95 107
  - Martin Schuhfuß (usefulthink)
96 108
  - Thomas Rabaix (rande)
97 109
  - Dennis Benkert (denderello)
98
- - Rafael Dohms (rdohms)
110
+ - Marcel Beerta (mazen)
99 111
  - Matthieu Bontemps (mbontemps)
100 112
  - fivestar
101 113
  - Dominique Bongiraud
102 114
  - Leszek Prabucki (l3l0)
115
+ - Danny Berger (dpb587)
103 116
  - Dustin Whittle (dustinwhittle)
104 117
  - jeff
118
+ - Clemens Tolboom
105 119
  - Justin Hileman (bobthecow)
106 120
  - Sven Paulus (subsven)
107 121
  - Xavier Perez
108 122
  - Rui Marinho (ruimarinho)
109
- - Larry Garfield (crell)
110
- - David Buchmann (dbu)
123
+ - Ray
111 124
  - Joseph Rouff (rouffj)
112
- - Marcel Beerta (mazen)
113
- - Gordon Franke (gimler)
125
+ - Albert Casademont (acasademont)
114 126
  - Francois Zaninotto
115 127
  - François Zaninotto (fzaninotto)
116
- - Danny Berger (dpb587)
117 128
  - Xavier Montaña Carreras (xmontana)
118
- - Gábor Egyed (1ed)
119 129
  - Katsuhiro OGAWA
120
- - Clemens Tolboom
130
+ - Peter Kokot (maastermedia)
121 131
  - Alif Rachmawadi
132
+ - boombatower
133
+ - Florian Klein (docteurklein)
122 134
  - jules boussekeyt (gordonslondon)
123 135
  - Jan Sorgalla (jsor)
124
- - Ray
125
- - Lee McDermott
126
- - Mario A. Alvarez Garcia (nomack84)
127 136
  - Guilherme Blanco (guilhermeblanco)
128 137
  - jdhoek
129 138
  - geoffrey
130 139
  - Wodor Wodorski
131 140
  - Matthew Lewinski (lewinski)
132 141
  - Kim Hemsø Rasmussen
142
+ - Dirk Pahl (dirkaholic)
133 143
  - Wouter Van Hecke
134 144
  - Gyula Sallai (salla)
135 145
  - Michael Holm (hollo)
136
- - Peter Kokot (maastermedia)
146
+ - Yaroslav Kiliba
147
+ - Andréia Bohner (andreia)
148
+ - Eric GELOEN (gelo)
137 149
  - arjen
138
- - Florian Klein (docteurklein)
139 150
  - Adrien Brault (adrienbrault)
140 151
  - Manuel Kiessling (manuelkiessling)
141 152
  - Sergey Linnik
142 153
  - Bertrand Zuchuat (garfield-fr)
154
+ - Beau Simensen (simensen)
143 155
  - Grégoire Paris (greg0ire)
156
+ - Tamas Szijarto
157
+ - Thomas Adam
144 158
  - Grégoire Passault (gregwar)
145 159
  - Aurelijus Valeiša (aurelijus)
146 160
  - Gustavo Piltcher
147
- - Albert Casademont (acasademont)
161
+ - Stepan Tanasiychuk (stfalcon)
148 162
  - Albert Jessurum (ajessu)
149 163
  - Tiago Ribeiro (fixe)
150 164
  - Adrian Rudnik (kreischweide)
151 165
  - Francesc Rosàs (frosas)
166
+ - Julien Galenski (ruian)
152 167
  - Bongiraud Dominique
153 168
  - Michel Salib (michelsalib)
169
+ - Jeanmonod David (jeanmonod)
170
+ - Thomas Lallement (raziel057)
171
+ - Niklas Fiekas
172
+ - Tom Van Looy (tvlooy)
154 173
  - Brouznouf
155
- - Andréia Bohner (andreia)
156
- - Sebastiaan Stok (sstok)
157 174
  - Sebastian Bergmann
158
- - Fran Moreno (franmomu)
159 175
  - Greg Thornton (xdissent)
176
+ - sun (sun)
160 177
  - Lars Strojny
161
- - Beau Simensen (simensen)
178
+ - Terje Bråten
162 179
  - Costin Bereveanu (schniper)
180
+ - Markus Lanthaler (lanthaler)
181
+ - Jérôme Vieilledent (lolautruche)
163 182
  - realmfoo
164
- - Tamas Szijarto
165 183
  - Tobias Naumann
184
+ - Ismael Ambrosi (iambrosi)
166 185
  - Shein Alexey
167 186
  - Joe Lencioni
168 187
  - Chekote
@@ -172,51 +191,55 @@ Symfony2 is the result of the work of many people who made the code better
172 191
  - hubert lecorche (hlecorche)
173 192
  - Oscar Cubo Medina (ocubom)
174 193
  - Christophe L. (christophelau)
175
- - Julien Galenski (ruian)
176 194
  - Michael Ridgway
177
- - Stepan Tanasiychuk (stfalcon)
178 195
  - Pavel Campr (pcampr)
179 196
  - Brian King
180
- - Jeanmonod David (jeanmonod)
197
+ - Ricard Clau (ricardclau)
181 198
  - Jan Schumann
182
- - Niklas Fiekas
183 199
  - Olivier Dolbeau (odolbeau)
200
+ - Konstantin Myakshin (koc)
184 201
  - Michele Orselli (orso)
185 202
  - Asier Illarramendi (doup)
203
+ - Chris Heng (gigablah)
186 204
  - Christoph Mewes (xrstf)
187
- - Dirk Pahl (dirkaholic)
205
+ - Jonas Flodén (flojon)
188 206
  - Shigenibu Nishikawa
189 207
  - Marcin Sikoń (marphi)
190 208
  - Miquel Rodríguez Telep (mrtorrent)
191
- - boombatower
209
+ - Filippo Tessarotto
192 210
  - Laurent Bachelier (laurentb)
193 211
  - Fabian Lange (codingfabian)
194 212
  - Yoshio HANAWA
213
+ - Tiago Brito (blackmx)
214
+ - hossein zolfi (ocean)
195 215
  - Kevin McBride
196 216
  - Pablo Díez (pablodip)
197 217
  - Michael Piecko (michael.piecko)
218
+ - Sebastian Krebs
198 219
  - Manuel de Ruiter (manuel)
199
- - sun (sun)
200 220
  - ondrowan
221
+ - Roman Marintsenko (inori)
201 222
  - mcben
202
- - Markus Lanthaler (lanthaler)
203
- - Yaroslav Kiliba
223
+ - Vicent Soria Durá (vicentgodella)
204 224
  - Peter Kruithof (pkruithof)
205 225
  - Erik Trapman (eriktrapman)
206 226
  - De Cock Xavier (xdecock)
207 227
  - Manuel Reinhard (sprain)
208
- - Thomas Adam
209 228
  - Joel Wurtz
210 229
  - Uwe Jäger (uwej711)
211 230
  - Nils Adermann (naderman)
231
+ - Leevi Graham
212 232
  - sasezaki
213 233
  - Steven Surowiec
214 234
  - Marek Kalnik (marekkalnik)
235
+ - Denis Gorbachev (starfall)
215 236
  - Chris Smith
216 237
  - Anthon Pang
238
+ - Eugene Leonovich
217 239
  - Ryan
218 240
  - Alexander Deruwe (aderuwe)
219 241
  - Ivan Rey (ivanrey)
242
+ - Jan Kramer (jankramer)
220 243
  - Marcin Chyłek (songoq)
221 244
  - Ned Schwartz
222 245
  - Ziumin
@@ -224,61 +247,92 @@ Symfony2 is the result of the work of many people who made the code better
224 247
  - Zach Badgett (zachbadgett)
225 248
  - Aurélien Fredouelle
226 249
  - Francesco Levorato
250
+ - Thomas Tourlourat (armetiz)
251
+ - jamogon
227 252
  - Geoffrey Tran (geoff)
253
+ - Florian Rey (nervo)
228 254
  - Christian Schaefer (caefer)
229 255
  - Elliot Anderson (elliot)
230
- - Thomas Lallement (raziel057)
256
+ - Patrick Kaufmann
257
+ - Ben Ramsey (ramsey)
258
+ - Christian Jul Jensen
259
+ - Chris Jones (leek)
260
+ - vitaliytv
231 261
  - Markus Bachmann (baachi)
232 262
  - aubx
233 263
  - Max Rath (drak3)
264
+ - Ruben Gonzalez (rubenrua)
265
+ - Sinan Eldem
266
+ - DerManoMann
234 267
  - Nahuel Cuesta (ncuesta)
235 268
  - Chris Boden (cboden)
269
+ - Roumen Damianoff (roumen)
270
+ - Pierre du Plessis (pierredup)
271
+ - Åsmund Garfors
272
+ - Jeremy David (jeremy.david)
273
+ - Tobias Sjösten (tobiassjosten)
236 274
  - Dustin Dobervich (dustin10)
237 275
  - Sebastian Marek (proofek)
238 276
  - Erkhembayar Gantulga (erheme318)
277
+ - Ken Marfilla (marfillaster)
239 278
  - Rostyslav Kinash
279
+ - jfcixmedia
280
+ - Vincent Simonin
240 281
  - yktd26
241
- - Tom Van Looy (tvlooy)
282
+ - Jakub Kucharovic
242 283
  - umpirski
243 284
  - cedric lombardot (cedriclombardot)
244 285
  - John Kary (johnkary)
245 286
  - Hossein Bukhamsin
287
+ - Pierre-Yves LEBECQ (pylebecq)
246 288
  - Fabrice Bernhard (fabriceb)
289
+ - Mark Sonnabaum
247 290
  - develop
248
- - Filippo Tessarotto
249
- - hossein zolfi (ocean)
250 291
  - Atsuhiro KUBO (iteman)
292
+ - Samy Dindane (dinduks)
251 293
  - yclian
252 294
  - Jérémy Romey (jeremyfreeagent)
295
+ - Pascal Helfenstein
296
+ - Matt Daum (daum)
297
+ - Baldur Rensch
253 298
  - Hiromi Hishida (77web)
299
+ - Alex Xandra Albert Sim
254 300
  - Yuen-Chi Lian
255 301
  - Joshua Nye
256 302
  - avorobiev
303
+ - Stéphane PY (steph_py)
257 304
  - Mark Challoner
258 305
  - Andrew Tchircoff (andrewtch)
306
+ - BilgeXA
259 307
  - michaelwilliams
260 308
  - Casper Valdemar Poulsen
309
+ - Eduardo Gulias (egulias)
261 310
  - Josiah (josiah)
262 311
  - John Bohn (jbohn)
263
- - Roman Marintsenko (inori)
312
+ - Nicolas Schwartz (nicoschwartz)
313
+ - Christian Soronellas Vallespí (theunic)
314
+ - Benjamin Grandfond (benjamin)
264 315
  - Degory Valentine
265 316
  - Krzysiek Łabuś
266 317
  - Xavier Lacot (xavier)
267 318
  - Olivier Maisonneuve
319
+ - Iwan van Staveren (istaveren)
268 320
  - cgonzalez
269 321
  - matt foster
270 322
  - Evan S Kaufman (evanskaufman)
271
- - Ismael Ambrosi (iambrosi)
272 323
  - Jayson Xu (superjavason)
273 324
  - Jan Prieser
274 325
  - James Michael DuPont
275 326
  - Tom Klingenberg
327
+ - Gunther Konig
276 328
  - Christopher Hall (mythmakr)
277 329
  - Paul Kamer (pkamer)
278 330
  - Pierre Vanliefland (pvanliefland)
279
- - Eric GELOEN (gelo)
331
+ - Martin Parsiegla (spea)
280 332
  - Philipp Kräutli (pkraeutli)
333
+ - Stefano Sala (stefano.sala)
281 334
  - frost-nzcr4
335
+ - Loïc Chardonnet (gnusat)
282 336
  - Michaël Perrin (michael.perrin)
283 337
  - Abhoryo
284 338
  - Fabian Vogler (fabian)
@@ -294,71 +348,85 @@ Symfony2 is the result of the work of many people who made the code better
294 348
  - Matt Robinson (inanimatt)
295 349
  - julien pauli (jpauli)
296 350
  - mwsaz
351
+ - Benoît Bourgeois
352
+ - Filipe Guerra
297 353
  - corphi
298 354
  - grizlik
299 355
  - Derek ROTH
300 356
  - Shin Ohno (ganchiku)
301 357
  - Drew Butler (nodrew)
358
+ - Alexander Miehe (engerim)
359
+ - Titouan Galopin (tgalopin)
302 360
  - Don Pinkster
303 361
  - Emil Einarsson
304 362
  - Thibault Duplessis
305 363
  - Marc Abramowitz
306 364
  - Mathias Rohnstock (drmonty)
365
+ - Harry Walter (haswalt)
307 366
  - Michael Roterman (wtfzdotnet)
308 367
  - Arno Geurts
309 368
  - Adán Lobato (adanlobato)
310 369
  - Mikhail Yurasov
370
+ - Sam Williams
311 371
  - Miha Vrhovnik
372
+ - Moritz Borgmann
312 373
  - Daniel Cestari
313
- - Thomas Tourlourat (armetiz)
314 374
  - Karoly Negyesi (chx)
315 375
  - Javier López (loalf)
316 376
  - Magnus Nordlander (magnusnordlander)
317 377
  - Adam Monsen (meonkeys)
318
- - Florian Rey (nervo)
319 378
  - LOUARDI Abdeltif (ouardisoft)
320 379
  - Robert Gruendler (pulse00)
380
+ - ragtek (ragtek)
321 381
  - Benoît Merlet (trompette)
322 382
  - Maks
323 383
  - Jan Behrens
324 384
  - Raul Fraile (raulfraile)
325 385
  - sensio
326
- - Patrick Kaufmann
327 386
  - Théophile Helleboid - chtitux
328
- - Ben Ramsey (ramsey)
329
- - Christian Jul Jensen
330
- - Chris Jones (leek)
331 387
  - xaav
332 388
  - Juti Noppornpitak
333
- - Roumen Damianoff
389
+ - Mei Gwilym
390
+ - ttomor
334 391
  - Sander Coolen
335 392
  - Josip Kruslin
393
+ - Manuele Menozzi
336 394
  - Anton Babenko (antonbabenko)
337 395
  - Irmantas Šiupšinskas (irmantas)
396
+ - dantleech
338 397
  - Tero Alén (tero)
339
- - DerManoMann
340 398
  - Vadim Tyukov (vatson)
341 399
  - Sortex
342 400
  - arjenjb
343 401
  - chispita
344 402
  - Wojciech Sznapka
345
- - Tobias Sjösten (tobiassjosten)
346 403
  - Alex Bogomazov
347 404
  - julien.galenski
348 405
  - Sébastien Lavoie
349 406
  - Per Sandström (per)
350
- - Jeremy David (jeremy.david)
351
- - Ken Marfilla (marfillaster)
407
+ - Ville Mattila
352 408
  - Robert Kiss (kepten)
353
- - jfcixmedia
354 409
  - Vitaliy Tverdokhlib (vitaliytv)
355 410
  - Martijn Evers
356
- - Chris Heng
411
+ - Sergii Smertin (nfx)
357 412
  - Nerijus Arlauskas
413
+ - Haritz Iturbe (hizai)
414
+ - SPolischook
415
+ - Diego Sapriza
416
+ - Joan Cruz
417
+ - Antoine Corcy
418
+ - inspiran
419
+ - Cristobal Dabed
420
+ - matteo giachino
421
+ - Daniel Mecke (daniel_mecke)
422
+ - Alex Demchenko (pilot)
423
+ - Tomasz Kowalczyk (thunderer)
424
+ - Vincent AUBERT (vincent)
358 425
  - DerManoMann
359 426
  - Jochen Bayer (jocl)
360 427
  - Jeremy Bush
361 428
  - Evan Villemez
429
+ - Dmitrii Chekaliuk
362 430
  - Davide Borsatto (davide.borsatto)
363 431
  - kaiwa
364 432
  - Albert Ganiev (helios-ag)
@@ -372,21 +440,23 @@ Symfony2 is the result of the work of many people who made the code better
372 440
  - Marco
373 441
  - Alberto Aldegheri
374 442
  - heccjj
443
+ - Alexandre Melard
375 444
  - modi
376 445
  - Sergey Yuferev
377 446
  - Richard van den Brand (ricbra)
378
- - Mark Sonnabaum
379 447
  - Aharon Perkel
448
+ - Malaney J. Hill
380 449
  - Andy Cox (ringo)
450
+ - Sebastian Göttschkes (sgoettschkes)
451
+ - Pierre Tachoire
381 452
  - Balázs Benyó (duplabe)
382 453
  - Sebastian Utz
383
- - Samy Dindane (dinduks)
384 454
  - Keri Henare (kerihenare)
385 455
  - Cédric Lahouste (rapotor)
386
- - Terje Bråten
456
+ - Anthony Ferrara
387 457
  - Janusz Jablonski
388 458
  - George Giannoulopoulos
389
- - Matt Daum (daum)
459
+ - Ilya Biryukov
390 460
  - Alberto Pirovano (geezmo)
391 461
  - Xavier Briand (xavierbriand)
392 462
  - Evan Kaufman
@@ -394,21 +464,20 @@ Symfony2 is the result of the work of many people who made the code better
394 464
  - Marcus Stöhr (dafish)
395 465
  - Carsten Nielsen (phreaknerd)
396 466
  - Jay Severson
397
- - Stéphane PY (steph_py)
398 467
  - Martin Eckhardt
399 468
  - Michael Dowling (mtdowling)
400
- - BilgeXA
469
+ - Robert Queck
401 470
  - mlively
471
+ - Fabian Steiner (fabstei)
402 472
  - Thomas Chmielowiec (chmielot)
473
+ - kaywalker
403 474
  - Sebastian Ionescu
404 475
  - Simon Neidhold
405 476
  - Kevin Dew
406 477
  - James Cowgill
407
- - Nicolas Schwartz (nicoschwartz)
408 478
  - Konrad Mohrfeldt
409 479
  - Mephistofeles
410 480
  - pscheit
411
- - Jérôme Vieilledent (lolautruche)
412 481
  - Nicolas Badey (nico-b)
413 482
  - Lars Strojny
414 483
  - Bouke Haarsma
@@ -419,28 +488,33 @@ Symfony2 is the result of the work of many people who made the code better
419 488
  - Paweł Wacławczyk (pwc)
420 489
  - Thomas Bibb
421 490
  - Josef Cech
491
+ - Andrey Esaulov (andremaha)
422 492
  - hicham ELGUAROUANI (hiiimoo)
493
+ - Stefan Koopmanschap (skoop)
423 494
  - Ivan Kurnosov
424 495
  - stloyd
425
- - Martin Parsiegla (spea)
426 496
  - Chris Tickner (tickner)
427 497
  - Luis Muñoz
428 498
  - Thomas Chmielowiec
429
- - Gunther Konig
430 499
  - Oleg Zinchenko
431
- - Benjamin Grandfond (benjamin)
432 500
  - Christoph Nissle (derstoffel)
433
- - Stefano Sala (stefano.sala)
501
+ - Xavier HAUSHERR
434 502
  - Benjamin Zikarsky
435 503
  - Romain Dorgueil
504
+ - Patrick Allaert
436 505
  - Grayson Koonce (breerly)
437 506
  - Andy Stanberry
438 507
  - alefranz
439
- - Loïc Chardonnet (gnusat)
508
+ - alsar
509
+ - efeen
510
+ - Bob den Otter (bopp)
511
+ - Simone Fumagalli (hpatoio)
440 512
  - Alessio Baglio (ioalessio)
441 513
  - Jérôme Macias (jeromemacias)
514
+ - Jordi Llonch (jordillonch)
442 515
  - Cédric Dugat (ph3nol)
443 516
  - Philip Dahlstrøm (phidah)
517
+ - Robin Duval (robin-duval)
444 518
  - Artem Lopata (bumz)
445 519
  - Alexey Popkov
446 520
  - Artyom Protaskin
@@ -450,13 +524,13 @@ Symfony2 is the result of the work of many people who made the code better
450 524
  - gedrox
451 525
  - hirocaster
452 526
  - Andrey Chernykh
453
- - Alexander Miehe (engerim)
527
+ - François Pluchino
454 528
  - Jörn Lang (j.lang)
455 529
  - Jan Marek (janmarek)
456 530
  - Dan Patrick (mdpatrick)
457
- - Pierre-Yves LEBECQ (pylebecq)
458 531
  - Rares Vlaseanu (raresvla)
459
- - Denis Gorbachev (starfall)
532
+ - tante kinast (tante)
533
+ - Tugdual Saunier (tucksaun)
460 534
  - Alexander Zogheb
461 535
  - Florian Pfitzer
462 536
  - Linnik Sergey
@@ -473,15 +547,15 @@ Symfony2 is the result of the work of many people who made the code better
473 547
  - Robert Campbell
474 548
  - Matt Lehner
475 549
  - cyrillej
550
+ - Haritz
476 551
  - Grummfy
477
- - Eduardo Gulias
478
- - Filipe Guerra
479 552
  - Rowan Manning
480 553
  - David Windell
481 554
  - Gabriel Birke
482 555
  - Alan Chen
483 556
  - Maerlyn
484 557
  - Even André Fiskvik
558
+ - Rafał Wrzeszcz
485 559
  - Frédéric Hardy
486 560
  - Lenar Lõhmus
487 561
  - Cristian Gonzalez
@@ -497,13 +571,16 @@ Symfony2 is the result of the work of many people who made the code better
497 571
  - Kévin Dunglas (dunglas)
498 572
  - Vincent Composieux (eko)
499 573
  - Osman Üngür (import)
574
+ - Jorge Martin (jorgemartind)
500 575
  - giulio de donato (liuggio)
501 576
  - Matthew Davis (mdavis1982)
502 577
  - Matthias Pigulla (mpdude)
578
+ - Pablo Monterde Perez (plebs)
503 579
  - Jimmy Leger (redpanda)
504 580
  - Baptiste Clavié (talus)
505 581
  - Yanick Witschi
506 582
  - Till Klampaeckel
583
+ - srsbiz
507 584
  - Nicolas A. Bérard-Nault
508 585
  - Saem Ghani
509 586
  - Alexey Popkov
@@ -511,6 +588,7 @@ Symfony2 is the result of the work of many people who made the code better
511 588
  - Elnur Abdurrakhimov
512 589
  - Arnaud Buathier (arnapou)
513 590
  - chesteroni (chesteroni)
591
+ - Simon CONSTANS (kosssi)
514 592
  - Mauricio Lopez (sanctuary29)
515 593
  - Wotre
516 594
  - goohib
@@ -518,19 +596,21 @@ Symfony2 is the result of the work of many people who made the code better
518 596
  - Lars Vierbergen
519 597
  - Sylvain Lorinet
520 598
  - jc
599
+ - BenjaminBeck
521 600
  - Vladimir Sazhin
522 601
  - Vyacheslav Slinko
523 602
  - Johannes
524 603
  - Jörg Rühl
525 604
  - patrick-mcdougle
605
+ - andreabreu98
526 606
  - Michael Schneider
527 607
  - Jerome Tamarelle
528 608
  - xanido
529 609
  - Kaipi Yann
530 610
  - Samuel Laulhau
531 611
  - Oleg Stepura
532
- - Sam Williams
533 612
  - James Michael DuPont
613
+ - Tammy D
534 614
  - Ondrej Slinták
535 615
  - vlechemin
536 616
  - Skorney
@@ -539,7 +619,7 @@ Symfony2 is the result of the work of many people who made the code better
539 619
  - djama
540 620
  - Sébastien HOUZE
541 621
  - Abdulkadir N. A.
542
- - Moritz Borgmann
622
+ - Sema
543 623
  - Thorsten Hallwas
544 624
  - Vincent
545 625
  - Chris Smith
@@ -547,6 +627,9 @@ Symfony2 is the result of the work of many people who made the code better
547 627
  - David Soria Parra
548 628
  - Sergiy Sokolenko
549 629
  - Penny Leach
630
+ - Gábor Fási
631
+ - oscartv
632
+ - Philipp Rieber
550 633
  - DanSync
551 634
  - Peter Zwosta
552 635
  - parhs
@@ -555,6 +638,7 @@ Symfony2 is the result of the work of many people who made the code better
555 638
  - dorkitude
556 639
  - tirnanog06
557 640
  - Besnik Br
641
+ - Alex Olmos (alexolmos)
558 642
  - Juan Ases García (ases)
559 643
  - Bernd Matzner (bmatzner)
560 644
  - Chris Sedlmayr (catchamonkey)
@@ -566,25 +650,30 @@ Symfony2 is the result of the work of many people who made the code better
566 650
  - Daniel Londero (dlondero)
567 651
  - Adel ELHAIBA (eadel)
568 652
  - Fabien Dosse (fabd)
569
- - Jonas Flodén (flojon)
570 653
  - Yohan Giarelli (frequence-web)
571 654
  - Massimiliano Arione (garak)
572 655
  - Vladislav Krupenkin (ideea)
656
+ - Emanuele Gaspari (inmarelibero)
573 657
  - joris de wit (jdewit)
574 658
  - Jérémy CROMBEZ (jeremy)
659
+ - Jorge Maiden (jorgemaiden)
575 660
  - Justin Rainbow (jrainbow)
576 661
  - Sébastien Armand (khepin)
577 662
  - Krzysztof Menżyk (krymen)
663
+ - Martin Ledgard (le6o)
578 664
  - Matthieu Moquet (mattketmo)
579 665
  - Matt Drollette (mdrollette)
580 666
  - Florent CAILHOL (ooflorent)
581 667
  - Petr Jaroš (petajaros)
668
+ - Philipp Hoffmann (philipphoffmann)
669
+ - Alex Carol (picard89)
582 670
  - Daniel Perez Pinazo (pitiflautico)
583
- - ragtek (ragtek)
584 671
  - Ruud Kamphuis (ruudk)
585 672
  - Sebastian Busch (sebu)
673
+ - Simon Terrien (sterrien)
586 674
  - Markus Tacker (tacker)
587 675
  - Tyler Stroud (tystr)
676
+ - Víctor Mateo (victormateo)
588 677
  - Eugene Babushkin (warl)
589 678
  - Florent Cailhol
590 679
  - craigmarvelley

+ 3 - 3
vendor/symfony/README.md Datei anzeigen

@@ -1,8 +1,6 @@
1 1
 README
2 2
 ======
3 3
 
4
-[![Build Status](https://secure.travis-ci.org/symfony/symfony.png?branch=2.0)](http://travis-ci.org/symfony/symfony)
5
-
6 4
 What is Symfony2?
7 5
 -----------------
8 6
 
@@ -37,10 +35,12 @@ Contributing
37 35
 
38 36
 Symfony2 is an open source, community-driven project. If you'd like to contribute,
39 37
 please read the [Contributing Code][4] part of the documentation. If you're submitting
40
-a pull request, please follow the guidelines in the [Submitting a Patch][5] section.
38
+a pull request, please follow the guidelines in the [Submitting a Patch][5] section
39
+and use [Pull Request Template][6].
41 40
 
42 41
 [1]: http://symfony.com/download
43 42
 [2]: http://symfony.com/get_started
44 43
 [3]: http://symfony.com/doc/current/
45 44
 [4]: http://symfony.com/doc/current/contributing/code/index.html
46 45
 [5]: http://symfony.com/doc/current/contributing/code/patches.html#check-list
46
+[6]: http://symfony.com/doc/current/contributing/code/patches.html#make-a-pull-request

+ 4 - 0
vendor/symfony/phpunit.xml.dist Datei anzeigen

@@ -11,6 +11,10 @@
11 11
          syntaxCheck="false"
12 12
          bootstrap="tests/bootstrap.php"
13 13
 >
14
+    <php>
15
+        <ini name="intl.default_locale" value="en"/>
16
+        <ini name="intl.error_level" value="0"/>
17
+    </php>
14 18
     <testsuites>
15 19
         <testsuite name="Symfony Test Suite">
16 20
             <directory>./tests/Symfony/</directory>

+ 1 - 1
vendor/symfony/src/Symfony/Bridge/Monolog/composer.json Datei anzeigen

@@ -18,7 +18,7 @@
18 18
     "require": {
19 19
         "php": ">=5.3.2",
20 20
         "symfony/http-kernel": "self.version",
21
-        "monolog/monolog": "1.*"
21
+        "monolog/monolog": ">=1.0,<1.3-dev"
22 22
     },
23 23
     "autoload": {
24 24
         "psr-0": { "Symfony\\Bridge\\Monolog": "" }

+ 0 - 1
vendor/symfony/src/Symfony/Bridge/Twig/Extension/FormExtension.php Datei anzeigen

@@ -212,7 +212,6 @@ class FormExtension extends \Twig_Extension
212 212
     {
213 213
         $mainTemplate = in_array($section, array('widget', 'row'));
214 214
         if ($mainTemplate && $view->isRendered()) {
215
-
216 215
                 return '';
217 216
         }
218 217
 

+ 5 - 5
vendor/symfony/src/Symfony/Bridge/Twig/Extension/YamlExtension.php Datei anzeigen

@@ -31,7 +31,7 @@ class YamlExtension extends \Twig_Extension
31 31
         );
32 32
     }
33 33
 
34
-    public function encode($input, $inline = 0)
34
+    public function encode($input, $inline = 0, $dumpObjects = false)
35 35
     {
36 36
         static $dumper;
37 37
 
@@ -39,20 +39,20 @@ class YamlExtension extends \Twig_Extension
39 39
             $dumper = new YamlDumper();
40 40
         }
41 41
 
42
-        return $dumper->dump($input, $inline);
42
+        return $dumper->dump($input, $inline, false, $dumpObjects);
43 43
     }
44 44
 
45
-    public function dump($value)
45
+    public function dump($value, $inline = 0, $dumpObjects = false)
46 46
     {
47 47
         if (is_resource($value)) {
48 48
             return '%Resource%';
49 49
         }
50 50
 
51 51
         if (is_array($value) || is_object($value)) {
52
-            return '%'.gettype($value).'% '.$this->encode($value);
52
+            return '%'.gettype($value).'% '.$this->encode($value, $inline, $dumpObjects);
53 53
         }
54 54
 
55
-        return $this->encode($value);
55
+        return $this->encode($value, $inline, $dumpObjects);
56 56
     }
57 57
 
58 58
     /**

+ 29 - 0
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/InternalController.php Datei anzeigen

@@ -31,6 +31,35 @@ class InternalController extends ContainerAware
31 31
      */
32 32
     public function indexAction($path, $controller)
33 33
     {
34
+        // safeguard
35
+        if (!is_string($controller)) {
36
+            throw new \RuntimeException('A Controller must be a string.');
37
+        }
38
+
39
+        // check that the controller looks like a controller
40
+        if (false === strpos($controller, '::')) {
41
+            $count = substr_count($controller, ':');
42
+            if (2 == $count) {
43
+                // the convention already enforces the Controller suffix
44
+            } elseif (1 == $count) {
45
+                // controller in the service:method notation
46
+                list($service, $method) = explode(':', $controller, 2);
47
+                $class = get_class($this->container->get($service));
48
+
49
+                if (!preg_match('/Controller$/', $class)) {
50
+                    throw new \RuntimeException('A Controller class name must end with Controller.');
51
+                }
52
+            } else {
53
+                throw new \LogicException('Unable to parse the Controller name.');
54
+            }
55
+        } else {
56
+            list($class, $method) = explode('::', $controller, 2);
57
+
58
+            if (!preg_match('/Controller$/', $class)) {
59
+                throw new \RuntimeException('A Controller class name must end with Controller.');
60
+            }
61
+        }
62
+
34 63
         $request = $this->container->get('request');
35 64
         $attributes = $request->attributes;
36 65
 

+ 13 - 1
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php Datei anzeigen

@@ -47,7 +47,19 @@ class Configuration implements ConfigurationInterface
47 47
         $rootNode
48 48
             ->children()
49 49
                 ->scalarNode('charset')->end()
50
-                ->scalarNode('trust_proxy_headers')->defaultFalse()->end()
50
+                ->arrayNode('trusted_proxies')
51
+                    ->beforeNormalization()
52
+                        ->ifTrue(function($v) { return !is_array($v) && !is_null($v); })
53
+                        ->then(function($v) { return is_bool($v) ? array() : preg_split('/\s*,\s*/', $v); })
54
+                    ->end()
55
+                    ->prototype('scalar')
56
+                        ->validate()
57
+                            ->ifTrue(function($v) { return !empty($v) && !filter_var($v, FILTER_VALIDATE_IP); })
58
+                            ->thenInvalid('Invalid proxy IP "%s"')
59
+                        ->end()
60
+                    ->end()
61
+                ->end()
62
+                ->scalarNode('trust_proxy_headers')->defaultFalse()->end() // @deprecated, to be removed in 2.3
51 63
                 ->scalarNode('secret')->isRequired()->end()
52 64
                 ->scalarNode('ide')->defaultNull()->end()
53 65
                 ->booleanNode('test')->end()

+ 3 - 0
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php Datei anzeigen

@@ -62,6 +62,9 @@ class FrameworkExtension extends Extension
62 62
         }
63 63
         $container->setParameter('kernel.secret', $config['secret']);
64 64
 
65
+        $container->setParameter('kernel.trusted_proxies', $config['trusted_proxies']);
66
+
67
+        // @deprecated, to be removed in 2.3
65 68
         $container->setParameter('kernel.trust_proxy_headers', $config['trust_proxy_headers']);
66 69
 
67 70
         if (!empty($config['test'])) {

+ 4 - 1
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/EventListener/RouterListener.php Datei anzeigen

@@ -70,7 +70,10 @@ class RouterListener
70 70
 
71 71
         // add attributes based on the path info (routing)
72 72
         try {
73
-            $parameters = $this->router->match($request->getPathInfo());
73
+            // The path is returned in decoded form from the request, so we need to
74
+            // encode it again as the router applies its own decoding. This prevents
75
+            // double-decoding.
76
+            $parameters = $this->router->match(urlencode($request->getPathInfo()));
74 77
 
75 78
             if (null !== $this->logger) {
76 79
                 $this->logger->info(sprintf('Matched route "%s" (parameters: %s)', $parameters['_route'], $this->parametersToString($parameters)));

+ 1 - 1
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/EventListener/SessionListener.php Datei anzeigen

@@ -17,7 +17,7 @@ use Symfony\Component\HttpKernel\HttpKernelInterface;
17 17
 use Symfony\Component\HttpKernel\Event\GetResponseEvent;
18 18
 
19 19
 /**
20
- * Sets the session on the request.
20
+ * Sets the session in the request.
21 21
  *
22 22
  * This will also start the session if it was already started during a previous
23 23
  * request.

+ 4 - 2
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php Datei anzeigen

@@ -37,8 +37,10 @@ class FrameworkBundle extends Bundle
37 37
 {
38 38
     public function boot()
39 39
     {
40
-        if ($this->container->getParameter('kernel.trust_proxy_headers')) {
41
-            Request::trustProxyData();
40
+        if ($trustedProxies = $this->container->getParameter('kernel.trusted_proxies')) {
41
+            Request::setTrustedProxies($trustedProxies);
42
+        } elseif ($this->container->getParameter('kernel.trust_proxy_headers')) {
43
+            Request::trustProxyData(); // @deprecated, to be removed in 2.3
42 44
         }
43 45
     }
44 46
 

+ 17 - 4
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/HttpKernel.php Datei anzeigen

@@ -113,11 +113,19 @@ class HttpKernel extends BaseHttpKernel
113 113
         }
114 114
 
115 115
         if ($this->esiSupport && $options['standalone']) {
116
-            $uri = $this->generateInternalUri($controller, $options['attributes'], $options['query']);
116
+            if (0 === strpos($controller, 'http://') || 0 === strpos($controller, 'https://')) {
117
+                $uri = $controller;
118
+            } else {
119
+                $uri = $this->generateInternalUri($controller, $options['attributes'], $options['query']);
120
+            }
117 121
 
118 122
             $alt = '';
119 123
             if ($options['alt']) {
120
-                $alt = $this->generateInternalUri($options['alt'][0], isset($options['alt'][1]) ? $options['alt'][1] : array(), isset($options['alt'][2]) ? $options['alt'][2] : array());
124
+                if (is_string($options['alt']) && (0 === strpos($options['alt'], 'http://') || 0 === strpos($options['alt'], 'https://'))) {
125
+                    $alt = $options['alt'];
126
+                } else {
127
+                    $alt = $this->generateInternalUri($options['alt'][0], isset($options['alt'][1]) ? $options['alt'][1] : array(), isset($options['alt'][2]) ? $options['alt'][2] : array());
128
+                }
121 129
             }
122 130
 
123 131
             return $this->container->get('esi')->renderIncludeTag($uri, $alt, $options['ignore_errors'], $options['comment']);
@@ -125,8 +133,13 @@ class HttpKernel extends BaseHttpKernel
125 133
 
126 134
         $request = $this->container->get('request');
127 135
 
128
-        // controller or URI?
129
-        if (0 === strpos($controller, '/')) {
136
+        // controller or URI or path?
137
+        if (0 === strpos($controller, 'http://') || 0 === strpos($controller, 'https://')) {
138
+            $subRequest = Request::create($controller, 'get', array(), $request->cookies->all(), array(), $request->server->all());
139
+            if ($session = $request->getSession()) {
140
+                $subRequest->setSession($session);
141
+            }
142
+        } elseif (0 === strpos($controller, '/')) {
130 143
             $subRequest = Request::create($request->getUriForPath($controller), 'get', array(), $request->cookies->all(), array(), $request->server->all());
131 144
             if ($session = $request->getSession()) {
132 145
                 $subRequest->setSession($session);

+ 2 - 2
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/esi.xml Datei anzeigen

@@ -13,8 +13,8 @@
13 13
         <service id="esi" class="%esi.class%" />
14 14
 
15 15
         <service id="esi_listener" class="%esi_listener.class%">
16
-          <tag name="kernel.event_listener" event="kernel.response" method="onKernelResponse" />
17
-          <argument type="service" id="esi" on-invalid="ignore" />
16
+            <tag name="kernel.event_listener" event="kernel.response" method="onKernelResponse" />
17
+            <argument type="service" id="esi" on-invalid="ignore" />
18 18
         </service>
19 19
     </services>
20 20
 </container>

+ 1 - 0
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd Datei anzeigen

@@ -23,6 +23,7 @@
23 23
 
24 24
         <xsd:attribute name="charset" type="xsd:string" />
25 25
         <xsd:attribute name="trust-proxy-headers" type="xsd:string" />
26
+        <xsd:attribute name="trusted-proxies" type="xsd:string" />
26 27
         <xsd:attribute name="ide" type="xsd:string" />
27 28
         <xsd:attribute name="secret" type="xsd:string" />
28 29
         <xsd:attribute name="test" type="xsd:boolean" />

+ 0 - 1
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/attributes.html.php Datei anzeigen

@@ -5,4 +5,3 @@ name="<?php echo $view->escape($full_name) ?>"
5 5
 <?php if ($max_length): ?>maxlength="<?php echo $view->escape($max_length) ?>" <?php endif ?>
6 6
 <?php if ($pattern): ?>pattern="<?php echo $view->escape($pattern) ?>" <?php endif ?>
7 7
 <?php foreach ($attr as $k => $v) { printf('%s="%s" ', $view->escape($k), $view->escape($v)); } ?>
8
-

+ 0 - 1
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_widget.html.php Datei anzeigen

@@ -2,4 +2,3 @@
2 2
     <?php echo $view['form']->renderBlock('field_rows') ?>
3 3
     <?php echo $view['form']->rest($form) ?>
4 4
 </div>
5
-

+ 9 - 0
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/CodeHelper.php Datei anzeigen

@@ -143,6 +143,15 @@ class CodeHelper extends Helper
143 143
     public function fileExcerpt($file, $line)
144 144
     {
145 145
         if (is_readable($file)) {
146
+            if (extension_loaded('fileinfo')) {
147
+                $finfo = new \Finfo();
148
+
149
+                // Check if the file is an application/octet-stream (eg. Phar file) because hightlight_file cannot parse these files
150
+                if ('application/octet-stream' === $finfo->file($file, FILEINFO_MIME_TYPE)) {
151
+                    return;
152
+                }
153
+            }
154
+
146 155
             $code = highlight_file($file, true);
147 156
             // remove main code/span tags
148 157
             $code = preg_replace('#^<code.*?>\s*<span.*?>(.*)</span>\s*</code>#s', '\\1', $code);

+ 0 - 1
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/FormHelper.php Datei anzeigen

@@ -193,7 +193,6 @@ class FormHelper extends Helper
193 193
     {
194 194
         $mainTemplate = in_array($section, array('row', 'widget'));
195 195
         if ($mainTemplate && $view->isRendered()) {
196
-
197 196
                 return '';
198 197
         }
199 198
 

+ 52 - 0
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/InternalControllerTest.php Datei anzeigen

@@ -0,0 +1,52 @@
1
+<?php
2
+
3
+/*
4
+ * This file is part of the Symfony package.
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
+
12
+namespace Symfony\Bundle\FrameworkBundle\Tests\Controller;
13
+
14
+use Symfony\Bundle\FrameworkBundle\Controller\InternalController;
15
+use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
16
+use Symfony\Component\HttpFoundation\Request;
17
+
18
+class InternalControllerTest extends TestCase
19
+{
20
+    /**
21
+     * @expectedException        \RuntimeException
22
+     * @expectedExceptionMessage A Controller class name must end with Controller.
23
+     */
24
+    public function testWithAClassMethodController()
25
+    {
26
+        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
27
+
28
+        $controller = new InternalController();
29
+        $controller->setContainer($container);
30
+
31
+        $controller->indexAction('/', 'Symfony\Component\HttpFoundation\Request::getPathInfo');
32
+    }
33
+
34
+    /**
35
+     * @expectedException        \RuntimeException
36
+     * @expectedExceptionMessage A Controller class name must end with Controller.
37
+     */
38
+    public function testWithAServiceController()
39
+    {
40
+        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
41
+        $container
42
+            ->expects($this->once())
43
+            ->method('get')
44
+            ->will($this->returnValue(new Request()))
45
+        ;
46
+
47
+        $controller = new InternalController();
48
+        $controller->setContainer($container);
49
+
50
+        $controller->indexAction('/', 'service:method');
51
+    }
52
+}

+ 81 - 0
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php Datei anzeigen

@@ -0,0 +1,81 @@
1
+<?php
2
+
3
+/*
4
+ * This file is part of the Symfony package.
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
+
12
+namespace Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection;
13
+
14
+use Symfony\Bundle\FrameworkBundle\DependencyInjection\Configuration;
15
+use Symfony\Component\Config\Definition\Processor;
16
+
17
+class ConfigurationTest extends \PHPUnit_Framework_TestCase
18
+{
19
+    /**
20
+     * @dataProvider getTestConfigTreeData
21
+     */
22
+    public function testConfigTree($options, $results)
23
+    {
24
+        $processor = new Processor();
25
+        $configuration = new Configuration(array());
26
+        $config = $processor->processConfiguration($configuration, array($options));
27
+
28
+        $this->assertEquals($results, $config);
29
+    }
30
+
31
+    public function getTestConfigTreeData()
32
+    {
33
+        return array(
34
+            array(array('secret' => 's3cr3t'), array('secret' => 's3cr3t', 'trusted_proxies' => array(), 'trust_proxy_headers' => false, 'ide' => NULL, 'annotations' => array('cache' => 'file', 'file_cache_dir' => '%kernel.cache_dir%/annotations', 'debug' => false))),
35
+        );
36
+    }
37
+
38
+    /**
39
+     * @dataProvider getTestValidTrustedProxiesData
40
+     */
41
+    public function testValidTrustedProxies($options, $results)
42
+    {
43
+        $processor = new Processor();
44
+        $configuration = new Configuration(array());
45
+        $config = $processor->processConfiguration($configuration, array($options));
46
+
47
+        $this->assertEquals($results, $config);
48
+    }
49
+
50
+    public function getTestValidTrustedProxiesData()
51
+    {
52
+        return array(
53
+            array(array('secret' => 's3cr3t', 'trusted_proxies' => array('127.0.0.1')), array('secret' => 's3cr3t', 'trusted_proxies' => array('127.0.0.1'), 'trust_proxy_headers' => false, 'ide' => NULL, 'annotations' => array('cache' => 'file', 'file_cache_dir' => '%kernel.cache_dir%/annotations', 'debug' => false))),
54
+            array(array('secret' => 's3cr3t', 'trusted_proxies' => array('::1')), array('secret' => 's3cr3t', 'trusted_proxies' => array('::1'), 'trust_proxy_headers' => false, 'ide' => NULL, 'annotations' => array('cache' => 'file', 'file_cache_dir' => '%kernel.cache_dir%/annotations', 'debug' => false))),
55
+            array(array('secret' => 's3cr3t', 'trusted_proxies' => array('127.0.0.1', '::1')), array('secret' => 's3cr3t', 'trusted_proxies' => array('127.0.0.1', '::1'), 'trust_proxy_headers' => false, 'ide' => NULL, 'annotations' => array('cache' => 'file', 'file_cache_dir' => '%kernel.cache_dir%/annotations', 'debug' => false))),
56
+            array(array('secret' => 's3cr3t', 'trusted_proxies' => null), array('secret' => 's3cr3t', 'trusted_proxies' => array(), 'trust_proxy_headers' => false, 'ide' => NULL, 'annotations' => array('cache' => 'file', 'file_cache_dir' => '%kernel.cache_dir%/annotations', 'debug' => false))),
57
+            array(array('secret' => 's3cr3t', 'trusted_proxies' => false), array('secret' => 's3cr3t', 'trusted_proxies' => array(), 'trust_proxy_headers' => false, 'ide' => NULL, 'annotations' => array('cache' => 'file', 'file_cache_dir' => '%kernel.cache_dir%/annotations', 'debug' => false))),
58
+            array(array('secret' => 's3cr3t', 'trusted_proxies' => array()), array('secret' => 's3cr3t', 'trusted_proxies' => array(), 'trust_proxy_headers' => false, 'ide' => NULL, 'annotations' => array('cache' => 'file', 'file_cache_dir' => '%kernel.cache_dir%/annotations', 'debug' => false))),
59
+        );
60
+    }
61
+
62
+    /**
63
+     * @expectedException Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
64
+     */
65
+    public function testInvalidTypeTrustedProxies()
66
+    {
67
+        $processor = new Processor();
68
+        $configuration = new Configuration(array());
69
+        $config = $processor->processConfiguration($configuration, array(array('secret' => 's3cr3t', 'trusted_proxies' => 'Not an IP address')));
70
+    }
71
+
72
+    /**
73
+     * @expectedException Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
74
+     */
75
+    public function testInvalidValueTrustedProxies()
76
+    {
77
+        $processor = new Processor();
78
+        $configuration = new Configuration(array());
79
+        $config = $processor->processConfiguration($configuration, array(array('secret' => 's3cr3t', 'trusted_proxies' => array('Not an IP address'))));
80
+    }
81
+}

+ 2 - 0
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/full.php Datei anzeigen

@@ -3,6 +3,8 @@
3 3
 $container->loadFromExtension('framework', array(
4 4
     'secret' => 's3cr3t',
5 5
     'form' => null,
6
+    'trust_proxy_headers' => true,
7
+    'trusted_proxies' => array('127.0.0.1', '10.0.0.1'),
6 8
     'csrf_protection' => array(
7 9
         'enabled'    => true,
8 10
         'field_name' => '_csrf',

+ 1 - 1
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/full.xml Datei anzeigen

@@ -6,7 +6,7 @@
6 6
     xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
7 7
                         http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
8 8
 
9
-    <framework:config secret="s3cr3t" ide="file%%link%%format">
9
+    <framework:config secret="s3cr3t" ide="file%%link%%format" trust-proxy-headers="true" trusted-proxies="127.0.0.1, 10.0.0.1">
10 10
         <framework:csrf-protection enabled="true" field-name="_csrf" />
11 11
         <framework:form />
12 12
         <framework:esi enabled="true" />

+ 2 - 0
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/full.yml Datei anzeigen

@@ -1,6 +1,8 @@
1 1
 framework:
2 2
     secret: s3cr3t
3 3
     form: ~
4
+    trust_proxy_headers: true
5
+    trusted_proxies: ['127.0.0.1', '10.0.0.1']
4 6
     csrf_protection:
5 7
         enabled:    true
6 8
         field_name: _csrf

+ 8 - 0
vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php Datei anzeigen

@@ -33,6 +33,14 @@ abstract class FrameworkExtensionTest extends TestCase
33 33
         $this->assertEquals('s3cr3t', $container->getParameterBag()->resolveValue($container->findDefinition('form.csrf_provider')->getArgument(1)));
34 34
     }
35 35
 
36
+    public function testProxies()
37
+    {
38
+        $container = $this->createContainerFromFile('full');
39
+
40
+        $this->assertTrue($container->getParameter('kernel.trust_proxy_headers'));
41
+        $this->assertEquals(array('127.0.0.1', '10.0.0.1'), $container->getParameter('kernel.trusted_proxies'));
42
+    }
43
+
36 44
     public function testEsi()
37 45
     {
38 46
         $container = $this->createContainerFromFile('full');

+ 4 - 1
vendor/symfony/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml Datei anzeigen

@@ -23,6 +23,10 @@
23 23
         <service id="twig" class="%twig.class%">
24 24
             <argument type="service" id="twig.loader" />
25 25
             <argument>%twig.options%</argument>
26
+            <call method="addGlobal">
27
+                <argument>app</argument>
28
+                <argument type="service" id="templating.globals" />
29
+            </call>
26 30
         </service>
27 31
 
28 32
         <service id="twig.cache_warmer" class="%twig.cache_warmer.class%" public="false">
@@ -39,7 +43,6 @@
39 43
         <service id="templating.engine.twig" class="%templating.engine.twig.class%" public="false">
40 44
             <argument type="service" id="twig" />
41 45
             <argument type="service" id="templating.name_parser" />
42
-            <argument type="service" id="templating.globals" />
43 46
         </service>
44 47
 
45 48
         <service id="twig.extension.trans" class="%twig.extension.trans.class%" public="false">

+ 2 - 2
vendor/symfony/src/Symfony/Bundle/TwigBundle/Resources/views/Exception/trace.html.twig Datei anzeigen

@@ -12,8 +12,8 @@
12 12
     in {{ trace.file|format_file(trace.line) }}&nbsp;
13 13
     {% spaceless %}
14 14
     <a href="#" onclick="toggle('trace_{{ prefix ~ '_' ~ i }}'); switchIcons('icon_{{ prefix ~ '_' ~ i }}_open', 'icon_{{ prefix ~ '_' ~ i }}_close'); return false;">
15
-        <img class="toggle" id="icon_{{ prefix ~ '_' ~ i }}_close" alt="-" src="{{ asset('bundles/framework/images/blue_picto_less.gif') }}" style="visibility: {{ 0 == i ? 'display' : 'hidden' }}" />
16
-        <img class="toggle" id="icon_{{ prefix ~ '_' ~ i }}_open" alt="+" src="{{ asset('bundles/framework/images/blue_picto_more.gif') }}" style="visibility: {{ 0 == i ? 'hidden' : 'display' }}; margin-left: -18px" />
15
+        <img class="toggle" id="icon_{{ prefix ~ '_' ~ i }}_close" alt="-" src="{{ asset('bundles/framework/images/blue_picto_less.gif') }}" style="visibility: {{ 0 == i ? 'visible' : 'hidden' }}" />
16
+        <img class="toggle" id="icon_{{ prefix ~ '_' ~ i }}_open" alt="+" src="{{ asset('bundles/framework/images/blue_picto_more.gif') }}" style="visibility: {{ 0 == i ? 'hidden' : 'visible' }}; margin-left: -18px" />
17 17
     </a>
18 18
     {% endspaceless %}
19 19
     <div id="trace_{{ prefix ~ '_' ~ i }}" style="display: {{ 0 == i ? 'block' : 'none' }}" class="trace">

+ 2 - 2
vendor/symfony/src/Symfony/Bundle/TwigBundle/Resources/views/Exception/traces.html.twig Datei anzeigen

@@ -5,8 +5,8 @@
5 5
             {{ exception.class|abbr_class }}: {{ exception.message|e|replace({"\n": '<br />'})|format_file_from_text }}&nbsp;
6 6
             {% spaceless %}
7 7
             <a href="#" onclick="toggle('traces_{{ position }}', 'traces'); switchIcons('icon_traces_{{ position }}_open', 'icon_traces_{{ position }}_close'); return false;">
8
-                <img class="toggle" id="icon_traces_{{ position }}_close" alt="-" src="{{ asset('bundles/framework/images/blue_picto_less.gif') }}" style="visibility: {{ 0 == count ? 'display' : 'hidden' }}" />
9
-                <img class="toggle" id="icon_traces_{{ position }}_open" alt="+" src="{{ asset('bundles/framework/images/blue_picto_more.gif') }}" style="visibility: {{ 0 == count ? 'hidden' : 'display' }}; margin-left: -18px" />
8
+                <img class="toggle" id="icon_traces_{{ position }}_close" alt="-" src="{{ asset('bundles/framework/images/blue_picto_less.gif') }}" style="visibility: {{ 0 == count ? 'visible' : 'hidden' }}" />
9
+                <img class="toggle" id="icon_traces_{{ position }}_open" alt="+" src="{{ asset('bundles/framework/images/blue_picto_more.gif') }}" style="visibility: {{ 0 == count ? 'hidden' : 'visible' }}; margin-left: -18px" />
10 10
             </a>
11 11
             {% endspaceless %}
12 12
         </h2>

+ 9 - 7
vendor/symfony/src/Symfony/Bundle/TwigBundle/Tests/DependencyInjection/TwigExtensionTest.php Datei anzeigen

@@ -59,15 +59,17 @@ class TwigExtensionTest extends TestCase
59 59
 
60 60
         // Globals
61 61
         $calls = $container->getDefinition('twig')->getMethodCalls();
62
-        $this->assertEquals('foo', $calls[0][1][0], '->load() registers services as Twig globals');
63
-        $this->assertEquals(new Reference('bar'), $calls[0][1][1], '->load() registers services as Twig globals');
64
-        $this->assertEquals('pi', $calls[1][1][0], '->load() registers variables as Twig globals');
65
-        $this->assertEquals(3.14, $calls[1][1][1], '->load() registers variables as Twig globals');
62
+        $this->assertEquals('app', $calls[0][1][0]);
63
+        $this->assertEquals(new Reference('templating.globals'), $calls[0][1][1]);
64
+        $this->assertEquals('foo', $calls[1][1][0], '->load() registers services as Twig globals');
65
+        $this->assertEquals(new Reference('bar'), $calls[1][1][1], '->load() registers services as Twig globals');
66
+        $this->assertEquals('pi', $calls[2][1][0], '->load() registers variables as Twig globals');
67
+        $this->assertEquals(3.14, $calls[2][1][1], '->load() registers variables as Twig globals');
66 68
 
67 69
         // Yaml and Php specific configs
68 70
         if (in_array($format, array('yml', 'php'))) {
69
-            $this->assertEquals('bad', $calls[2][1][0], '->load() registers variables as Twig globals');
70
-            $this->assertEquals(array('key' => 'foo'), $calls[2][1][1], '->load() registers variables as Twig globals');
71
+            $this->assertEquals('bad', $calls[3][1][0], '->load() registers variables as Twig globals');
72
+            $this->assertEquals(array('key' => 'foo'), $calls[3][1][1], '->load() registers variables as Twig globals');
71 73
         }
72 74
 
73 75
         // Twig options
@@ -101,7 +103,7 @@ class TwigExtensionTest extends TestCase
101 103
 
102 104
         $calls = $container->getDefinition('twig')->getMethodCalls();
103 105
 
104
-        foreach ($calls as $call) {
106
+        foreach (array_slice($calls, 1) as $call) {
105 107
             list($name, $value) = each($globals);
106 108
             $this->assertEquals($name, $call[1][0]);
107 109
             $this->assertSame($value, $call[1][1]);

+ 0 - 92
vendor/symfony/src/Symfony/Bundle/TwigBundle/Tests/TwigEngineTest.php Datei anzeigen

@@ -1,92 +0,0 @@
1
-<?php
2
-
3
-/*
4
- * This file is part of the Symfony package.
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
-
12
-namespace Symfony\Bundle\TwigBundle\Tests;
13
-
14
-use Symfony\Bundle\TwigBundle\TwigEngine;
15
-use Symfony\Component\DependencyInjection\Container;
16
-use Symfony\Component\HttpFoundation\Request;
17
-use Symfony\Component\HttpFoundation\Session;
18
-use Symfony\Component\HttpFoundation\SessionStorage\ArraySessionStorage;
19
-use Symfony\Component\Templating\TemplateNameParser;
20
-use Symfony\Bundle\FrameworkBundle\Templating\GlobalVariables;
21
-
22
-class TwigEngineTest extends TestCase
23
-{
24
-    public function testEvaluateAddsAppGlobal()
25
-    {
26
-        $environment = $this->getTwigEnvironment();
27
-        $container = $this->getContainer();
28
-        $engine = new TwigEngine($environment, new TemplateNameParser(), $app = new GlobalVariables($container));
29
-
30
-        $template = $this->getMock('\Twig_TemplateInterface');
31
-
32
-        $environment->expects($this->once())
33
-            ->method('loadTemplate')
34
-            ->will($this->returnValue($template));
35
-
36
-        $engine->render('name');
37
-
38
-        $request = $container->get('request');
39
-        $globals = $environment->getGlobals();
40
-        $this->assertSame($app, $globals['app']);
41
-    }
42
-
43
-    public function testEvaluateWithoutAvailableRequest()
44
-    {
45
-        $environment = $this->getTwigEnvironment();
46
-        $container = new Container();
47
-        $engine = new TwigEngine($environment, new TemplateNameParser(), new GlobalVariables($container));
48
-
49
-        $template = $this->getMock('\Twig_TemplateInterface');
50
-
51
-        $environment->expects($this->once())
52
-            ->method('loadTemplate')
53
-            ->will($this->returnValue($template));
54
-
55
-        $container->set('request', null);
56
-
57
-        $engine->render('name');
58
-
59
-        $globals = $environment->getGlobals();
60
-        $this->assertEmpty($globals['app']->getRequest());
61
-    }
62
-
63
-    /**
64
-     * Creates a Container with a Session-containing Request service.
65
-     *
66
-     * @return Container
67
-     */
68
-    protected function getContainer()
69
-    {
70
-        $container = new Container();
71
-        $request = new Request();
72
-        $session = new Session(new ArraySessionStorage());
73
-
74
-        $request->setSession($session);
75
-        $container->set('request', $request);
76
-
77
-        return $container;
78
-    }
79
-
80
-    /**
81
-     * Creates a mock Twig_Environment object.
82
-     *
83
-     * @return \Twig_Environment
84
-     */
85
-    protected function getTwigEnvironment()
86
-    {
87
-        return $this
88
-            ->getMockBuilder('\Twig_Environment')
89
-            ->setMethods(array('loadTemplate'))
90
-            ->getMock();
91
-    }
92
-}

+ 1 - 7
vendor/symfony/src/Symfony/Bundle/TwigBundle/TwigEngine.php Datei anzeigen

@@ -12,7 +12,6 @@
12 12
 namespace Symfony\Bundle\TwigBundle;
13 13
 
14 14
 use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface;
15
-use Symfony\Bundle\FrameworkBundle\Templating\GlobalVariables;
16 15
 use Symfony\Component\Templating\TemplateNameParserInterface;
17 16
 use Symfony\Component\HttpFoundation\Response;
18 17
 
@@ -31,16 +30,11 @@ class TwigEngine implements EngineInterface
31 30
      *
32 31
      * @param \Twig_Environment           $environment A \Twig_Environment instance
33 32
      * @param TemplateNameParserInterface $parser      A TemplateNameParserInterface instance
34
-     * @param GlobalVariables|null        $globals     A GlobalVariables instance or null
35 33
      */
36
-    public function __construct(\Twig_Environment $environment, TemplateNameParserInterface $parser, GlobalVariables $globals = null)
34
+    public function __construct(\Twig_Environment $environment, TemplateNameParserInterface $parser)
37 35
     {
38 36
         $this->environment = $environment;
39 37
         $this->parser = $parser;
40
-
41
-        if (null !== $globals) {
42
-            $environment->addGlobal('app', $globals);
43
-        }
44 38
     }
45 39
 
46 40
     /**

+ 3 - 1
vendor/symfony/src/Symfony/Component/Config/Loader/Loader.php Datei anzeigen

@@ -47,10 +47,12 @@ abstract class Loader implements LoaderInterface
47 47
      *
48 48
      * @param mixed  $resource A Resource
49 49
      * @param string $type     The resource type
50
+     *
51
+     * @return mixed
50 52
      */
51 53
     public function import($resource, $type = null)
52 54
     {
53
-        $this->resolve($resource)->load($resource, $type);
55
+        return $this->resolve($resource)->load($resource, $type);
54 56
     }
55 57
 
56 58
     /**

+ 4 - 2
vendor/symfony/src/Symfony/Component/Console/Input/ArgvInput.php Datei anzeigen

@@ -210,12 +210,14 @@ class ArgvInput extends Input
210 210
 
211 211
         $option = $this->definition->getOption($name);
212 212
 
213
-        if (null === $value && $option->acceptValue()) {
213
+        if (null === $value && $option->acceptValue() && count($this->parsed)) {
214 214
             // if option accepts an optional or mandatory argument
215 215
             // let's see if there is one provided
216 216
             $next = array_shift($this->parsed);
217
-            if ('-' !== $next[0]) {
217
+            if (isset($next[0]) && '-' !== $next[0]) {
218 218
                 $value = $next;
219
+            } elseif (empty($next)) {
220
+                $value = '';
219 221
             } else {
220 222
                 array_unshift($this->parsed, $next);
221 223
             }

+ 2 - 0
vendor/symfony/src/Symfony/Component/Console/Input/Input.php Datei anzeigen

@@ -37,6 +37,8 @@ abstract class Input implements InputInterface
37 37
     public function __construct(InputDefinition $definition = null)
38 38
     {
39 39
         if (null === $definition) {
40
+            $this->arguments = array();
41
+            $this->options = array();
40 42
             $this->definition = new InputDefinition();
41 43
         } else {
42 44
             $this->bind($definition);

+ 0 - 2
vendor/symfony/src/Symfony/Component/CssSelector/Node/FunctionNode.php Datei anzeigen

@@ -209,7 +209,6 @@ class FunctionNode implements NodeInterface
209 209
         $xpath->addCondition(sprintf('contains(string(.), %s)', XPathExpr::xpathLiteral($expr)));
210 210
 
211 211
         // FIXME: Currently case insensitive matching doesn't seem to be happening
212
-
213 212
         return $xpath;
214 213
     }
215 214
 
@@ -264,7 +263,6 @@ class FunctionNode implements NodeInterface
264 263
 
265 264
         if (false === strpos($s, 'n')) {
266 265
             // Just a b
267
-
268 266
             return array(0, intval((string) $s));
269 267
         }
270 268
 

+ 1 - 1
vendor/symfony/src/Symfony/Component/CssSelector/Tokenizer.php Datei anzeigen

@@ -129,7 +129,7 @@ class Tokenizer
129 129
             }
130 130
 
131 131
             $result = substr($s, $start, $next - $start);
132
-            if ('\\' === $result[strlen($result) - 1]) {
132
+            if (strlen($result) > 0 && '\\' === $result[strlen($result) - 1]) {
133 133
                 // next quote character is escaped
134 134
                 $pos = $next + 1;
135 135
                 continue;

+ 1 - 1
vendor/symfony/src/Symfony/Component/DependencyInjection/Compiler/ResolveInvalidReferencesPass.php Datei anzeigen

@@ -88,7 +88,7 @@ class ResolveInvalidReferencesPass implements CompilerPassInterface
88 88
 
89 89
                 // resolve invalid behavior
90 90
                 if ($exists && ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE !== $invalidBehavior) {
91
-                    $arguments[$k] = new Reference($id);
91
+                    $arguments[$k] = new Reference($id, ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, $argument->isStrict());
92 92
                 } elseif (!$exists && ContainerInterface::NULL_ON_INVALID_REFERENCE === $invalidBehavior) {
93 93
                     $arguments[$k] = null;
94 94
                 } elseif (!$exists && ContainerInterface::IGNORE_ON_INVALID_REFERENCE === $invalidBehavior) {

+ 49 - 48
vendor/symfony/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php Datei anzeigen

@@ -201,7 +201,7 @@ class PhpDumper extends Dumper
201 201
                 $nbOccurrences->offsetSet($definition, 1);
202 202
             } else {
203 203
                 $i = $nbOccurrences->offsetGet($definition);
204
-                $nbOccurrences->offsetSet($definition, $i+1);
204
+                $nbOccurrences->offsetSet($definition, $i + 1);
205 205
             }
206 206
         }
207 207
 
@@ -212,7 +212,7 @@ class PhpDumper extends Dumper
212 212
             $processed->offsetSet($sDefinition);
213 213
 
214 214
             $class = $this->dumpValue($sDefinition->getClass());
215
-            if ($nbOccurrences->offsetGet($sDefinition) > 1 || count($sDefinition->getMethodCalls()) > 0 || $sDefinition->getProperties() || null !== $sDefinition->getConfigurator() || false !== strpos($class, '$')) {
215
+            if ($nbOccurrences->offsetGet($sDefinition) > 1 || $sDefinition->getMethodCalls() || $sDefinition->getProperties() || null !== $sDefinition->getConfigurator() || false !== strpos($class, '$')) {
216 216
                 $name = $this->getNextVariableName();
217 217
                 $variableMap->offsetSet($sDefinition, new Variable($name));
218 218
 
@@ -227,26 +227,9 @@ class PhpDumper extends Dumper
227 227
                     throw new ServiceCircularReferenceException($id, array($id));
228 228
                 }
229 229
 
230
-                $arguments = array();
231
-                foreach ($sDefinition->getArguments() as $argument) {
232
-                    $arguments[] = $this->dumpValue($argument);
233
-                }
234
-
235
-                if (null !== $sDefinition->getFactoryMethod()) {
236
-                    if (null !== $sDefinition->getFactoryClass()) {
237
-                        $code .= sprintf("        \$%s = call_user_func(array(%s, '%s')%s);\n", $name, $this->dumpValue($sDefinition->getFactoryClass()), $sDefinition->getFactoryMethod(), count($arguments) > 0 ? ', '.implode(', ', $arguments) : '');
238
-                    } elseif (null !== $sDefinition->getFactoryService()) {
239
-                        $code .= sprintf("        \$%s = %s->%s(%s);\n", $name, $this->getServiceCall($sDefinition->getFactoryService()), $sDefinition->getFactoryMethod(), implode(', ', $arguments));
240
-                    } else {
241
-                        throw new \RuntimeException('Factory service or factory class must be defined in service definition for '.$id);
242
-                    }
243
-                } elseif (false !== strpos($class, '$')) {
244
-                    $code .= sprintf("        \$class = %s;\n        \$%s = new \$class(%s);\n", $class, $name, implode(', ', $arguments));
245
-                } else {
246
-                    $code .= sprintf("        \$%s = new \\%s(%s);\n", $name, substr(str_replace('\\\\', '\\', $class), 1, -1), implode(', ', $arguments));
247
-                }
230
+                $code .= $this->addNewInstance($id, $sDefinition, '$'.$name, ' = ');
248 231
 
249
-                if (!$this->hasReference($id, $sDefinition->getMethodCalls()) && !$this->hasReference($id, $sDefinition->getProperties())) {
232
+                if (!$this->hasReference($id, $sDefinition->getMethodCalls(), true) && !$this->hasReference($id, $sDefinition->getProperties(), true)) {
250 233
                     $code .= $this->addServiceMethodCalls(null, $sDefinition, $name);
251 234
                     $code .= $this->addServiceProperties(null, $sDefinition, $name);
252 235
                     $code .= $this->addServiceConfigurator(null, $sDefinition, $name);
@@ -295,11 +278,6 @@ class PhpDumper extends Dumper
295 278
             throw new \InvalidArgumentException(sprintf('"%s" is not a valid class name for the "%s" service.', $class, $id));
296 279
         }
297 280
 
298
-        $arguments = array();
299
-        foreach ($definition->getArguments() as $value) {
300
-            $arguments[] = $this->dumpValue($value);
301
-        }
302
-
303 281
         $simple = $this->isSimpleInstance($id, $definition);
304 282
 
305 283
         $instantiation = '';
@@ -318,19 +296,7 @@ class PhpDumper extends Dumper
318 296
             $instantiation .= ' = ';
319 297
         }
320 298
 
321
-        if (null !== $definition->getFactoryMethod()) {
322
-            if (null !== $definition->getFactoryClass()) {
323
-                $code = sprintf("        $return{$instantiation}call_user_func(array(%s, '%s')%s);\n", $this->dumpValue($definition->getFactoryClass()), $definition->getFactoryMethod(), $arguments ? ', '.implode(', ', $arguments) : '');
324
-            } elseif (null !== $definition->getFactoryService()) {
325
-                $code = sprintf("        $return{$instantiation}%s->%s(%s);\n", $this->getServiceCall($definition->getFactoryService()), $definition->getFactoryMethod(), implode(', ', $arguments));
326
-            } else {
327
-                throw new \RuntimeException('Factory method requires a factory service or factory class in service definition for '.$id);
328
-            }
329
-        } elseif (false !== strpos($class, '$')) {
330
-            $code = sprintf("        \$class = %s;\n        $return{$instantiation}new \$class(%s);\n", $class, implode(', ', $arguments));
331
-        } else {
332
-            $code = sprintf("        $return{$instantiation}new \\%s(%s);\n", substr(str_replace('\\\\', '\\', $class), 1, -1), implode(', ', $arguments));
333
-        }
299
+        $code = $this->addNewInstance($id, $definition, $return, $instantiation);
334 300
 
335 301
         if (!$simple) {
336 302
             $code .= "\n";
@@ -415,16 +381,14 @@ class PhpDumper extends Dumper
415 381
             }
416 382
             $processed->offsetSet($iDefinition);
417 383
 
418
-            if (!$this->hasReference($id, $iDefinition->getMethodCalls())) {
384
+            if (!$this->hasReference($id, $iDefinition->getMethodCalls(), true) && !$this->hasReference($id, $iDefinition->getProperties(), true)) {
419 385
                 continue;
420 386
             }
421 387
 
422
-            if ($iDefinition->getMethodCalls()) {
423
-                $code .= $this->addServiceMethodCalls(null, $iDefinition, (string) $this->definitionVariables->offsetGet($iDefinition));
424
-            }
425
-            if ($iDefinition->getConfigurator()) {
426
-                $code .= $this->addServiceConfigurator(null, $iDefinition, (string) $this->definitionVariables->offsetGet($iDefinition));
427
-            }
388
+            $name = (string) $this->definitionVariables->offsetGet($iDefinition);
389
+            $code .= $this->addServiceMethodCalls(null, $iDefinition, $name);
390
+            $code .= $this->addServiceProperties(null, $iDefinition, $name);
391
+            $code .= $this->addServiceConfigurator(null, $iDefinition, $name);
428 392
         }
429 393
 
430 394
         if ('' !== $code) {
@@ -611,6 +575,34 @@ EOF;
611 575
         return $publicServices.$aliasServices.$privateServices;
612 576
     }
613 577
 
578
+    private function addNewInstance($id, Definition $definition, $return, $instantiation)
579
+    {
580
+        $class = $this->dumpValue($definition->getClass());
581
+
582
+        $arguments = array();
583
+        foreach ($definition->getArguments() as $value) {
584
+            $arguments[] = $this->dumpValue($value);
585
+        }
586
+
587
+        if (null !== $definition->getFactoryMethod()) {
588
+            if (null !== $definition->getFactoryClass()) {
589
+                return sprintf("        $return{$instantiation}call_user_func(array(%s, '%s')%s);\n", $this->dumpValue($definition->getFactoryClass()), $definition->getFactoryMethod(), $arguments ? ', '.implode(', ', $arguments) : '');
590
+            }
591
+
592
+            if (null !== $definition->getFactoryService()) {
593
+                return sprintf("        $return{$instantiation}%s->%s(%s);\n", $this->getServiceCall($definition->getFactoryService()), $definition->getFactoryMethod(), implode(', ', $arguments));
594
+            }
595
+
596
+            throw new RuntimeException('Factory method requires a factory service or factory class in service definition for '.$id);
597
+        }
598
+
599
+        if (false !== strpos($class, '$')) {
600
+            return sprintf("        \$class = %s;\n\n        $return{$instantiation}new \$class(%s);\n", $class, implode(', ', $arguments));
601
+        }
602
+
603
+        return sprintf("        $return{$instantiation}new \\%s(%s);\n", substr(str_replace('\\\\', '\\', $class), 1, -1), implode(', ', $arguments));
604
+    }
605
+
614 606
     /**
615 607
      * Adds the class headers.
616 608
      *
@@ -960,17 +952,26 @@ EOF;
960 952
      *
961 953
      * @return Boolean
962 954
      */
963
-    private function hasReference($id, array $arguments)
955
+    private function hasReference($id, array $arguments, $deep = false)
964 956
     {
965 957
         foreach ($arguments as $argument) {
966 958
             if (is_array($argument)) {
967
-                if ($this->hasReference($id, $argument)) {
959
+                if ($this->hasReference($id, $argument, $deep)) {
968 960
                     return true;
969 961
                 }
970 962
             } elseif ($argument instanceof Reference) {
971 963
                 if ($id === (string) $argument) {
972 964
                     return true;
973 965
                 }
966
+
967
+                if ($deep) {
968
+                    $service = $this->container->getDefinition((string) $argument);
969
+                    $arguments = array_merge($service->getMethodCalls(), $service->getArguments(), $service->getProperties());
970
+
971
+                    if ($this->hasReference($id, $arguments, $deep)) {
972
+                        return true;
973
+                    }
974
+                }
974 975
             }
975 976
         }
976 977
 

+ 4 - 8
vendor/symfony/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php Datei anzeigen

@@ -166,11 +166,7 @@ class YamlDumper extends Dumper
166 166
             return '';
167 167
         }
168 168
 
169
-        if ($this->container->isFrozen()) {
170
-            $parameters = $this->prepareParameters($this->container->getParameterBag()->all());
171
-        } else {
172
-            $parameters = $this->container->getParameterBag()->all();
173
-        }
169
+        $parameters = $this->prepareParameters($this->container->getParameterBag()->all(), $this->container->isFrozen());
174 170
 
175 171
         return Yaml::dump(array('parameters' => $parameters), 2);
176 172
     }
@@ -240,12 +236,12 @@ class YamlDumper extends Dumper
240 236
      *
241 237
      * @return array
242 238
      */
243
-    private function prepareParameters($parameters)
239
+    private function prepareParameters($parameters, $escape = true)
244 240
     {
245 241
         $filtered = array();
246 242
         foreach ($parameters as $key => $value) {
247 243
             if (is_array($value)) {
248
-                $value = $this->prepareParameters($value);
244
+                $value = $this->prepareParameters($value, $escape);
249 245
             } elseif ($value instanceof Reference) {
250 246
                 $value = '@'.$value;
251 247
             }
@@ -253,7 +249,7 @@ class YamlDumper extends Dumper
253 249
             $filtered[$key] = $value;
254 250
         }
255 251
 
256
-        return $this->escape($filtered);
252
+        return $escape ? $this->escape($filtered) : $filtered;
257 253
     }
258 254
 
259 255
     /**

+ 10 - 2
vendor/symfony/src/Symfony/Component/Form/Extension/Core/ChoiceList/MonthChoiceList.php Datei anzeigen

@@ -39,7 +39,11 @@ class MonthChoiceList extends PaddedChoiceList
39 39
         $pattern = $this->formatter->getPattern();
40 40
         $timezone = $this->formatter->getTimezoneId();
41 41
 
42
-        $this->formatter->setTimezoneId('UTC');
42
+        if (version_compare(phpversion(), '5.5.0-dev', '<')) {
43
+            $this->formatter->setTimezoneId('UTC');
44
+        } else {
45
+            $this->formatter->setTimezone('UTC');
46
+        }
43 47
 
44 48
         if (preg_match('/M+/', $pattern, $matches)) {
45 49
             $this->formatter->setPattern($matches[0]);
@@ -53,6 +57,10 @@ class MonthChoiceList extends PaddedChoiceList
53 57
             $this->formatter->setPattern($pattern);
54 58
         }
55 59
 
56
-        $this->formatter->setTimezoneId($timezone);
60
+        if (version_compare(phpversion(), '5.5.0-dev', '<')) {
61
+            $this->formatter->setTimezoneId($timezone);
62
+        } else {
63
+            $this->formatter->setTimezone($timezone);
64
+        }
57 65
     }
58 66
 }

+ 0 - 5
vendor/symfony/src/Symfony/Component/Form/Form.php Datei anzeigen

@@ -266,7 +266,6 @@ class Form implements \IteratorAggregate, FormInterface
266 266
     public function isRequired()
267 267
     {
268 268
         if (null === $this->parent || $this->parent->isRequired()) {
269
-
270 269
             return $this->required;
271 270
         }
272 271
 
@@ -287,7 +286,6 @@ class Form implements \IteratorAggregate, FormInterface
287 286
     public function isReadOnly()
288 287
     {
289 288
         if (null === $this->parent || !$this->parent->isReadOnly()) {
290
-
291 289
             return $this->readOnly;
292 290
         }
293 291
 
@@ -661,7 +659,6 @@ class Form implements \IteratorAggregate, FormInterface
661 659
     {
662 660
         foreach ($this->children as $child) {
663 661
             if (!$child->isEmpty()) {
664
-
665 662
                 return false;
666 663
             }
667 664
         }
@@ -687,7 +684,6 @@ class Form implements \IteratorAggregate, FormInterface
687 684
         if (!$this->readOnly) {
688 685
             foreach ($this->children as $child) {
689 686
                 if (!$child->isValid()) {
690
-
691 687
                     return false;
692 688
                 }
693 689
             }
@@ -822,7 +818,6 @@ class Form implements \IteratorAggregate, FormInterface
822 818
     public function get($name)
823 819
     {
824 820
         if (isset($this->children[$name])) {
825
-
826 821
             return $this->children[$name];
827 822
         }
828 823
 

+ 15 - 8
vendor/symfony/src/Symfony/Component/HttpFoundation/File/File.php Datei anzeigen

@@ -524,6 +524,20 @@ class File extends \SplFileInfo
524 524
      */
525 525
     public function move($directory, $name = null)
526 526
     {
527
+        $target = $this->getTargetFile($directory, $name);
528
+
529
+        if (!@rename($this->getPathname(), $target)) {
530
+            $error = error_get_last();
531
+            throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s)', $this->getPathname(), $target, strip_tags($error['message'])));
532
+        }
533
+
534
+        @chmod($target, 0666 & ~umask());
535
+
536
+        return $target;
537
+    }
538
+
539
+    protected function getTargetFile($directory, $name = null)
540
+    {
527 541
         if (!is_dir($directory)) {
528 542
             if (false === @mkdir($directory, 0777, true)) {
529 543
                 throw new FileException(sprintf('Unable to create the "%s" directory', $directory));
@@ -534,14 +548,7 @@ class File extends \SplFileInfo
534 548
 
535 549
         $target = $directory.DIRECTORY_SEPARATOR.(null === $name ? $this->getBasename() : $this->getName($name));
536 550
 
537
-        if (!@rename($this->getPathname(), $target)) {
538
-            $error = error_get_last();
539
-            throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s)', $this->getPathname(), $target, strip_tags($error['message'])));
540
-        }
541
-
542
-        chmod($target, 0666);
543
-
544
-        return new File($target);
551
+        return new File($target, false);
545 552
     }
546 553
 
547 554
     /**

+ 2 - 1
vendor/symfony/src/Symfony/Component/HttpFoundation/File/MimeType/FileBinaryMimeTypeGuesser.php Datei anzeigen

@@ -28,8 +28,9 @@ class FileBinaryMimeTypeGuesser implements MimeTypeGuesserInterface
28 28
      */
29 29
     public static function isSupported()
30 30
     {
31
-        return !strstr(PHP_OS, 'WIN');
31
+        return !defined('PHP_WINDOWS_VERSION_BUILD') && function_exists('passthru') && function_exists('escapeshellarg');
32 32
     }
33
+
33 34
     /**
34 35
      * Guesses the mime type of the file with the given path
35 36
      *

+ 15 - 2
vendor/symfony/src/Symfony/Component/HttpFoundation/File/UploadedFile.php Datei anzeigen

@@ -189,8 +189,21 @@ class UploadedFile extends File
189 189
      */
190 190
     public function move($directory, $name = null)
191 191
     {
192
-        if ($this->isValid() && ($this->test || is_uploaded_file($this->getPathname()))) {
193
-            return parent::move($directory, $name);
192
+        if ($this->isValid()) {
193
+            if ($this->test) {
194
+                return parent::move($directory, $name);
195
+            } elseif (is_uploaded_file($this->getPathname())) {
196
+                $target = $this->getTargetFile($directory, $name);
197
+
198
+                if (!@move_uploaded_file($this->getPathname(), $target)) {
199
+                    $error = error_get_last();
200
+                    throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s)', $this->getPathname(), $target, strip_tags($error['message'])));
201
+                }
202
+
203
+                @chmod($target, 0666 & ~umask());
204
+
205
+                return $target;
206
+            }
194 207
         }
195 208
 
196 209
         throw new FileException(sprintf('The file "%s" has not been uploaded via Http', $this->getPathname()));

+ 17 - 10
vendor/symfony/src/Symfony/Component/HttpFoundation/Request.php Datei anzeigen

@@ -796,6 +796,8 @@ class Request
796 796
      *
797 797
      * @return string
798 798
      *
799
+     * @throws \UnexpectedValueException when the host name is invalid
800
+     *
799 801
      * @api
800 802
      */
801 803
     public function getHost()
@@ -803,19 +805,23 @@ class Request
803 805
         if (self::$trustProxy && self::$trustedHeaders[self::HEADER_CLIENT_HOST] && $host = $this->headers->get(self::$trustedHeaders[self::HEADER_CLIENT_HOST])) {
804 806
             $elements = explode(',', $host);
805 807
 
806
-            $host = trim($elements[count($elements) - 1]);
807
-        } else {
808
-            if (!$host = $this->headers->get('HOST')) {
809
-                if (!$host = $this->server->get('SERVER_NAME')) {
810
-                    $host = $this->server->get('SERVER_ADDR', '');
811
-                }
808
+            $host = $elements[count($elements) - 1];
809
+        } elseif (!$host = $this->headers->get('HOST')) {
810
+            if (!$host = $this->server->get('SERVER_NAME')) {
811
+                $host = $this->server->get('SERVER_ADDR', '');
812 812
             }
813 813
         }
814 814
 
815
-        // Remove port number from host
816
-        $host = preg_replace('/:\d+$/', '', $host);
815
+        // Trim and remove port number from host
816
+        $host = preg_replace('/:\d+$/', '', trim($host));
817
+
818
+        // as the host can come from the user (HTTP_HOST and depending on the configuration, SERVER_NAME too can come from the user)
819
+        // check that it does not contain forbidden characters (see RFC 952 and RFC 2181)
820
+        if ($host && !preg_match('/^\[?(?:[a-zA-Z0-9-:\]_]+\.?)+$/', $host)) {
821
+            throw new \UnexpectedValueException('Invalid Host');
822
+        }
817 823
 
818
-        return trim($host);
824
+        return $host;
819 825
     }
820 826
 
821 827
     /**
@@ -1126,7 +1132,8 @@ class Request
1126 1132
      * Returns true if the request is a XMLHttpRequest.
1127 1133
      *
1128 1134
      * It works if your JavaScript library set an X-Requested-With HTTP header.
1129
-     * It is known to work with Prototype, Mootools, jQuery.
1135
+     * It is known to work with common JavaScript frameworks:
1136
+     * @link http://en.wikipedia.org/wiki/List_of_Ajax_frameworks#JavaScript
1130 1137
      *
1131 1138
      * @return Boolean true if the request is an XMLHttpRequest, false otherwise
1132 1139
      *

+ 0 - 1
vendor/symfony/src/Symfony/Component/HttpFoundation/RequestMatcher.php Datei anzeigen

@@ -237,4 +237,3 @@ class RequestMatcher implements RequestMatcherInterface
237 237
         return true;
238 238
     }
239 239
 }
240
-

+ 1 - 1
vendor/symfony/src/Symfony/Component/HttpFoundation/Response.php Datei anzeigen

@@ -505,7 +505,7 @@ class Response
505 505
     }
506 506
 
507 507
     /**
508
-     * Sets the number of seconds after the time specified in the response's Date
508
+     * Returns the number of seconds after the time specified in the response's Date
509 509
      * header when the the response should no longer be considered fresh.
510 510
      *
511 511
      * First, it checks for a s-maxage directive, then a max-age directive, and then it falls

+ 1 - 0
vendor/symfony/src/Symfony/Component/HttpFoundation/SessionStorage/PdoSessionStorage.php Datei anzeigen

@@ -182,6 +182,7 @@ class PdoSessionStorage extends NativeSessionStorage
182 182
 
183 183
             if (count($sessionRows) == 1) {
184 184
                 $session = is_resource($sessionRows[0][0]) ? stream_get_contents($sessionRows[0][0]) : $sessionRows[0][0];
185
+
185 186
                 return base64_decode($session);
186 187
             }
187 188
 

+ 1 - 1
vendor/symfony/src/Symfony/Component/HttpKernel/Bundle/Bundle.php Datei anzeigen

@@ -172,7 +172,7 @@ abstract class Bundle extends ContainerAware implements BundleInterface
172 172
      */
173 173
     public function registerCommands(Application $application)
174 174
     {
175
-        if (!$dir = realpath($this->getPath().'/Command')) {
175
+        if (!is_dir($dir = $this->getPath().'/Command')) {
176 176
             return;
177 177
         }
178 178
 

+ 1 - 1
vendor/symfony/src/Symfony/Component/HttpKernel/Exception/FlattenException.php Datei anzeigen

@@ -161,7 +161,7 @@ class FlattenException
161 161
                 'short_class' => $class,
162 162
                 'class'       => isset($entry['class']) ? $entry['class'] : '',
163 163
                 'type'        => isset($entry['type']) ? $entry['type'] : '',
164
-                'function'    => $entry['function'],
164
+                'function'    => isset($entry['function']) ? $entry['function'] : null,
165 165
                 'file'        => isset($entry['file']) ? $entry['file'] : null,
166 166
                 'line'        => isset($entry['line']) ? $entry['line'] : null,
167 167
                 'args'        => isset($entry['args']) ? $this->flattenArgs($entry['args']) : array(),

+ 3 - 3
vendor/symfony/src/Symfony/Component/HttpKernel/Kernel.php Datei anzeigen

@@ -56,11 +56,11 @@ abstract class Kernel implements KernelInterface
56 56
     protected $startTime;
57 57
     protected $classes;
58 58
 
59
-    const VERSION         = '2.0.19';
60
-    const VERSION_ID      = '20019';
59
+    const VERSION         = '2.0.22';
60
+    const VERSION_ID      = '20022';
61 61
     const MAJOR_VERSION   = '2';
62 62
     const MINOR_VERSION   = '0';
63
-    const RELEASE_VERSION = '19';
63
+    const RELEASE_VERSION = '22';
64 64
     const EXTRA_VERSION   = '';
65 65
 
66 66
     /**

+ 79 - 6
vendor/symfony/src/Symfony/Component/Locale/Stub/StubIntlDateFormatter.php Datei anzeigen

@@ -188,6 +188,9 @@ class StubIntlDateFormatter
188 188
             $argumentError = 'datefmt_format: takes either an array  or an integer timestamp value ';
189 189
         } elseif (version_compare(\PHP_VERSION, '5.3.4', '>=') && !is_int($timestamp) && !$timestamp instanceof \DateTime) {
190 190
             $argumentError = 'datefmt_format: takes either an array or an integer timestamp value or a DateTime object';
191
+            if (version_compare(\PHP_VERSION, '5.5.0-dev', '>=') && !is_int($timestamp)) {
192
+                $argumentError = sprintf('datefmt_format: string \'%s\' is not numeric, which would be required for it to be a valid date', $timestamp);
193
+            }
191 194
         }
192 195
 
193 196
         if (null !== $argumentError) {
@@ -215,6 +218,24 @@ class StubIntlDateFormatter
215 218
     }
216 219
 
217 220
     /**
221
+     * Formats an object
222
+     *
223
+     * @param object $object
224
+     * @param mixed  $format
225
+     * @param string $locale
226
+     *
227
+     * @return string   The formatted value
228
+     *
229
+     * @see    http://www.php.net/manual/en/intldateformatter.formatobject.php
230
+     *
231
+     * @throws MethodNotImplementedException
232
+     */
233
+    public function formatObject($object, $format = null, $locale = null)
234
+    {
235
+        throw new MethodNotImplementedException(__METHOD__);
236
+    }
237
+
238
+    /**
218 239
      * Returns the formatter's calendar
219 240
      *
220 241
      * @return int   The calendar being used by the formatter
@@ -227,6 +248,20 @@ class StubIntlDateFormatter
227 248
     }
228 249
 
229 250
     /**
251
+     * Returns the formatter's calendar object
252
+     *
253
+     * @return object The calendar's object being used by the formatter
254
+     *
255
+     * @see    http://www.php.net/manual/en/intldateformatter.getcalendarobject.php
256
+     *
257
+     * @throws MethodNotImplementedException
258
+     */
259
+    public function getCalendarObject()
260
+    {
261
+        throw new MethodNotImplementedException(__METHOD__);
262
+    }
263
+
264
+    /**
230 265
      * Returns the formatter's datetype
231 266
      *
232 267
      * @return int   The current value of the formatter
@@ -313,10 +348,29 @@ class StubIntlDateFormatter
313 348
             return $this->timeZoneId;
314 349
         }
315 350
 
351
+        // In PHP 5.5 default timezone depends on `date_default_timezone_get()` method
352
+        if (version_compare(\PHP_VERSION, '5.5.0-dev', '>=')) {
353
+            return date_default_timezone_get();
354
+        }
355
+
316 356
         return null;
317 357
     }
318 358
 
319 359
     /**
360
+     * Returns the formatter's timezone
361
+     *
362
+     * @return mixed    The timezone used by the formatter
363
+     *
364
+     * @see    http://www.php.net/manual/en/intldateformatter.gettimezone.php
365
+     *
366
+     * @throws MethodNotImplementedException
367
+     */
368
+    public function getTimeZone()
369
+    {
370
+        throw new MethodNotImplementedException(__METHOD__);
371
+    }
372
+
373
+    /**
320 374
      * Returns whether the formatter is lenient
321 375
      *
322 376
      * @return string   The timezone identifier used by the formatter
@@ -458,11 +512,16 @@ class StubIntlDateFormatter
458 512
     public function setTimeZoneId($timeZoneId)
459 513
     {
460 514
         if (null === $timeZoneId) {
461
-            // TODO: changes were made to ext/intl in PHP 5.4.4 release that need to be investigated since it will
462
-            // use ini's date.timezone when the time zone is not provided. As a not well tested workaround, uses UTC.
463
-            // See the first two items of the commit message for more information:
464
-            // https://github.com/php/php-src/commit/eb346ef0f419b90739aadfb6cc7b7436c5b521d9
465
-            $timeZoneId = getenv('TZ') ?: 'UTC';
515
+            // In PHP 5.5 if $timeZoneId is null it fallbacks to `date_default_timezone_get()` method
516
+            if (version_compare(\PHP_VERSION, '5.5.0-dev', '>=')) {
517
+                $timeZoneId = date_default_timezone_get();
518
+            } else {
519
+                // TODO: changes were made to ext/intl in PHP 5.4.4 release that need to be investigated since it will
520
+                // use ini's date.timezone when the time zone is not provided. As a not well tested workaround, uses UTC.
521
+                // See the first two items of the commit message for more information:
522
+                // https://github.com/php/php-src/commit/eb346ef0f419b90739aadfb6cc7b7436c5b521d9
523
+                $timeZoneId = getenv('TZ') ?: 'UTC';
524
+            }
466 525
 
467 526
             $this->unitializedTimeZoneId = true;
468 527
         }
@@ -491,12 +550,26 @@ class StubIntlDateFormatter
491 550
     }
492 551
 
493 552
     /**
553
+     * This method was added in PHP 5.5 as replacement for `setTimeZoneId()`
554
+     *
555
+     * @param  mixed $timeZone
556
+     *
557
+     * @return Boolean true on success or false on failure
558
+     *
559
+     * @see    http://www.php.net/manual/en/intldateformatter.settimezone.php
560
+     */
561
+    public function setTimeZone($timeZone)
562
+    {
563
+        return $this->setTimeZoneId($timeZone);
564
+    }
565
+
566
+    /**
494 567
      * Create and returns a DateTime object with the specified timestamp and with the
495 568
      * current time zone
496 569
      *
497 570
      * @param int $timestamp
498 571
      *
499
-     * @return DateTime
572
+     * @return \DateTime
500 573
      */
501 574
     protected function createDateTime($timestamp)
502 575
     {

+ 8 - 1
vendor/symfony/src/Symfony/Component/Process/Process.php Datei anzeigen

@@ -53,7 +53,7 @@ class Process
53 53
         }
54 54
 
55 55
         $this->commandline = $commandline;
56
-        $this->cwd = null === $cwd ? getcwd() : $cwd;
56
+        $this->cwd = $cwd;
57 57
         if (null !== $env) {
58 58
             $this->env = array();
59 59
             foreach ($env as $key => $value) {
@@ -359,6 +359,13 @@ class Process
359 359
      */
360 360
     public function getWorkingDirectory()
361 361
     {
362
+        // This is for BC only
363
+        if (null === $this->cwd) {
364
+            // getcwd() will return false if any one of the parent directories does not have
365
+            // the readable or search mode set, even if the current directory does
366
+            return getcwd() ?: null;
367
+        }
368
+
362 369
         return $this->cwd;
363 370
     }
364 371
 

+ 6 - 3
vendor/symfony/src/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd Datei anzeigen

@@ -29,10 +29,13 @@
29 29
     <xsd:attribute name="resource" type="xsd:string" />
30 30
     <xsd:attribute name="type" type="xsd:string" />
31 31
     <xsd:attribute name="prefix" type="xsd:string" />
32
-    <xsd:attribute name="class" type="xsd:string" />
33 32
   </xsd:complexType>
34 33
 
35
-  <xsd:complexType name="element" mixed="true">
36
-    <xsd:attribute name="key" type="xsd:string" />
34
+  <xsd:complexType name="element">
35
+    <xsd:simpleContent>
36
+      <xsd:extension base="xsd:string">
37
+        <xsd:attribute name="key" type="xsd:string" />
38
+      </xsd:extension>
39
+    </xsd:simpleContent>
37 40
   </xsd:complexType>
38 41
 </xsd:schema>

+ 1 - 0
vendor/symfony/src/Symfony/Component/Security/Http/Firewall/ContextListener.php Datei anzeigen

@@ -66,6 +66,7 @@ class ContextListener implements ListenerInterface
66 66
 
67 67
         if (null === $session || null === $token = $session->get('_security_'.$this->contextKey)) {
68 68
             $this->context->setToken(null);
69
+
69 70
             return;
70 71
         }
71 72
 

+ 2 - 2
vendor/symfony/src/Symfony/Component/Security/Http/HttpUtils.php Datei anzeigen

@@ -107,7 +107,7 @@ class HttpUtils
107 107
     {
108 108
         if ('/' !== $path[0]) {
109 109
             try {
110
-                $parameters = $this->router->match($request->getPathInfo());
110
+                $parameters = $this->router->match(urlencode($request->getPathInfo()));
111 111
 
112 112
                 return $path === $parameters['_route'];
113 113
             } catch (MethodNotAllowedException $e) {
@@ -129,7 +129,7 @@ class HttpUtils
129 129
         }
130 130
 
131 131
         try {
132
-            $parameters = $this->router->match($request->getPathInfo());
132
+            $parameters = $this->router->match(urlencode($request->getPathInfo()));
133 133
 
134 134
             if (isset($parameters['_locale'])) {
135 135
                 $context->setParameter('_locale', $parameters['_locale']);

+ 26 - 7
vendor/symfony/src/Symfony/Component/Yaml/Dumper.php Datei anzeigen

@@ -19,21 +19,40 @@ namespace Symfony\Component\Yaml;
19 19
 class Dumper
20 20
 {
21 21
     /**
22
+     * The amount of spaces to use for indentation of nested nodes.
23
+     *
24
+     * @var integer
25
+     */
26
+    protected $indentation = 2;
27
+
28
+    /**
29
+     * Sets the indentation.
30
+     *
31
+     * @param integer $num The amount of spaces to use for intendation of nested nodes.
32
+     */
33
+    public function setIndentation($num)
34
+    {
35
+        $this->indentation = $num;
36
+    }
37
+
38
+    /**
22 39
      * Dumps a PHP value to YAML.
23 40
      *
24
-     * @param mixed   $input  The PHP value
25
-     * @param integer $inline The level where you switch to inline YAML
26
-     * @param integer $indent The level of indentation (used internally)
41
+     * @param mixed   $input                  The PHP value
42
+     * @param integer $inline                 The level where you switch to inline YAML
43
+     * @param integer $indent                 The level of indentation (used internally)
44
+     * @param Boolean $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
45
+     * @param Boolean $objectSupport          true if object support is enabled, false otherwise
27 46
      *
28 47
      * @return string  The YAML representation of the PHP value
29 48
      */
30
-    public function dump($input, $inline = 0, $indent = 0)
49
+    public function dump($input, $inline = 0, $indent = 0, $exceptionOnInvalidType = false, $objectSupport = false)
31 50
     {
32 51
         $output = '';
33 52
         $prefix = $indent ? str_repeat(' ', $indent) : '';
34 53
 
35 54
         if ($inline <= 0 || !is_array($input) || empty($input)) {
36
-            $output .= $prefix.Inline::dump($input);
55
+            $output .= $prefix.Inline::dump($input, $exceptionOnInvalidType, $objectSupport);
37 56
         } else {
38 57
             $isAHash = array_keys($input) !== range(0, count($input) - 1);
39 58
 
@@ -42,9 +61,9 @@ class Dumper
42 61
 
43 62
                 $output .= sprintf('%s%s%s%s',
44 63
                     $prefix,
45
-                    $isAHash ? Inline::dump($key).':' : '-',
64
+                    $isAHash ? Inline::dump($key, $exceptionOnInvalidType, $objectSupport).':' : '-',
46 65
                     $willBeInlined ? ' ' : "\n",
47
-                    $this->dump($value, $inline - 1, $willBeInlined ? 0 : $indent + 2)
66
+                    $this->dump($value, $inline - 1, $willBeInlined ? 0 : $indent + $this->indentation, $exceptionOnInvalidType, $objectSupport)
48 67
                 ).($willBeInlined ? "\n" : '');
49 68
             }
50 69
         }

+ 44 - 12
vendor/symfony/src/Symfony/Component/Yaml/Inline.php Datei anzeigen

@@ -22,15 +22,23 @@ class Inline
22 22
 {
23 23
     const REGEX_QUOTED_STRING = '(?:"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'([^\']*(?:\'\'[^\']*)*)\')';
24 24
 
25
+    private static $exceptionOnInvalidType = false;
26
+    private static $objectSupport = false;
27
+
25 28
     /**
26 29
      * Converts a YAML string to a PHP array.
27 30
      *
28
-     * @param string $value A YAML string
31
+     * @param string  $value                  A YAML string
32
+     * @param Boolean $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
33
+     * @param Boolean $objectSupport          true if object support is enabled, false otherwise
29 34
      *
30 35
      * @return array A PHP array representing the YAML string
31 36
      */
32
-    public static function parse($value)
37
+    public static function parse($value, $exceptionOnInvalidType = false, $objectSupport = false)
33 38
     {
39
+        self::$exceptionOnInvalidType = $exceptionOnInvalidType;
40
+        self::$objectSupport = $objectSupport;
41
+
34 42
         $value = trim($value);
35 43
 
36 44
         if (0 == strlen($value)) {
@@ -63,21 +71,35 @@ class Inline
63 71
     /**
64 72
      * Dumps a given PHP variable to a YAML string.
65 73
      *
66
-     * @param mixed $value The PHP variable to convert
74
+     * @param mixed   $value                  The PHP variable to convert
75
+     * @param Boolean $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
76
+     * @param Boolean $objectSupport          true if object support is enabled, false otherwise
67 77
      *
68 78
      * @return string The YAML string representing the PHP array
69 79
      *
70 80
      * @throws DumpException When trying to dump PHP resource
71 81
      */
72
-    public static function dump($value)
82
+    public static function dump($value, $exceptionOnInvalidType = false, $objectSupport = false)
73 83
     {
74 84
         switch (true) {
75 85
             case is_resource($value):
76
-                throw new DumpException(sprintf('Unable to dump PHP resources in a YAML file ("%s").', get_resource_type($value)));
86
+                if ($exceptionOnInvalidType) {
87
+                    throw new DumpException(sprintf('Unable to dump PHP resources in a YAML file ("%s").', get_resource_type($value)));
88
+                }
89
+
90
+                return 'null';
77 91
             case is_object($value):
78
-                return '!!php/object:'.serialize($value);
92
+                if ($objectSupport) {
93
+                    return '!!php/object:'.serialize($value);
94
+                }
95
+
96
+                if ($exceptionOnInvalidType) {
97
+                    throw new DumpException('Object support when dumping a YAML file has been disabled.');
98
+                }
99
+
100
+                return 'null';
79 101
             case is_array($value):
80
-                return self::dumpArray($value);
102
+                return self::dumpArray($value, $exceptionOnInvalidType, $objectSupport);
81 103
             case null === $value:
82 104
                 return 'null';
83 105
             case true === $value:
@@ -115,11 +137,13 @@ class Inline
115 137
     /**
116 138
      * Dumps a PHP array to a YAML string.
117 139
      *
118
-     * @param array $value The PHP array to dump
140
+     * @param array   $value                  The PHP array to dump
141
+     * @param Boolean $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
142
+     * @param Boolean $objectSupport          true if object support is enabled, false otherwise
119 143
      *
120 144
      * @return string The YAML string representing the PHP array
121 145
      */
122
-    private static function dumpArray($value)
146
+    private static function dumpArray($value, $exceptionOnInvalidType, $objectSupport)
123 147
     {
124 148
         // array
125 149
         $keys = array_keys($value);
@@ -128,7 +152,7 @@ class Inline
128 152
         ) {
129 153
             $output = array();
130 154
             foreach ($value as $val) {
131
-                $output[] = self::dump($val);
155
+                $output[] = self::dump($val, $exceptionOnInvalidType, $objectSupport);
132 156
             }
133 157
 
134 158
             return sprintf('[%s]', implode(', ', $output));
@@ -137,7 +161,7 @@ class Inline
137 161
         // mapping
138 162
         $output = array();
139 163
         foreach ($value as $key => $val) {
140
-            $output[] = sprintf('%s: %s', self::dump($key), self::dump($val));
164
+            $output[] = sprintf('%s: %s', self::dump($key, $exceptionOnInvalidType, $objectSupport), self::dump($val, $exceptionOnInvalidType, $objectSupport));
141 165
         }
142 166
 
143 167
         return sprintf('{ %s }', implode(', ', $output));
@@ -355,7 +379,15 @@ class Inline
355 379
             case 0 === strpos($scalar, '! '):
356 380
                 return intval(self::parseScalar(substr($scalar, 2)));
357 381
             case 0 === strpos($scalar, '!!php/object:'):
358
-                return unserialize(substr($scalar, 13));
382
+                if (self::$objectSupport) {
383
+                    return unserialize(substr($scalar, 13));
384
+                }
385
+
386
+                if (self::$exceptionOnInvalidType) {
387
+                    throw new ParseException('Object support when parsing a YAML file has been disabled.');
388
+                }
389
+
390
+                return null;
359 391
             case ctype_digit($scalar):
360 392
                 $raw = $scalar;
361 393
                 $cast = intval($scalar);

+ 15 - 11
vendor/symfony/src/Symfony/Component/Yaml/Parser.php Datei anzeigen

@@ -38,13 +38,15 @@ class Parser
38 38
     /**
39 39
      * Parses a YAML string to a PHP value.
40 40
      *
41
-     * @param string $value A YAML string
41
+     * @param string  $value                  A YAML string
42
+     * @param Boolean $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
43
+     * @param Boolean $objectSupport          true if object support is enabled, false otherwise
42 44
      *
43 45
      * @return mixed  A PHP value
44 46
      *
45 47
      * @throws ParseException If the YAML is not valid
46 48
      */
47
-    public function parse($value)
49
+    public function parse($value, $exceptionOnInvalidType = false, $objectSupport = false)
48 50
     {
49 51
         $this->currentLineNb = -1;
50 52
         $this->currentLine = '';
@@ -82,7 +84,7 @@ class Parser
82 84
                     $c = $this->getRealCurrentLineNb() + 1;
83 85
                     $parser = new Parser($c);
84 86
                     $parser->refs =& $this->refs;
85
-                    $data[] = $parser->parse($this->getNextEmbedBlock());
87
+                    $data[] = $parser->parse($this->getNextEmbedBlock(), $exceptionOnInvalidType, $objectSupport);
86 88
                 } else {
87 89
                     if (isset($values['leadspaces'])
88 90
                         && ' ' == $values['leadspaces']
@@ -98,12 +100,14 @@ class Parser
98 100
                             $block .= "\n".$this->getNextEmbedBlock($this->getCurrentLineIndentation() + 2);
99 101
                         }
100 102
 
101
-                        $data[] = $parser->parse($block);
103
+                        $data[] = $parser->parse($block, $exceptionOnInvalidType, $objectSupport);
102 104
                     } else {
103
-                        $data[] = $this->parseValue($values['value']);
105
+                        $data[] = $this->parseValue($values['value'], $exceptionOnInvalidType, $objectSupport);
104 106
                     }
105 107
                 }
106 108
             } elseif (preg_match('#^(?P<key>'.Inline::REGEX_QUOTED_STRING.'|[^ \'"\[\{].*?) *\:(\s+(?P<value>.+?))?\s*$#u', $this->currentLine, $values)) {
109
+                // force correct settings
110
+                Inline::parse(null, $exceptionOnInvalidType, $objectSupport);
107 111
                 try {
108 112
                     $key = Inline::parseScalar($values['key']);
109 113
                 } catch (ParseException $e) {
@@ -128,7 +132,7 @@ class Parser
128 132
                         $c = $this->getRealCurrentLineNb() + 1;
129 133
                         $parser = new Parser($c);
130 134
                         $parser->refs =& $this->refs;
131
-                        $parsed = $parser->parse($value);
135
+                        $parsed = $parser->parse($value, $exceptionOnInvalidType, $objectSupport);
132 136
 
133 137
                         $merged = array();
134 138
                         if (!is_array($parsed)) {
@@ -165,20 +169,20 @@ class Parser
165 169
                         $c = $this->getRealCurrentLineNb() + 1;
166 170
                         $parser = new Parser($c);
167 171
                         $parser->refs =& $this->refs;
168
-                        $data[$key] = $parser->parse($this->getNextEmbedBlock());
172
+                        $data[$key] = $parser->parse($this->getNextEmbedBlock(), $exceptionOnInvalidType, $objectSupport);
169 173
                     }
170 174
                 } else {
171 175
                     if ($isInPlace) {
172 176
                         $data = $this->refs[$isInPlace];
173 177
                     } else {
174
-                        $data[$key] = $this->parseValue($values['value']);
178
+                        $data[$key] = $this->parseValue($values['value'], $exceptionOnInvalidType, $objectSupport);
175 179
                     }
176 180
                 }
177 181
             } else {
178 182
                 // 1-liner followed by newline
179 183
                 if (2 == count($this->lines) && empty($this->lines[1])) {
180 184
                     try {
181
-                        $value = Inline::parse($this->lines[0]);
185
+                        $value = Inline::parse($this->lines[0], $exceptionOnInvalidType, $objectSupport);
182 186
                     } catch (ParseException $e) {
183 187
                         $e->setParsedLine($this->getRealCurrentLineNb() + 1);
184 188
                         $e->setSnippet($this->currentLine);
@@ -345,7 +349,7 @@ class Parser
345 349
      *
346 350
      * @throws ParseException When reference does not exist
347 351
      */
348
-    private function parseValue($value)
352
+    private function parseValue($value, $exceptionOnInvalidType, $objectSupport)
349 353
     {
350 354
         if (0 === strpos($value, '*')) {
351 355
             if (false !== $pos = strpos($value, '#')) {
@@ -368,7 +372,7 @@ class Parser
368 372
         }
369 373
 
370 374
         try {
371
-            return Inline::parse($value);
375
+            return Inline::parse($value, $exceptionOnInvalidType, $objectSupport);
372 376
         } catch (ParseException $e) {
373 377
             $e->setParsedLine($this->getRealCurrentLineNb() + 1);
374 378
             $e->setSnippet($this->currentLine);

+ 71 - 18
vendor/symfony/src/Symfony/Component/Yaml/Yaml.php Datei anzeigen

@@ -23,6 +23,53 @@ use Symfony\Component\Yaml\Exception\ParseException;
23 23
 class Yaml
24 24
 {
25 25
     /**
26
+     * Be warned that PHP support will be removed in Symfony 2.3.
27
+     *
28
+     * @deprecated Deprecated since version 2.0, to be removed in 2.3.
29
+     */
30
+    public static $enablePhpParsing = false;
31
+
32
+    /**
33
+     * Enables PHP support when parsing YAML files.
34
+     *
35
+     * Be warned that PHP support will be removed in Symfony 2.3.
36
+     *
37
+     * @deprecated Deprecated since version 2.0, to be removed in 2.3.
38
+     */
39
+    public static function enablePhpParsing()
40
+    {
41
+        self::$enablePhpParsing = true;
42
+    }
43
+
44
+    /**
45
+     * Sets the PHP support flag when parsing YAML files.
46
+     *
47
+     * Be warned that PHP support will be removed in Symfony 2.3.
48
+     *
49
+     * @param Boolean $boolean true if PHP parsing support is enabled, false otherwise
50
+     *
51
+     * @deprecated Deprecated since version 2.0, to be removed in 2.3.
52
+     */
53
+    public static function setPhpParsing($boolean)
54
+    {
55
+        self::$enablePhpParsing = (Boolean) $boolean;
56
+    }
57
+
58
+    /**
59
+     * Checks if PHP support is enabled when parsing YAML files.
60
+     *
61
+     * Be warned that PHP support will be removed in Symfony 2.3.
62
+     *
63
+     * @return Boolean true if PHP parsing support is enabled, false otherwise
64
+     *
65
+     * @deprecated Deprecated since version 2.0, to be removed in 2.3.
66
+     */
67
+    public static function supportsPhpParsing()
68
+    {
69
+        return self::$enablePhpParsing;
70
+    }
71
+
72
+    /**
26 73
      * Parses YAML into a PHP array.
27 74
      *
28 75
      * The parse method, when supplied with a YAML stream (string or file),
@@ -42,35 +89,37 @@ class Yaml
42 89
      *
43 90
      * @api
44 91
      */
45
-    public static function parse($input)
92
+    public static function parse($input, $exceptionOnInvalidType = false, $objectSupport = false)
46 93
     {
47
-        $file = '';
48
-
49 94
         // if input is a file, process it
95
+        $file = '';
50 96
         if (strpos($input, "\n") === false && is_file($input)) {
51 97
             if (false === is_readable($input)) {
52 98
                 throw new ParseException(sprintf('Unable to parse "%s" as the file is not readable.', $input));
53 99
             }
54 100
 
55 101
             $file = $input;
102
+            if (self::$enablePhpParsing) {
103
+                ob_start();
104
+                $retval = include($file);
105
+                $content = ob_get_clean();
56 106
 
57
-            ob_start();
58
-            $retval = include($input);
59
-            $content = ob_get_clean();
60
-
61
-            // if an array is returned by the config file assume it's in plain php form else in YAML
62
-            $input = is_array($retval) ? $retval : $content;
63
-        }
107
+                // if an array is returned by the config file assume it's in plain php form else in YAML
108
+                $input = is_array($retval) ? $retval : $content;
64 109
 
65
-        // if an array is returned by the config file assume it's in plain php form else in YAML
66
-        if (is_array($input)) {
67
-            return $input;
110
+                // if an array is returned by the config file assume it's in plain php form else in YAML
111
+                if (is_array($input)) {
112
+                    return $input;
113
+                }
114
+            } else {
115
+                $input = file_get_contents($file);
116
+            }
68 117
         }
69 118
 
70 119
         $yaml = new Parser();
71 120
 
72 121
         try {
73
-            return $yaml->parse($input);
122
+            return $yaml->parse($input, $exceptionOnInvalidType, $objectSupport);
74 123
         } catch (ParseException $e) {
75 124
             if ($file) {
76 125
                 $e->setParsedFile($file);
@@ -86,17 +135,21 @@ class Yaml
86 135
      * The dump method, when supplied with an array, will do its best
87 136
      * to convert the array into friendly YAML.
88 137
      *
89
-     * @param array   $array  PHP array
90
-     * @param integer $inline The level where you switch to inline YAML
138
+     * @param array   $array                  PHP array
139
+     * @param integer $inline                 The level where you switch to inline YAML
140
+     * @param integer $indent                 The amount of spaces to use for indentation of nested nodes.
141
+     * @param Boolean $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
142
+     * @param Boolean $objectSupport          true if object support is enabled, false otherwise
91 143
      *
92 144
      * @return string A YAML string representing the original PHP array
93 145
      *
94 146
      * @api
95 147
      */
96
-    public static function dump($array, $inline = 2)
148
+    public static function dump($array, $inline = 2, $indent = 2, $exceptionOnInvalidType = false, $objectSupport = false)
97 149
     {
98 150
         $yaml = new Dumper();
151
+        $yaml->setIndentation($indent);
99 152
 
100
-        return $yaml->dump($array, $inline);
153
+        return $yaml->dump($array, $inline, 0, $exceptionOnInvalidType, $objectSupport);
101 154
     }
102 155
 }

+ 0 - 1
vendor/symfony/tests/Symfony/Tests/Bridge/Doctrine/Logger/DbalLoggerTest.php Datei anzeigen

@@ -11,7 +11,6 @@
11 11
 
12 12
 namespace Symfony\Tests\Bridge\Doctrine\Logger;
13 13
 
14
-
15 14
 class DbalLoggerTest extends \PHPUnit_Framework_TestCase
16 15
 {
17 16
     public function testLogNonUtf8()

+ 9 - 0
vendor/symfony/tests/Symfony/Tests/Component/Config/Loader/LoaderTest.php Datei anzeigen

@@ -55,6 +55,15 @@ class LoaderTest extends \PHPUnit_Framework_TestCase
55 55
             $this->assertInstanceOf('Symfony\Component\Config\Exception\FileLoaderLoadException', $e, '->resolve() throws a FileLoaderLoadException if the resource cannot be loaded');
56 56
         }
57 57
     }
58
+
59
+    public function testImport()
60
+    {
61
+        $loader = $this->getMock('Symfony\Component\Config\Loader\Loader', array('supports', 'load'));
62
+        $loader->expects($this->once())->method('supports')->will($this->returnValue(true));
63
+        $loader->expects($this->once())->method('load')->will($this->returnValue('yes'));
64
+
65
+        $this->assertEquals('yes', $loader->import('foo'));
66
+    }
58 67
 }
59 68
 
60 69
 class ProjectLoader1 extends Loader

+ 1 - 1
vendor/symfony/tests/Symfony/Tests/Component/Config/Resource/DirectoryResourceTest.php Datei anzeigen

@@ -38,7 +38,7 @@ class DirectoryResourceTest extends \PHPUnit_Framework_TestCase
38 38
     {
39 39
         $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($directory), \RecursiveIteratorIterator::CHILD_FIRST);
40 40
         foreach ($iterator as $path) {
41
-            if (preg_match('#/\.\.?$#', $path->__toString())) {
41
+            if (preg_match('#[/\\\\]\.\.?$#', $path->__toString())) {
42 42
                 continue;
43 43
             }
44 44
             if ($path->isDir()) {

+ 12 - 0
vendor/symfony/tests/Symfony/Tests/Component/Console/Input/ArgvInputTest.php Datei anzeigen

@@ -71,6 +71,18 @@ class ArgvInputTest extends \PHPUnit_Framework_TestCase
71 71
         $input->bind(new InputDefinition(array(new InputOption('foo', 'f', InputOption::VALUE_REQUIRED))));
72 72
         $this->assertEquals(array('foo' => 'bar'), $input->getOptions(), '->parse() parses short options with a required value (with a space separator)');
73 73
 
74
+        $input = new ArgvInput(array('cli.php', '-f', ''));
75
+        $input->bind(new InputDefinition(array(new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL))));
76
+        $this->assertEquals(array('foo' => ''), $input->getOptions(), '->parse() parses short options with an optional empty value');
77
+
78
+        $input = new ArgvInput(array('cli.php', '-f', '', 'foo'));
79
+        $input->bind(new InputDefinition(array(new InputArgument('name'), new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL))));
80
+        $this->assertEquals(array('foo' => ''), $input->getOptions(), '->parse() parses short options with an optional empty value followed by an argument');
81
+
82
+        $input = new ArgvInput(array('cli.php', '-f', '', '-b'));
83
+        $input->bind(new InputDefinition(array(new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL), new InputOption('bar', 'b'))));
84
+        $this->assertEquals(array('foo' => '', 'bar' => true), $input->getOptions(), '->parse() parses short options with an optional empty value followed by an option');
85
+
74 86
         $input = new ArgvInput(array('cli.php', '-f', '-b', 'foo'));
75 87
         $input->bind(new InputDefinition(array(new InputArgument('name'), new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL), new InputOption('bar', 'b'))));
76 88
         $this->assertEquals(array('foo' => null, 'bar' => true), $input->getOptions(), '->parse() parses short options with an optional value which is not present');

+ 1 - 0
vendor/symfony/tests/Symfony/Tests/Component/CssSelector/TokenizerTest.php Datei anzeigen

@@ -34,6 +34,7 @@ class TokenizerTest extends \PHPUnit_Framework_TestCase
34 34
     {
35 35
         $this->assertEquals('foo[class=foo bar  ]', $this->tokensToString($this->tokenizer->tokenize('foo[class="foo bar"]')), '->tokenize() lexes an input string and returns an array of tokens');
36 36
         $this->assertEquals("foo[class=foo Abar     ]", $this->tokensToString($this->tokenizer->tokenize('foo[class="foo \\65 bar"]')), '->tokenize() lexes an input string and returns an array of tokens');
37
+        $this->assertEquals("img[alt=  ]", $this->tokensToString($this->tokenizer->tokenize('img[alt=""]')), '->tokenize() lexes an input string and returns an array of tokens');
37 38
     }
38 39
 
39 40
     /**

+ 14 - 0
vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Compiler/ResolveInvalidReferencesPassTest.php Datei anzeigen

@@ -61,6 +61,20 @@ class ResolveInvalidReferencesPassTest extends \PHPUnit_Framework_TestCase
61 61
         $this->assertEquals(array(), $def->getProperties());
62 62
     }
63 63
 
64
+    public function testStrictFlagIsPreserved()
65
+    {
66
+        $container = new ContainerBuilder();
67
+        $container->register('bar');
68
+        $def = $container
69
+            ->register('foo')
70
+            ->addArgument(new Reference('bar', ContainerInterface::NULL_ON_INVALID_REFERENCE, false))
71
+        ;
72
+
73
+        $this->process($container);
74
+
75
+        $this->assertFalse($def->getArgument(0)->isStrict());
76
+    }
77
+
64 78
     protected function process(ContainerBuilder $container)
65 79
     {
66 80
         $pass = new ResolveInvalidReferencesPass();

+ 7 - 0
vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Dumper/PhpDumperTest.php Datei anzeigen

@@ -96,10 +96,17 @@ class PhpDumperTest extends \PHPUnit_Framework_TestCase
96 96
 
97 97
     public function testAddService()
98 98
     {
99
+        // without compilation
99 100
         $container = include self::$fixturesPath.'/containers/container9.php';
100 101
         $dumper = new PhpDumper($container);
101 102
         $this->assertEquals(str_replace('%path%', str_replace('\\','\\\\',self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR), file_get_contents(self::$fixturesPath.'/php/services9.php')), $dumper->dump(), '->dump() dumps services');
102 103
 
104
+        // with compilation
105
+        $container = include self::$fixturesPath.'/containers/container9.php';
106
+        $container->compile();
107
+        $dumper = new PhpDumper($container);
108
+        $this->assertEquals(str_replace('%path%', str_replace('\\','\\\\',self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR), file_get_contents(self::$fixturesPath.'/php/services9_compiled.php')), $dumper->dump(), '->dump() dumps services');
109
+
103 110
         $dumper = new PhpDumper($container = new ContainerBuilder());
104 111
         $container->register('foo', 'FooClass')->addArgument(new \stdClass());
105 112
         try {

+ 21 - 4
vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/containers/container9.php Datei anzeigen

@@ -14,9 +14,8 @@ $container->
14 14
     addTag('foo', array('bar' => 'bar'))->
15 15
     setFactoryClass('FooClass')->
16 16
     setFactoryMethod('getInstance')->
17
-    setArguments(array('foo', new Reference('foo.baz'), array('%foo%' => 'foo is %foo%', 'bar' => '%foo%'), true, new Reference('service_container')))->
17
+    setArguments(array('foo', new Reference('foo.baz'), array('%foo%' => 'foo is %foo%', 'foobar' => '%foo%'), true, new Reference('service_container')))->
18 18
     setProperties(array('foo' => 'bar', 'moo' => new Reference('foo.baz')))->
19
-    setScope('prototype')->
20 19
     addMethodCall('setBar', array(new Reference('bar')))->
21 20
     addMethodCall('initialize')->
22 21
     setConfigurator('sc_configure')
@@ -33,7 +32,10 @@ $container->
33 32
     setFactoryMethod('getInstance')->
34 33
     setConfigurator(array('%baz_class%', 'configureStatic1'))
35 34
 ;
36
-$container->register('foo_bar', '%foo_class%');
35
+$container->
36
+    register('foo_bar', '%foo_class%')->
37
+    setScope('prototype')
38
+;
37 39
 $container->getParameterBag()->clear();
38 40
 $container->getParameterBag()->add(array(
39 41
     'baz_class' => 'BazClass',
@@ -50,9 +52,24 @@ $container->
50 52
     addMethodCall('setBar', array(new Reference('foobaz', ContainerInterface::IGNORE_ON_INVALID_REFERENCE)))
51 53
 ;
52 54
 $container->
53
-    register('factory_service')->
55
+    register('factory_service', 'Bar')->
54 56
     setFactoryService('foo.baz')->
55 57
     setFactoryMethod('getInstance')
56 58
 ;
57 59
 
60
+$container
61
+    ->register('foo_with_inline', 'Foo')
62
+    ->addMethodCall('setBar', array(new Reference('inlined')))
63
+;
64
+$container
65
+    ->register('inlined', 'Bar')
66
+    ->setProperty('pub', 'pub')
67
+    ->addMethodCall('setBaz', array(new Reference('baz')))
68
+    ->setPublic(false)
69
+;
70
+$container
71
+    ->register('baz', 'Baz')
72
+    ->addMethodCall('setFoo', array(new Reference('foo_with_inline')))
73
+;
74
+
58 75
 return $container;

+ 9 - 3
vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/graphviz/services9.dot Datei anzeigen

@@ -3,12 +3,15 @@ digraph sc {
3 3
   node [fontsize="11" fontname="Arial" shape="record"];
4 4
   edge [fontsize="9" fontname="Arial" color="grey" arrowhead="open" arrowsize="0.5"];
5 5
 
6
-  node_foo [label="foo (alias_for_foo)\nFooClass\n", shape=record, fillcolor="#eeeeee", style="dotted"];
6
+  node_foo [label="foo (alias_for_foo)\nFooClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
7 7
   node_bar [label="bar\nFooClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
8 8
   node_foo_baz [label="foo.baz\nBazClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
9
-  node_foo_bar [label="foo_bar\nFooClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
9
+  node_foo_bar [label="foo_bar\nFooClass\n", shape=record, fillcolor="#eeeeee", style="dotted"];
10 10
   node_method_call1 [label="method_call1\nFooClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
11
-  node_factory_service [label="factory_service\n\n", shape=record, fillcolor="#eeeeee", style="filled"];
11
+  node_factory_service [label="factory_service\nBar\n", shape=record, fillcolor="#eeeeee", style="filled"];
12
+  node_foo_with_inline [label="foo_with_inline\nFoo\n", shape=record, fillcolor="#eeeeee", style="filled"];
13
+  node_inlined [label="inlined\nBar\n", shape=record, fillcolor="#eeeeee", style="filled"];
14
+  node_baz [label="baz\nBaz\n", shape=record, fillcolor="#eeeeee", style="filled"];
12 15
   node_service_container [label="service_container\nSymfony\\Component\\DependencyInjection\\ContainerBuilder\n", shape=record, fillcolor="#9999ff", style="filled"];
13 16
   node_foo2 [label="foo2\n\n", shape=record, fillcolor="#ff9999", style="filled"];
14 17
   node_foo3 [label="foo3\n\n", shape=record, fillcolor="#ff9999", style="filled"];
@@ -22,4 +25,7 @@ digraph sc {
22 25
   node_method_call1 -> node_foo2 [label="setBar()" style="dashed"];
23 26
   node_method_call1 -> node_foo3 [label="setBar()" style="dashed"];
24 27
   node_method_call1 -> node_foobaz [label="setBar()" style="dashed"];
28
+  node_foo_with_inline -> node_inlined [label="setBar()" style="dashed"];
29
+  node_inlined -> node_baz [label="setBaz()" style="dashed"];
30
+  node_baz -> node_foo_with_inline [label="setFoo()" style="dashed"];
25 31
 }

+ 13 - 0
vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/includes/classes.php Datei anzeigen

@@ -7,10 +7,23 @@ function sc_configure($instance)
7 7
 
8 8
 class BarClass
9 9
 {
10
+    protected $baz;
11
+
12
+    public function setBaz(BazClass $baz)
13
+    {
14
+        $this->baz = $baz;
15
+    }
10 16
 }
11 17
 
12 18
 class BazClass
13 19
 {
20
+    protected $foo;
21
+
22
+    public function setFoo(Foo $foo)
23
+    {
24
+        $this->foo = $foo;
25
+    }
26
+
14 27
     public function configure($instance)
15 28
     {
16 29
         $instance->configure();

+ 63 - 6
vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/php/services9.php Datei anzeigen

@@ -41,12 +41,29 @@ class ProjectServiceContainer extends Container
41 41
     }
42 42
 
43 43
     /**
44
+     * Gets the 'baz' service.
45
+     *
46
+     * This service is shared.
47
+     * This method always returns the same instance of the service.
48
+     *
49
+     * @return Baz A Baz instance.
50
+     */
51
+    protected function getBazService()
52
+    {
53
+        $this->services['baz'] = $instance = new \Baz();
54
+
55
+        $instance->setFoo($this->get('foo_with_inline'));
56
+
57
+        return $instance;
58
+    }
59
+
60
+    /**
44 61
      * Gets the 'factory_service' service.
45 62
      *
46 63
      * This service is shared.
47 64
      * This method always returns the same instance of the service.
48 65
      *
49
-     * @return Object An instance returned by foo.baz::getInstance().
66
+     * @return Bar A Bar instance.
50 67
      */
51 68
     protected function getFactoryServiceService()
52 69
     {
@@ -56,13 +73,16 @@ class ProjectServiceContainer extends Container
56 73
     /**
57 74
      * Gets the 'foo' service.
58 75
      *
76
+     * This service is shared.
77
+     * This method always returns the same instance of the service.
78
+     *
59 79
      * @return FooClass A FooClass instance.
60 80
      */
61 81
     protected function getFooService()
62 82
     {
63 83
         $a = $this->get('foo.baz');
64 84
 
65
-        $instance = call_user_func(array('FooClass', 'getInstance'), 'foo', $a, array($this->getParameter('foo') => 'foo is '.$this->getParameter('foo'), 'bar' => $this->getParameter('foo')), true, $this);
85
+        $this->services['foo'] = $instance = call_user_func(array('FooClass', 'getInstance'), 'foo', $a, array($this->getParameter('foo') => 'foo is '.$this->getParameter('foo'), 'foobar' => $this->getParameter('foo')), true, $this);
66 86
 
67 87
         $instance->setBar($this->get('bar'));
68 88
         $instance->initialize();
@@ -93,15 +113,30 @@ class ProjectServiceContainer extends Container
93 113
     /**
94 114
      * Gets the 'foo_bar' service.
95 115
      *
96
-     * This service is shared.
97
-     * This method always returns the same instance of the service.
98
-     *
99 116
      * @return Object A %foo_class% instance.
100 117
      */
101 118
     protected function getFooBarService()
102 119
     {
103 120
         $class = $this->getParameter('foo_class');
104
-        return $this->services['foo_bar'] = new $class();
121
+
122
+        return new $class();
123
+    }
124
+
125
+    /**
126
+     * Gets the 'foo_with_inline' service.
127
+     *
128
+     * This service is shared.
129
+     * This method always returns the same instance of the service.
130
+     *
131
+     * @return Foo A Foo instance.
132
+     */
133
+    protected function getFooWithInlineService()
134
+    {
135
+        $this->services['foo_with_inline'] = $instance = new \Foo();
136
+
137
+        $instance->setBar($this->get('inlined'));
138
+
139
+        return $instance;
105 140
     }
106 141
 
107 142
     /**
@@ -141,6 +176,28 @@ class ProjectServiceContainer extends Container
141 176
     }
142 177
 
143 178
     /**
179
+     * Gets the 'inlined' service.
180
+     *
181
+     * This service is shared.
182
+     * This method always returns the same instance of the service.
183
+     *
184
+     * This service is private.
185
+     * If you want to be able to request this service from the container directly,
186
+     * make it public, otherwise you might end up with broken code.
187
+     *
188
+     * @return Bar A Bar instance.
189
+     */
190
+    protected function getInlinedService()
191
+    {
192
+        $this->services['inlined'] = $instance = new \Bar();
193
+
194
+        $instance->setBaz($this->get('baz'));
195
+        $instance->pub = 'pub';
196
+
197
+        return $instance;
198
+    }
199
+
200
+    /**
144 201
      * Gets the default parameters.
145 202
      *
146 203
      * @return array An array of the default parameters

+ 238 - 0
vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/php/services9_compiled.php Datei anzeigen

@@ -0,0 +1,238 @@
1
+<?php
2
+
3
+use Symfony\Component\DependencyInjection\ContainerInterface;
4
+use Symfony\Component\DependencyInjection\Container;
5
+use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
6
+use Symfony\Component\DependencyInjection\Reference;
7
+use Symfony\Component\DependencyInjection\Parameter;
8
+use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
9
+
10
+/**
11
+ * ProjectServiceContainer
12
+ *
13
+ * This class has been auto-generated
14
+ * by the Symfony Dependency Injection Component.
15
+ */
16
+class ProjectServiceContainer extends Container
17
+{
18
+    /**
19
+     * Constructor.
20
+     */
21
+    public function __construct()
22
+    {
23
+        $this->parameters = $this->getDefaultParameters();
24
+
25
+        $this->services =
26
+        $this->scopedServices =
27
+        $this->scopeStacks = array();
28
+
29
+        $this->set('service_container', $this);
30
+
31
+        $this->scopes = array();
32
+        $this->scopeChildren = array();
33
+    }
34
+
35
+    /**
36
+     * Gets the 'bar' service.
37
+     *
38
+     * This service is shared.
39
+     * This method always returns the same instance of the service.
40
+     *
41
+     * @return FooClass A FooClass instance.
42
+     */
43
+    protected function getBarService()
44
+    {
45
+        $this->services['bar'] = $instance = new \FooClass('foo', $this->get('foo.baz'), $this->getParameter('foo_bar'));
46
+
47
+        $this->get('foo.baz')->configure($instance);
48
+
49
+        return $instance;
50
+    }
51
+
52
+    /**
53
+     * Gets the 'baz' service.
54
+     *
55
+     * This service is shared.
56
+     * This method always returns the same instance of the service.
57
+     *
58
+     * @return Baz A Baz instance.
59
+     */
60
+    protected function getBazService()
61
+    {
62
+        $this->services['baz'] = $instance = new \Baz();
63
+
64
+        $instance->setFoo($this->get('foo_with_inline'));
65
+
66
+        return $instance;
67
+    }
68
+
69
+    /**
70
+     * Gets the 'factory_service' service.
71
+     *
72
+     * This service is shared.
73
+     * This method always returns the same instance of the service.
74
+     *
75
+     * @return Bar A Bar instance.
76
+     */
77
+    protected function getFactoryServiceService()
78
+    {
79
+        return $this->services['factory_service'] = $this->get('foo.baz')->getInstance();
80
+    }
81
+
82
+    /**
83
+     * Gets the 'foo' service.
84
+     *
85
+     * This service is shared.
86
+     * This method always returns the same instance of the service.
87
+     *
88
+     * @return FooClass A FooClass instance.
89
+     */
90
+    protected function getFooService()
91
+    {
92
+        $a = $this->get('foo.baz');
93
+
94
+        $this->services['foo'] = $instance = call_user_func(array('FooClass', 'getInstance'), 'foo', $a, array('bar' => 'foo is bar', 'foobar' => 'bar'), true, $this);
95
+
96
+        $instance->setBar($this->get('bar'));
97
+        $instance->initialize();
98
+        $instance->foo = 'bar';
99
+        $instance->moo = $a;
100
+        sc_configure($instance);
101
+
102
+        return $instance;
103
+    }
104
+
105
+    /**
106
+     * Gets the 'foo.baz' service.
107
+     *
108
+     * This service is shared.
109
+     * This method always returns the same instance of the service.
110
+     *
111
+     * @return BazClass A BazClass instance.
112
+     */
113
+    protected function getFoo_BazService()
114
+    {
115
+        $this->services['foo.baz'] = $instance = call_user_func(array('BazClass', 'getInstance'));
116
+
117
+        call_user_func(array('BazClass', 'configureStatic1'), $instance);
118
+
119
+        return $instance;
120
+    }
121
+
122
+    /**
123
+     * Gets the 'foo_bar' service.
124
+     *
125
+     * @return FooClass A FooClass instance.
126
+     */
127
+    protected function getFooBarService()
128
+    {
129
+        return new \FooClass();
130
+    }
131
+
132
+    /**
133
+     * Gets the 'foo_with_inline' service.
134
+     *
135
+     * This service is shared.
136
+     * This method always returns the same instance of the service.
137
+     *
138
+     * @return Foo A Foo instance.
139
+     */
140
+    protected function getFooWithInlineService()
141
+    {
142
+        $a = new \Bar();
143
+
144
+        $this->services['foo_with_inline'] = $instance = new \Foo();
145
+
146
+        $a->setBaz($this->get('baz'));
147
+        $a->pub = 'pub';
148
+
149
+        $instance->setBar($a);
150
+
151
+        return $instance;
152
+    }
153
+
154
+    /**
155
+     * Gets the 'method_call1' service.
156
+     *
157
+     * This service is shared.
158
+     * This method always returns the same instance of the service.
159
+     *
160
+     * @return FooClass A FooClass instance.
161
+     */
162
+    protected function getMethodCall1Service()
163
+    {
164
+        require_once '%path%foo.php';
165
+
166
+        $this->services['method_call1'] = $instance = new \FooClass();
167
+
168
+        $instance->setBar($this->get('foo'));
169
+        $instance->setBar(NULL);
170
+
171
+        return $instance;
172
+    }
173
+
174
+    /**
175
+     * Gets the alias_for_foo service alias.
176
+     *
177
+     * @return FooClass An instance of the foo service
178
+     */
179
+    protected function getAliasForFooService()
180
+    {
181
+        return $this->get('foo');
182
+    }
183
+
184
+    /**
185
+     * {@inheritdoc}
186
+     */
187
+    public function getParameter($name)
188
+    {
189
+        $name = strtolower($name);
190
+
191
+        if (!array_key_exists($name, $this->parameters)) {
192
+            throw new \InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
193
+        }
194
+
195
+        return $this->parameters[$name];
196
+    }
197
+
198
+    /**
199
+     * {@inheritdoc}
200
+     */
201
+    public function hasParameter($name)
202
+    {
203
+        return array_key_exists(strtolower($name), $this->parameters);
204
+    }
205
+
206
+    /**
207
+     * {@inheritdoc}
208
+     */
209
+    public function setParameter($name, $value)
210
+    {
211
+        throw new \LogicException('Impossible to call set() on a frozen ParameterBag.');
212
+    }
213
+
214
+    /**
215
+     * {@inheritDoc}
216
+     */
217
+    public function getParameterBag()
218
+    {
219
+        if (null === $this->parameterBag) {
220
+            $this->parameterBag = new FrozenParameterBag($this->parameters);
221
+        }
222
+
223
+        return $this->parameterBag;
224
+    }
225
+    /**
226
+     * Gets the default parameters.
227
+     *
228
+     * @return array An array of the default parameters
229
+     */
230
+    protected function getDefaultParameters()
231
+    {
232
+        return array(
233
+            'baz_class' => 'BazClass',
234
+            'foo_class' => 'FooClass',
235
+            'foo' => 'bar',
236
+        );
237
+    }
238
+}

+ 20 - 4
vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/xml/services9.xml Datei anzeigen

@@ -6,14 +6,14 @@
6 6
     <parameter key="foo">bar</parameter>
7 7
   </parameters>
8 8
   <services>
9
-    <service id="foo" class="FooClass" factory-method="getInstance" scope="prototype">
9
+    <service id="foo" class="FooClass" factory-method="getInstance">
10 10
       <tag name="foo" foo="foo"/>
11 11
       <tag name="foo" bar="bar"/>
12 12
       <argument>foo</argument>
13 13
       <argument type="service" id="foo.baz"/>
14 14
       <argument type="collection">
15 15
         <argument key="%foo%">foo is %foo%</argument>
16
-        <argument key="bar">%foo%</argument>
16
+        <argument key="foobar">%foo%</argument>
17 17
       </argument>
18 18
       <argument>true</argument>
19 19
       <argument type="service" id="service_container"/>
@@ -34,7 +34,7 @@
34 34
     <service id="foo.baz" class="%baz_class%" factory-method="getInstance">
35 35
       <configurator class="%baz_class%" method="configureStatic1"/>
36 36
     </service>
37
-    <service id="foo_bar" class="%foo_class%"/>
37
+    <service id="foo_bar" class="%foo_class%" scope="prototype"/>
38 38
     <service id="method_call1" class="FooClass">
39 39
       <file>%path%foo.php</file>
40 40
       <call method="setBar">
@@ -50,7 +50,23 @@
50 50
         <argument type="service" id="foobaz" on-invalid="ignore"/>
51 51
       </call>
52 52
     </service>
53
-    <service id="factory_service" factory-method="getInstance" factory-service="foo.baz"/>
53
+    <service id="factory_service" class="Bar" factory-method="getInstance" factory-service="foo.baz"/>
54
+    <service id="foo_with_inline" class="Foo">
55
+      <call method="setBar">
56
+        <argument type="service" id="inlined"/>
57
+      </call>
58
+    </service>
59
+    <service id="inlined" class="Bar" public="false">
60
+      <property name="pub">pub</property>
61
+      <call method="setBaz">
62
+        <argument type="service" id="baz"/>
63
+      </call>
64
+    </service>
65
+    <service id="baz" class="Baz">
66
+      <call method="setFoo">
67
+        <argument type="service" id="foo_with_inline"/>
68
+      </call>
69
+    </service>
54 70
     <service id="alias_for_foo" alias="foo"/>
55 71
   </services>
56 72
 </container>

+ 19 - 2
vendor/symfony/tests/Symfony/Tests/Component/DependencyInjection/Fixtures/yaml/services9.yml Datei anzeigen

@@ -10,13 +10,12 @@ services:
10 10
       - { name: foo, foo: foo }
11 11
       - { name: foo, bar: bar }
12 12
     factory_method: getInstance
13
-    arguments: [foo, '@foo.baz', { '%foo%': 'foo is %foo%', bar: '%foo%' }, true, '@service_container']
13
+    arguments: [foo, '@foo.baz', { '%foo%': 'foo is %foo%', foobar: '%foo%' }, true, '@service_container']
14 14
     properties: { foo: bar, moo: '@foo.baz' }
15 15
     calls:
16 16
       - [setBar, ['@bar']]
17 17
       - [initialize, {  }]
18 18
       
19
-    scope: prototype
20 19
     configurator: sc_configure
21 20
   bar:
22 21
     class: FooClass
@@ -28,6 +27,7 @@ services:
28 27
     configurator: ['%baz_class%', configureStatic1]
29 28
   foo_bar:
30 29
     class: %foo_class%
30
+    scope: prototype
31 31
   method_call1:
32 32
     class: FooClass
33 33
     file: %path%foo.php
@@ -38,6 +38,23 @@ services:
38 38
       - [setBar, ['@?foobaz']]
39 39
       
40 40
   factory_service:
41
+    class: Bar
41 42
     factory_method: getInstance
42 43
     factory_service: foo.baz
44
+  foo_with_inline:
45
+    class: Foo
46
+    calls:
47
+      - [setBar, ['@inlined']]
48
+      
49
+  inlined:
50
+    class: Bar
51
+    properties: { pub: pub }
52
+    calls:
53
+      - [setBaz, ['@baz']]
54
+      
55
+  baz:
56
+    class: Baz
57
+    calls:
58
+      - [setFoo, ['@foo_with_inline']]
59
+      
43 60
   alias_for_foo: @foo

+ 6 - 2
vendor/symfony/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformerTest.php Datei anzeigen

@@ -91,7 +91,9 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
91 91
     {
92 92
         $transformer = new DateTimeToLocalizedStringTransformer('UTC', 'UTC', null, \IntlDateFormatter::LONG);
93 93
 
94
-        $this->assertEquals('03.02.2010 04:05:06 GMT+00:00', $transformer->transform($this->dateTime));
94
+        $expected = $this->isLowerThanIcuVersion('4.8') ? '03.02.2010 04:05:06 GMT+00:00' : '03.02.2010 04:05:06 GMT';
95
+
96
+        $this->assertEquals($expected, $transformer->transform($this->dateTime));
95 97
     }
96 98
 
97 99
     public function testTransformFullTime()
@@ -102,7 +104,9 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
102 104
 
103 105
         $transformer = new DateTimeToLocalizedStringTransformer('UTC', 'UTC', null, \IntlDateFormatter::FULL);
104 106
 
105
-        $this->assertEquals('03.02.2010 04:05:06 GMT+00:00', $transformer->transform($this->dateTime));
107
+        $expected = $this->isLowerThanIcuVersion('4.8') ? '03.02.2010 04:05:06 GMT+00:00' : '03.02.2010 04:05:06 GMT';
108
+
109
+        $this->assertEquals($expected, $transformer->transform($this->dateTime));
106 110
     }
107 111
 
108 112
     public function testTransformToDifferentLocale()

+ 0 - 1
vendor/symfony/tests/Symfony/Tests/Component/HttpFoundation/RequestMatcherTest.php Datei anzeigen

@@ -199,4 +199,3 @@ class RequestMatcherTest extends \PHPUnit_Framework_TestCase
199 199
         $this->assertFalse($matcher->matches($request));
200 200
     }
201 201
 }
202
-

+ 11 - 3
vendor/symfony/tests/Symfony/Tests/Component/HttpFoundation/RequestTest.php Datei anzeigen

@@ -412,9 +412,6 @@ class RequestTest extends \PHPUnit_Framework_TestCase
412 412
         $this->assertEquals('foo=1&foo=2', $request->getQueryString(), '->getQueryString() allows repeated parameters');
413 413
     }
414 414
 
415
-    /**
416
-     * @covers Symfony\Component\HttpFoundation\Request::getHost
417
-     */
418 415
     public function testGetHost()
419 416
     {
420 417
         $request = new Request();
@@ -435,6 +432,17 @@ class RequestTest extends \PHPUnit_Framework_TestCase
435 432
 
436 433
         $request->initialize(array(), array(), array(), array(), array(), array('SERVER_NAME' => 'www.exemple.com', 'HTTP_HOST' => 'www.host.com'));
437 434
         $this->assertEquals('www.host.com', $request->getHost(), '->getHost() value from Host header has priority over SERVER_NAME ');
435
+
436
+    }
437
+
438
+    /**
439
+     * @expectedException RuntimeException
440
+     */
441
+    public function testGetHostWithFakeHttpHostValue()
442
+    {
443
+        $request = new Request();
444
+        $request->initialize(array(), array(), array(), array(), array(), array('HTTP_HOST' => 'www.host.com?query=string'));
445
+        $request->getHost();
438 446
     }
439 447
 
440 448
     /**

+ 213 - 52
vendor/symfony/tests/Symfony/Tests/Component/Locale/Stub/StubIntlDateFormatterTest.php Datei anzeigen

@@ -43,14 +43,26 @@ class StubIntlDateFormatterTest extends LocaleTestCase
43 43
     public function testConstructorDefaultTimeZoneStub()
44 44
     {
45 45
         $formatter = new StubIntlDateFormatter('en', StubIntlDateFormatter::MEDIUM, StubIntlDateFormatter::SHORT);
46
-        $this->assertNull($formatter->getTimeZoneId());
46
+
47
+        // In PHP 5.5 default timezone depends on `date_default_timezone_get()` method
48
+        if ($this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
49
+            $this->assertEquals(date_default_timezone_get(), $formatter->getTimeZoneId());
50
+        } else {
51
+            $this->assertNull($formatter->getTimeZoneId());
52
+        }
47 53
     }
48 54
 
49 55
     public function testConstructorDefaultTimeZoneIntl()
50 56
     {
51 57
         $this->skipIfIntlExtensionIsNotLoaded();
52 58
         $formatter = new \IntlDateFormatter('en', StubIntlDateFormatter::MEDIUM, StubIntlDateFormatter::SHORT);
53
-        $this->assertNull($formatter->getTimeZoneId());
59
+
60
+        // In PHP 5.5 default timezone depends on `date_default_timezone_get()` method
61
+        if ($this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
62
+            $this->assertEquals(date_default_timezone_get(), $formatter->getTimeZoneId());
63
+        } else {
64
+            $this->assertNull($formatter->getTimeZoneId());
65
+        }
54 66
     }
55 67
 
56 68
     public function testFormatWithUnsupportedTimestampArgument()
@@ -123,10 +135,8 @@ class StubIntlDateFormatterTest extends LocaleTestCase
123 135
         $formatData = array(
124 136
             /* general */
125 137
             array('y-M-d', 0, '1970-1-1'),
126
-            array("yyyy.MM.dd 'at' HH:mm:ss zzz", 0, '1970.01.01 at 00:00:00 GMT+00:00'),
127 138
             array("EEE, MMM d, ''yy", 0, "Thu, Jan 1, '70"),
128 139
             array('h:mm a', 0, '12:00 AM'),
129
-            array('K:mm a, z', 0, '0:00 AM, GMT+00:00'),
130 140
             array('yyyyy.MMMM.dd hh:mm aaa', 0, '01970.January.01 12:00 AM'),
131 141
 
132 142
             /* escaping */
@@ -287,26 +297,36 @@ class StubIntlDateFormatterTest extends LocaleTestCase
287 297
             array('s', 3601, '1'),
288 298
             array('s', 3630, '30'),
289 299
             array('s', 43200, '0'), // 12 hours
290
-
291
-            /* timezone */
292
-            array('z', 0, 'GMT+00:00'),
293
-            array('zz', 0, 'GMT+00:00'),
294
-            array('zzz', 0, 'GMT+00:00'),
295
-            array('zzzz', 0, 'GMT+00:00'),
296
-            array('zzzzz', 0, 'GMT+00:00'),
297 300
         );
298 301
 
302
+        // Timezone
303
+        if (!$this->isIntlExtensionLoaded() || $this->isLowerThanIcuVersion('4.8')) {
304
+            // general
305
+            $formatData[] = array("yyyy.MM.dd 'at' HH:mm:ss zzz", 0, '1970.01.01 at 00:00:00 GMT+00:00');
306
+            $formatData[] = array('K:mm a, z', 0, '0:00 AM, GMT+00:00');
307
+
308
+            // timezone
309
+            $formatData[] = array('z', 0, 'GMT+00:00');
310
+            $formatData[] = array('zz', 0, 'GMT+00:00');
311
+            $formatData[] = array('zzz', 0, 'GMT+00:00');
312
+            $formatData[] = array('zzzz', 0, 'GMT+00:00');
313
+            $formatData[] = array('zzzzz', 0, 'GMT+00:00');
314
+        }
315
+
299 316
         // As of PHP 5.3.4, IntlDateFormatter::format() accepts DateTime instances
300 317
         if ($this->isGreaterOrEqualThanPhpVersion('5.3.4')) {
301 318
             $dateTime = new \DateTime('@0');
302 319
 
303 320
             /* general, DateTime */
304 321
             $formatData[] = array('y-M-d', $dateTime, '1970-1-1');
305
-            $formatData[] = array("yyyy.MM.dd 'at' HH:mm:ss zzz", $dateTime, '1970.01.01 at 00:00:00 GMT+00:00');
306 322
             $formatData[] = array("EEE, MMM d, ''yy", $dateTime, "Thu, Jan 1, '70");
307 323
             $formatData[] = array('h:mm a', $dateTime, '12:00 AM');
308
-            $formatData[] = array('K:mm a, z', $dateTime, '0:00 AM, GMT+00:00');
309 324
             $formatData[] = array('yyyyy.MMMM.dd hh:mm aaa', $dateTime, '01970.January.01 12:00 AM');
325
+
326
+            if (!$this->isIntlExtensionLoaded() || $this->isLowerThanIcuVersion('4.8')) {
327
+                $formatData[] = array("yyyy.MM.dd 'at' HH:mm:ss zzz", $dateTime, '1970.01.01 at 00:00:00 GMT+00:00');
328
+                $formatData[] = array('K:mm a, z', $dateTime, '0:00 AM, GMT+00:00');
329
+            }
310 330
         }
311 331
 
312 332
         return $formatData;
@@ -348,6 +368,13 @@ class StubIntlDateFormatterTest extends LocaleTestCase
348 368
 
349 369
     public function formatErrorProvider()
350 370
     {
371
+        // With PHP 5.5 IntlDateFormatter accepts empty values ('0')
372
+        if ($this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
373
+            return array(
374
+                array('y-M-d', 'foobar', 'datefmt_format: string \'foobar\' is not numeric, which would be required for it to be a valid date: U_ILLEGAL_ARGUMENT_ERROR')
375
+            );
376
+        }
377
+
351 378
         $message = 'datefmt_format: takes either an array  or an integer timestamp value : U_ILLEGAL_ARGUMENT_ERROR';
352 379
 
353 380
         if ($this->isGreaterOrEqualThanPhpVersion('5.3.4')) {
@@ -383,7 +410,7 @@ class StubIntlDateFormatterTest extends LocaleTestCase
383 410
 
384 411
     public function formatWithTimezoneProvider()
385 412
     {
386
-        return array(
413
+        $data = array(
387 414
             array(0, 'UTC', '1970-01-01 00:00:00'),
388 415
             array(0, 'GMT', '1970-01-01 00:00:00'),
389 416
             array(0, 'GMT-03:00', '1969-12-31 21:00:00'),
@@ -407,12 +434,17 @@ class StubIntlDateFormatterTest extends LocaleTestCase
407 434
             array(0, 'Europe/Dublin', '1970-01-01 01:00:00'),
408 435
             array(0, 'Europe/Warsaw', '1970-01-01 01:00:00'),
409 436
             array(0, 'Pacific/Fiji', '1970-01-01 12:00:00'),
437
+        );
410 438
 
439
+        // As of PHP 5.5, intl ext no longer fallbacks invalid time zones to UTC
440
+        if (!$this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
411 441
             // When time zone not exists, uses UTC by default
412
-            array(0, 'Foo/Bar', '1970-01-01 00:00:00'),
413
-            array(0, 'UTC+04:30', '1970-01-01 00:00:00'),
414
-            array(0, 'UTC+04:AA', '1970-01-01 00:00:00'),
415
-        );
442
+            $data[] = array(0, 'Foo/Bar', '1970-01-01 00:00:00');
443
+            $data[] = array(0, 'UTC+04:30', '1970-01-01 00:00:00');
444
+            $data[] = array(0, 'UTC+04:AA', '1970-01-01 00:00:00');
445
+        }
446
+
447
+        return $data;
416 448
     }
417 449
 
418 450
     /**
@@ -421,7 +453,13 @@ class StubIntlDateFormatterTest extends LocaleTestCase
421 453
     public function testFormatWithTimezoneFormatOptionAndDifferentThanUtcStub()
422 454
     {
423 455
         $formatter = $this->createStubFormatter('zzzz');
424
-        $formatter->setTimeZoneId('Pacific/Fiji');
456
+
457
+        if ($this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
458
+            $formatter->setTimeZone('Pacific/Fiji');
459
+        } else {
460
+            $formatter->setTimeZoneId('Pacific/Fiji');
461
+        }
462
+
425 463
         $formatter->format(0);
426 464
     }
427 465
 
@@ -429,14 +467,27 @@ class StubIntlDateFormatterTest extends LocaleTestCase
429 467
     {
430 468
         $this->skipIfIntlExtensionIsNotLoaded();
431 469
         $formatter = $this->createIntlFormatter('zzzz');
432
-        $formatter->setTimeZoneId('Pacific/Fiji');
433
-        $this->assertEquals('Fiji Time', $formatter->format(0));
470
+
471
+        if ($this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
472
+            $formatter->setTimeZone('Pacific/Fiji');
473
+        } else {
474
+            $formatter->setTimeZoneId('Pacific/Fiji');
475
+        }
476
+
477
+        $expected = $this->isGreaterOrEqualThanIcuVersion('49') ? 'Fiji Standard Time' : 'Fiji Time';
478
+        $this->assertEquals($expected, $formatter->format(0));
434 479
     }
435 480
 
436 481
     public function testFormatWithGmtTimezoneStub()
437 482
     {
438 483
         $formatter = $this->createStubFormatter('zzzz');
439
-        $formatter->setTimeZoneId('GMT+03:00');
484
+
485
+        if ($this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
486
+            $formatter->setTimeZone('GMT+03:00');
487
+        } else {
488
+            $formatter->setTimeZoneId('GMT+03:00');
489
+        }
490
+
440 491
         $this->assertEquals('GMT+03:00', $formatter->format(0));
441 492
     }
442 493
 
@@ -444,7 +495,13 @@ class StubIntlDateFormatterTest extends LocaleTestCase
444 495
     {
445 496
         $this->skipIfIntlExtensionIsNotLoaded();
446 497
         $formatter = $this->createIntlFormatter('zzzz');
447
-        $formatter->setTimeZoneId('GMT+03:00');
498
+
499
+        if ($this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
500
+            $formatter->setTimeZone('GMT+03:00');
501
+        } else {
502
+            $formatter->setTimeZoneId('GMT+03:00');
503
+        }
504
+
448 505
         $this->assertEquals('GMT+03:00', $formatter->format(0));
449 506
     }
450 507
 
@@ -464,7 +521,7 @@ class StubIntlDateFormatterTest extends LocaleTestCase
464 521
         $this->skipIfIntlExtensionIsNotLoaded();
465 522
         $this->skipIfICUVersionIsTooOld();
466 523
 
467
-        $formatter = new \IntlDateFormatter('en', StubIntlDateFormatter::MEDIUM, StubIntlDateFormatter::SHORT);
524
+        $formatter = new \IntlDateFormatter('en', StubIntlDateFormatter::MEDIUM, StubIntlDateFormatter::SHORT, 'UTC');
468 525
         $formatter->setPattern('yyyy-MM-dd HH:mm:ss');
469 526
 
470 527
         $this->assertEquals(
@@ -475,6 +532,10 @@ class StubIntlDateFormatterTest extends LocaleTestCase
475 532
 
476 533
     public function testFormatWithDefaultTimezoneStubShouldUseTheTzEnvironmentVariableWhenAvailable()
477 534
     {
535
+        if ($this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
536
+            $this->markTestSkipped('StubIntlDateFormatter in PHP 5.5 no longer depends on TZ environment.');
537
+        }
538
+
478 539
         $tz = getenv('TZ');
479 540
         putenv('TZ=Europe/London');
480 541
 
@@ -492,8 +553,31 @@ class StubIntlDateFormatterTest extends LocaleTestCase
492 553
         putenv('TZ='.$tz);
493 554
     }
494 555
 
556
+    public function testFormatWithDefaultTimezoneStubShouldUseDefaultDateTimeZoneVariable()
557
+    {
558
+        if (!$this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
559
+            $this->markTestSkipped('Only in PHP 5.5 StubIntlDateFormatter depends on default timezone (`date_default_timezone_get()`).');
560
+        }
561
+
562
+        $tz = date_default_timezone_get();
563
+        date_default_timezone_set('Europe/London');
564
+
565
+        $formatter = new \IntlDateFormatter('en', StubIntlDateFormatter::MEDIUM, StubIntlDateFormatter::SHORT);
566
+        $formatter->setPattern('yyyy-MM-dd HH:mm:ss');
567
+
568
+        $this->assertEquals(
569
+            $this->createDateTime(0)->format('Y-m-d H:i:s'),
570
+            $formatter->format(0)
571
+        );
572
+
573
+        $this->assertEquals('Europe/London', date_default_timezone_get());
574
+
575
+        // Restores TZ.
576
+        date_default_timezone_set($tz);
577
+    }
578
+
495 579
     /**
496
-     * It seems IntlDateFormatter caches the timezone id when not explicitely set via constructor or by the
580
+     * It seems IntlDateFormatter caches the timezone id when not explicitly set via constructor or by the
497 581
      * setTimeZoneId() method. Since testFormatWithDefaultTimezoneIntl() runs using the default environment
498 582
      * time zone, this test would use it too if not running in a separated process.
499 583
      *
@@ -501,6 +585,10 @@ class StubIntlDateFormatterTest extends LocaleTestCase
501 585
      */
502 586
     public function testFormatWithDefaultTimezoneIntlShouldUseTheTzEnvironmentVariableWhenAvailable()
503 587
     {
588
+        if ($this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
589
+            $this->markTestSkipped('IntlDateFormatter in PHP 5.5 no longer depends on TZ environment.');
590
+        }
591
+
504 592
         $this->skipIfIntlExtensionIsNotLoaded();
505 593
         $this->skipIfICUVersionIsTooOld();
506 594
 
@@ -522,6 +610,35 @@ class StubIntlDateFormatterTest extends LocaleTestCase
522 610
     }
523 611
 
524 612
     /**
613
+     * @runInSeparateProcess
614
+     */
615
+    public function testFormatWithDefaultTimezoneIntlShouldUseDefaultDateTimeZoneVariable()
616
+    {
617
+        if (!$this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
618
+            $this->markTestSkipped('Only in PHP 5.5 IntlDateFormatter depends on default timezone (`date_default_timezone_get()`).');
619
+        }
620
+
621
+        $this->skipIfIntlExtensionIsNotLoaded();
622
+        $this->skipIfICUVersionIsTooOld();
623
+
624
+        $tz = date_default_timezone_get();
625
+        date_default_timezone_set('Europe/Paris');
626
+
627
+        $formatter = new \IntlDateFormatter('en', StubIntlDateFormatter::MEDIUM, StubIntlDateFormatter::SHORT);
628
+        $formatter->setPattern('yyyy-MM-dd HH:mm:ss');
629
+
630
+        $this->assertEquals('Europe/Paris', date_default_timezone_get());
631
+
632
+        $this->assertEquals(
633
+            $this->createDateTime(0)->format('Y-m-d H:i:s'),
634
+            $formatter->format(0)
635
+        );
636
+
637
+        // Restores TZ.
638
+        date_default_timezone_set($tz);
639
+    }
640
+
641
+    /**
525 642
      * @expectedException Symfony\Component\Locale\Exception\NotImplementedException
526 643
      */
527 644
     public function testFormatWithUnimplementedCharsStub()
@@ -561,17 +678,21 @@ class StubIntlDateFormatterTest extends LocaleTestCase
561 678
 
562 679
     public function dateAndTimeTypeProvider()
563 680
     {
564
-        return array(
681
+        $data = array(
565 682
             array(0, StubIntlDateFormatter::FULL, StubIntlDateFormatter::NONE, 'Thursday, January 1, 1970'),
566 683
             array(0, StubIntlDateFormatter::LONG, StubIntlDateFormatter::NONE, 'January 1, 1970'),
567 684
             array(0, StubIntlDateFormatter::MEDIUM, StubIntlDateFormatter::NONE, 'Jan 1, 1970'),
568 685
             array(0, StubIntlDateFormatter::SHORT, StubIntlDateFormatter::NONE, '1/1/70'),
569
-
570
-            array(0, StubIntlDateFormatter::NONE, StubIntlDateFormatter::FULL, '12:00:00 AM GMT+00:00'),
571
-            array(0, StubIntlDateFormatter::NONE, StubIntlDateFormatter::LONG, '12:00:00 AM GMT+00:00'),
572 686
             array(0, StubIntlDateFormatter::NONE, StubIntlDateFormatter::MEDIUM, '12:00:00 AM'),
573 687
             array(0, StubIntlDateFormatter::NONE, StubIntlDateFormatter::SHORT, '12:00 AM'),
574 688
         );
689
+
690
+        if (!$this->isIntlExtensionLoaded() || $this->isLowerThanIcuVersion('4.8')) {
691
+            $data[] = array(0, StubIntlDateFormatter::NONE, StubIntlDateFormatter::FULL, '12:00:00 AM GMT+00:00');
692
+            $data[] = array(0, StubIntlDateFormatter::NONE, StubIntlDateFormatter::LONG, '12:00:00 AM GMT+00:00');
693
+        }
694
+
695
+        return $data;
575 696
     }
576 697
 
577 698
     public function testGetCalendar()
@@ -847,10 +968,7 @@ class StubIntlDateFormatterTest extends LocaleTestCase
847 968
 
848 969
     public function parseErrorProvider()
849 970
     {
850
-        return array(
851
-            array('y-M-d', '1970/1/1'),
852
-            array('yy-M-d', '70/1/1'),
853
-
971
+        $data = array(
854 972
             // 1 char month
855 973
             array('y-MMMMM-d', '1970-J-1'),
856 974
             array('y-MMMMM-d', '1970-S-1'),
@@ -859,6 +977,13 @@ class StubIntlDateFormatterTest extends LocaleTestCase
859 977
             array('y-LLLLL-d', '1970-J-1'),
860 978
             array('y-LLLLL-d', '1970-S-1'),
861 979
         );
980
+
981
+        if (!$this->isIntlExtensionLoaded() || $this->isLowerThanIcuVersion('4.8')) {
982
+            $data[] = array('y-M-d', '1970/1/1');
983
+            $data[] = array('yy-M-d', '70/1/1');
984
+        }
985
+
986
+        return $data;
862 987
     }
863 988
 
864 989
     /**
@@ -976,38 +1101,59 @@ class StubIntlDateFormatterTest extends LocaleTestCase
976 1101
      * @covers Symfony\Component\Locale\Stub\StubIntlDateFormatter::getTimeZoneId
977 1102
      * @dataProvider setTimeZoneIdProvider()
978 1103
      */
979
-    public function testSetTimeZoneIdStub($timeZoneId)
1104
+    public function testSetTimeZoneIdStub($timeZoneId, $expectedTimeZoneId)
980 1105
     {
981 1106
         $formatter = $this->createStubFormatter();
982
-        $formatter->setTimeZoneId($timeZoneId);
1107
+
1108
+        if ($this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
1109
+            $formatter->setTimeZone($timeZoneId);
1110
+        } else {
1111
+            $formatter->setTimeZoneId($timeZoneId);
1112
+        }
1113
+
983 1114
         $this->assertEquals($timeZoneId, $formatter->getTimeZoneId());
984 1115
     }
985 1116
 
986 1117
     /**
987 1118
      * @dataProvider setTimeZoneIdProvider()
988 1119
      */
989
-    public function testSetTimeZoneIdIntl($timeZoneId)
1120
+    public function testSetTimeZoneIdIntl($timeZoneId, $expectedTimeZoneId)
990 1121
     {
991 1122
         $this->skipIfIntlExtensionIsNotLoaded();
992 1123
         $formatter = $this->createIntlFormatter();
993
-        $formatter->setTimeZoneId($timeZoneId);
994
-        $this->assertEquals($timeZoneId, $formatter->getTimeZoneId());
1124
+
1125
+        if ($this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
1126
+            $formatter->setTimeZone($timeZoneId);
1127
+        } else {
1128
+            $formatter->setTimeZoneId($timeZoneId);
1129
+        }
1130
+
1131
+        $this->assertEquals($expectedTimeZoneId, $formatter->getTimeZoneId());
995 1132
     }
996 1133
 
997 1134
     public function setTimeZoneIdProvider()
998 1135
     {
999
-        return array(
1000
-            array('UTC'),
1001
-            array('GMT'),
1002
-            array('GMT-03:00'),
1003
-            array('GMT-0300'),
1004
-            array('Europe/Zurich'),
1005
-
1006
-            // When time zone not exists, uses UTC by default
1007
-            array('Foo/Bar'),
1008
-            array('GMT+00:AA'),
1009
-            array('GMT+00AA'),
1136
+        $data = array(
1137
+            array('UTC', 'UTC'),
1138
+            array('GMT', 'GMT'),
1139
+            array('GMT-03:00', 'GMT-03:00'),
1140
+            array('Europe/Zurich', 'Europe/Zurich'),
1010 1141
         );
1142
+
1143
+        // When time zone not exists, uses UTC by default
1144
+        if ($this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
1145
+            $data[] = array('GMT-0300', 'UTC');
1146
+            $data[] = array('Foo/Bar', 'UTC');
1147
+            $data[] = array('GMT+00:AA', 'UTC');
1148
+            $data[] = array('GMT+00AA', 'UTC');
1149
+        } else {
1150
+            $data[] = array('GMT-0300', 'GMT-0300');
1151
+            $data[] = array('Foo/Bar', 'Foo/Bar');
1152
+            $data[] = array('GMT+00:AA', 'GMT+00:AA');
1153
+            $data[] = array('GMT+00AA', 'GMT+00AA');
1154
+        }
1155
+
1156
+        return $data;
1011 1157
     }
1012 1158
 
1013 1159
     /**
@@ -1016,14 +1162,25 @@ class StubIntlDateFormatterTest extends LocaleTestCase
1016 1162
     public function testSetTimeZoneIdWithGmtTimeZoneWithMinutesOffsetStub()
1017 1163
     {
1018 1164
         $formatter = $this->createStubFormatter();
1019
-        $formatter->setTimeZoneId('GMT+00:30');
1165
+
1166
+        if ($this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
1167
+            $formatter->setTimeZone('GMT+00:30');
1168
+        } else {
1169
+            $formatter->setTimeZoneId('GMT+00:30');
1170
+        }
1020 1171
     }
1021 1172
 
1022 1173
     public function testSetTimeZoneIdWithGmtTimeZoneWithMinutesOffsetIntl()
1023 1174
     {
1024 1175
         $this->skipIfIntlExtensionIsNotLoaded();
1025 1176
         $formatter = $this->createIntlFormatter();
1026
-        $formatter->setTimeZoneId('GMT+00:30');
1177
+
1178
+        if ($this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
1179
+            $formatter->setTimeZone('GMT+00:30');
1180
+        } else {
1181
+            $formatter->setTimeZoneId('GMT+00:30');
1182
+        }
1183
+
1027 1184
         $this->assertEquals('GMT+00:30', $formatter->getTimeZoneId());
1028 1185
     }
1029 1186
 
@@ -1045,7 +1202,11 @@ class StubIntlDateFormatterTest extends LocaleTestCase
1045 1202
 
1046 1203
     protected function createDateTime($timestamp = null)
1047 1204
     {
1048
-        $timeZone = getenv('TZ') ?: 'UTC';
1205
+        if ($this->isGreaterOrEqualThanPhpVersion('5.5.0-dev')) {
1206
+            $timeZone = date_default_timezone_get();
1207
+        } else {
1208
+            $timeZone = getenv('TZ') ?: 'UTC';
1209
+        }
1049 1210
 
1050 1211
         $dateTime = new \DateTime();
1051 1212
         $dateTime->setTimestamp(null === $timestamp ? time() : $timestamp);

+ 23 - 18
vendor/symfony/tests/Symfony/Tests/Component/Locale/Stub/StubNumberFormatterTest.php Datei anzeigen

@@ -142,19 +142,11 @@ class StubNumberFormatterTest extends LocaleTestCase
142 142
 
143 143
     public function formatCurrencyWithCurrencyStyleProvider()
144 144
     {
145
-        return array(
145
+        $data = array(
146 146
             array(100, 'ALL', 'ALL100'),
147 147
             array(-100, 'ALL', '(ALL100)'),
148 148
             array(1000.12, 'ALL', 'ALL1,000'),
149 149
 
150
-            array(100, 'BRL', 'R$100.00'),
151
-            array(-100, 'BRL', '(R$100.00)'),
152
-            array(1000.12, 'BRL', 'R$1,000.12'),
153
-
154
-            array(100, 'CRC', '₡100'),
155
-            array(-100, 'CRC', '(₡100)'),
156
-            array(1000.12, 'CRC', '₡1,000'),
157
-
158 150
             array(100, 'JPY', '¥100'),
159 151
             array(-100, 'JPY', '(¥100)'),
160 152
             array(1000.12, 'JPY', '¥1,000'),
@@ -162,16 +154,29 @@ class StubNumberFormatterTest extends LocaleTestCase
162 154
             array(100, 'EUR', '€100.00'),
163 155
             array(-100, 'EUR', '(€100.00)'),
164 156
             array(1000.12, 'EUR', '€1,000.12'),
157
+        );
165 158
 
159
+        if (!$this->isIntlExtensionLoaded() || !$this->isSameAsIcuVersion('4.8')) {
166 160
             // Rounding checks
167
-            array(1000.121, 'BRL', 'R$1,000.12'),
168
-            array(1000.123, 'BRL', 'R$1,000.12'),
169
-            array(1000.125, 'BRL', 'R$1,000.12'),
170
-            array(1000.127, 'BRL', 'R$1,000.13'),
171
-            array(1000.129, 'BRL', 'R$1,000.13'),
172
-            array(11.50999, 'BRL', 'R$11.51'),
173
-            array(11.9999464, 'BRL', 'R$12.00')
174
-        );
161
+            $data[] = array(100, 'BRL', 'R$100.00');
162
+            $data[] = array(-100, 'BRL', '(R$100.00)');
163
+            $data[] = array(1000.12, 'BRL', 'R$1,000.12');
164
+            $data[] = array(1000.121, 'BRL', 'R$1,000.12');
165
+            $data[] = array(1000.123, 'BRL', 'R$1,000.12');
166
+            $data[] = array(1000.125, 'BRL', 'R$1,000.12');
167
+            $data[] = array(1000.127, 'BRL', 'R$1,000.13');
168
+            $data[] = array(1000.129, 'BRL', 'R$1,000.13');
169
+            $data[] = array(11.50999, 'BRL', 'R$11.51');
170
+            $data[] = array(11.9999464, 'BRL', 'R$12.00');
171
+        }
172
+
173
+        if (!$this->isIntlExtensionLoaded() || $this->isLowerThanIcuVersion('4.8')) {
174
+            $data[] = array(100, 'CRC', '₡100');
175
+            $data[] = array(-100, 'CRC', '(₡100)');
176
+            $data[] = array(1000.12, 'CRC', '₡1,000');
177
+        }
178
+
179
+        return $data;
175 180
     }
176 181
 
177 182
     /**
@@ -180,7 +185,7 @@ class StubNumberFormatterTest extends LocaleTestCase
180 185
     public function testFormatCurrencyWithCurrencyStyleSwissRoundingStub($value, $currency, $symbol, $expected)
181 186
     {
182 187
         $formatter = $this->getStubFormatterWithCurrencyStyle();
183
-        $this->assertEquals(sprintf($expected, 'CHF'), $formatter->formatCurrency($value, $currency));
188
+        $this->assertEquals(sprintf($expected, $symbol), $formatter->formatCurrency($value, $currency));
184 189
     }
185 190
 
186 191
     /**

+ 8 - 0
vendor/symfony/tests/Symfony/Tests/Component/Locale/TestCase.php Datei anzeigen

@@ -71,6 +71,14 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase
71 71
         return $icuVersion >= $version;
72 72
     }
73 73
 
74
+    protected function isSameAsIcuVersion($version)
75
+    {
76
+        $version = $this->normalizeIcuVersion($version);
77
+        $icuVersion = $this->normalizeIcuVersion($this->getIntlExtensionIcuVersion());
78
+
79
+        return $icuVersion === $version;
80
+    }
81
+
74 82
     protected function isLowerThanIcuVersion($version)
75 83
     {
76 84
         $version = $this->normalizeIcuVersion($version);

+ 18 - 3
vendor/symfony/tests/Symfony/Tests/Component/Yaml/DumperTest.php Datei anzeigen

@@ -152,11 +152,26 @@ EOF;
152 152
         $this->assertEquals($expected, $this->dumper->dump($array, 10), '->dump() takes an inline level argument');
153 153
     }
154 154
 
155
-    public function testObjectsSupport()
155
+    public function testObjectSupportEnabled()
156 156
     {
157
-        $a = array('foo' => new A(), 'bar' => 1);
157
+        $dump = $this->dumper->dump(array('foo' => new A(), 'bar' => 1), 0, 0, false, true);
158 158
 
159
-        $this->assertEquals('{ foo: !!php/object:O:30:"Symfony\Tests\Component\Yaml\A":1:{s:1:"a";s:3:"foo";}, bar: 1 }', $this->dumper->dump($a), '->dump() is able to dump objects');
159
+        $this->assertEquals('{ foo: !!php/object:O:30:"Symfony\Tests\Component\Yaml\A":1:{s:1:"a";s:3:"foo";}, bar: 1 }', $dump, '->dump() is able to dump objects');
160
+    }
161
+
162
+    public function testObjectSupportDisabledButNoExceptions()
163
+    {
164
+        $dump = $this->dumper->dump(array('foo' => new A(), 'bar' => 1));
165
+
166
+        $this->assertEquals('{ foo: null, bar: 1 }', $dump, '->dump() does not dump objects when disabled');
167
+    }
168
+
169
+    /**
170
+     * @expectedException \Symfony\Component\Yaml\Exception\DumpException
171
+     */
172
+    public function testObjectSupportDisabledWithExceptions()
173
+    {
174
+        $this->dumper->dump(array('foo' => new A(), 'bar' => 1), 0, 0, true, false);
160 175
     }
161 176
 }
162 177
 

+ 22 - 6
vendor/symfony/tests/Symfony/Tests/Component/Yaml/ParserTest.php Datei anzeigen

@@ -13,7 +13,6 @@ namespace Symfony\Tests\Component\Yaml;
13 13
 
14 14
 use Symfony\Component\Yaml\Yaml;
15 15
 use Symfony\Component\Yaml\Parser;
16
-use Symfony\Component\Yaml\Exception\ParseException;
17 16
 
18 17
 class ParserTest extends \PHPUnit_Framework_TestCase
19 18
 {
@@ -106,14 +105,31 @@ EOF;
106 105
         $this->assertEquals('foo', $this->parser->parse($yaml));
107 106
     }
108 107
 
109
-    public function testObjectsSupport()
108
+    public function testObjectSupportEnabled()
110 109
     {
111
-        $b = array('foo' => new B(), 'bar' => 1);
112
-        $this->assertEquals($this->parser->parse(<<<EOF
110
+        $input = <<<EOF
113 111
 foo: !!php/object:O:30:"Symfony\Tests\Component\Yaml\B":1:{s:1:"b";s:3:"foo";}
114 112
 bar: 1
115
-EOF
116
-        ), $b, '->parse() is able to dump objects');
113
+EOF;
114
+        $this->assertEquals(array('foo' => new B(), 'bar' => 1), $this->parser->parse($input, false, true), '->parse() is able to parse objects');
115
+    }
116
+
117
+    public function testObjectSupportDisabledButNoExceptions()
118
+    {
119
+        $input = <<<EOF
120
+foo: !!php/object:O:30:"Symfony\Tests\Component\Yaml\B":1:{s:1:"b";s:3:"foo";}
121
+bar: 1
122
+EOF;
123
+
124
+        $this->assertEquals(array('foo' => null, 'bar' => 1), $this->parser->parse($input), '->parse() does not parse objects');
125
+    }
126
+
127
+    /**
128
+     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
129
+     */
130
+    public function testObjectsSupportDisabledWithExceptions()
131
+    {
132
+        $this->parser->parse('foo: !!php/object:O:30:"Symfony\Tests\Component\Yaml\B":1:{s:1:"b";s:3:"foo";}', true, false);
117 133
     }
118 134
 
119 135
     public function testNonUtf8Exception()

Datei-Diff unterdrückt, da er zu groß ist
+ 7 - 1479
web/css/3a5c85c.css


+ 0 - 89
web/css/3a5c85c_base_2.css Datei anzeigen

@@ -1,89 +0,0 @@
1
-/* --- STYLES DE BASE --- */
2
-
3
-/* Page */
4
-html {
5
-  font-size: 100%; /* Évite un bug d'IE 6-7. (1) */
6
-}
7
-body {
8
-  margin: 0;
9
-  padding: 0; /* Remettre à zéro si nécessaire. */
10
-  /* Pensez à utiliser une collection de polices (2), par ex:
11
-  font-family: Arial, Helvetica, FreeSans, sans-serif; */
12
-  /*font-size: .8em;*/ /* À adapter pour la police choisie. (3) */
13
-  color: black;
14
-  /*background-color: #9AE4E8;*/
15
-  font: 13.34px helvetica,arial,freesans,clean,sans-serif;
16
-  line-height: 1.4;
17
-}
18
-
19
-/* Titres */
20
-h1, h2, h3, h4, h5, h6 {
21
-  margin: 1em 0 .5em 0; /* Rapproche le titre du texte. (5) */
22
-  line-height: 1.2;
23
-  font-weight: bold; /* Valeur par défaut. (6) */
24
-  font-style: normal;
25
-}
26
-h1 {
27
-  font-size: 1.75em;
28
-}
29
-h2 {
30
-  font-size: 1.5em;
31
-}
32
-h3 {
33
-  font-size: 1.25em;
34
-}
35
-h4 {
36
-  font-size: 1em;
37
-}
38
-
39
-/* Listes */
40
-ul, ol {
41
-  margin: .75em 0 .75em 32px;
42
-  padding: 0;
43
-}
44
-
45
-/* Paragraphes */
46
-p {
47
-  margin: .75em 0; /* Marges plus faibles que par défaut. (7) */
48
-}
49
-address {
50
-  margin: .75em 0;
51
-  font-style: normal;
52
-}
53
-
54
-/* Liens */
55
-a {
56
-  text-decoration: underline;
57
-}
58
-a:link {
59
-  /*color: #11C;*/
60
-}
61
-a:visited {
62
-  color: #339;
63
-}
64
-/*a:hover, a:focus, a:active {
65
-  color: #00F;
66
-}*/
67
-
68
-/* Pas de bordure autour des images dans les liens */
69
-a img {
70
-  border: none;
71
-}
72
-
73
-/* Divers éléments de type en-ligne (8) */
74
-em {
75
-  font-style: italic;
76
-}
77
-strong {
78
-  font-weight: bold;
79
-}
80
-
81
-/* Formulaires */
82
-form, fieldset {
83
-  margin: 0;
84
-  padding: 0;
85
-  border: none;
86
-}
87
-input, button, select {
88
-  vertical-align: middle; /* Solution pb. d'alignement. (9) */
89
-}

+ 7 - 0
web/css/3a5c85c_main_5.css Datei anzeigen

@@ -1674,4 +1674,11 @@ div#presubscription input[type="submit"]
1674 1674
 ul.element_thumb_actions li.score
1675 1675
 {
1676 1676
   color: black;
1677
+}
1678
+
1679
+div#myaccount_preferences input[type="submit"]
1680
+{
1681
+  float: right;
1682
+  margin-right: 7px;
1683
+  margin-top: 5px;
1677 1684
 }

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1392
web/css/3a5c85c_old_3.css


+ 31 - 17
web/js/f792d24.js Datei anzeigen

@@ -3379,16 +3379,18 @@ function Autoplay()
3379 3379
   var _playlist = new Array();
3380 3380
   var _player = null;
3381 3381
   var _current_index = 0;
3382
+  var _link = null;
3382 3383
   
3383
-  this.start = function()
3384
+  this.start = function(link)
3384 3385
   {
3386
+    _link = link;
3385 3387
     open_popin_dialog('autoplay');
3386 3388
     initializePlaylist(this.play);
3387 3389
   }
3388 3390
   
3389 3391
   var initializePlaylist = function(callback)
3390 3392
   {
3391
-    JQueryJson($('a#autoplay_launch').attr('href'), {}, function(response){
3393
+    JQueryJson(_link.attr('href'), {}, function(response){
3392 3394
       if (response.status == 'success')
3393 3395
       {
3394 3396
         if (response.data.length)
@@ -3506,8 +3508,9 @@ $(document).ready(function() {
3506 3508
   
3507 3509
   window.autoplay = new Autoplay();
3508 3510
   
3509
-  $('a#autoplay_launch').click(function(){
3510
-    window.autoplay.start();
3511
+  $('a.autoplay_link').live('click', function(){
3512
+    window.autoplay.start($(this));
3513
+    $('html, body').animate({ scrollTop: 0 }, 'fast');
3511 3514
     return false;
3512 3515
   });
3513 3516
   
@@ -3901,7 +3904,11 @@ $(document).ready(function(){
3901 3904
       window.search_tag_prompt_connector.initializeTags([tag]);
3902 3905
       
3903 3906
       form.submit();
3907
+      
3904 3908
     }
3909
+    
3910
+    $('html, body').animate({ scrollTop: 0 }, 'fast');
3911
+    return false;
3905 3912
   });
3906 3913
   
3907 3914
   function element_last_opened(li)
@@ -3913,7 +3920,7 @@ $(document).ready(function(){
3913 3920
   // Affichage un/des embed
3914 3921
   // 1328283150_media-playback-start.png
3915 3922
   // 1328283201_emblem-symbolic-link.png
3916
-  $('a.element_embed_open_link').live("click", function(){
3923
+  $('a.element_embed_open_link, a.element_name_embed_open_link').live("click", function(){
3917 3924
     
3918 3925
      var li = $(this).parents('li.element');
3919 3926
      
@@ -3936,17 +3943,17 @@ $(document).ready(function(){
3936 3943
      return false;
3937 3944
   });
3938 3945
   
3939
-  $('a.element_name_embed_open_link').live("click", function(){
3940
-    
3941
-     var li = $(this).parents('li.element');
3942
-     
3943
-     element_last_opened(li);
3944
-     li.find('a.element_embed_close_link').show();
3945
-     li.find('a.element_embed_open_link_text').hide();
3946
-     li.find('div.element_embed').show();
3947
-     
3948
-     return false;
3949
-  });
3946
+  //$('a.element_name_embed_open_link').live("click", function(){
3947
+  //  
3948
+  //   var li = $(this).parents('li.element');
3949
+  //   
3950
+  //   element_last_opened(li);
3951
+  //   li.find('a.element_embed_close_link').show();
3952
+  //   li.find('a.element_embed_open_link_text').hide();
3953
+  //   li.find('div.element_embed').show();
3954
+  //   
3955
+  //   return false;
3956
+  //});
3950 3957
 
3951 3958
   // Fermeture du embed si demandé
3952 3959
   $('a.element_embed_close_link').live("click", function(){
@@ -5130,7 +5137,14 @@ $(document).ready(function(){
5130 5137
     a_more.attr('href', $('input#more_elements_url').val()+'/'+array2json(tags_ids_for_filter));
5131 5138
     
5132 5139
     // On adapte aussi le lien de l'autoplay
5133
-    $('a#autoplay_launch').attr('href', $('input#autoplay_url').val()+'/'+array2json(tags_ids_for_filter));
5140
+    //$('a.autoplay_link').attr('href', $('input#autoplay_url').val()+'/'+array2json(tags_ids_for_filter));
5141
+    //$('a.autoplay_link').each(function(){
5142
+    //  console.debug($(this));
5143
+    //  console.log(
5144
+    //    str_replace('__ELEMENT_ID__', $(this).data('element_id'), $('input#autoplay_url').val()+'/'+array2json(tags_ids_for_filter))
5145
+    //  );
5146
+    //  $(this).attr('href', str_replace('__ELEMENT_ID__', $(this).data('element_id'), $('input#autoplay_url').val()+'/'+array2json(tags_ids_for_filter)));
5147
+    //});
5134 5148
     
5135 5149
     return check_timelaps_and_find_with_tags(link, new Date().getTime(), false);
5136 5150
   }

+ 7 - 4
web/js/f792d24_autoplay_14.js Datei anzeigen

@@ -4,16 +4,18 @@ function Autoplay()
4 4
   var _playlist = new Array();
5 5
   var _player = null;
6 6
   var _current_index = 0;
7
+  var _link = null;
7 8
   
8
-  this.start = function()
9
+  this.start = function(link)
9 10
   {
11
+    _link = link;
10 12
     open_popin_dialog('autoplay');
11 13
     initializePlaylist(this.play);
12 14
   }
13 15
   
14 16
   var initializePlaylist = function(callback)
15 17
   {
16
-    JQueryJson($('a#autoplay_launch').attr('href'), {}, function(response){
18
+    JQueryJson(_link.attr('href'), {}, function(response){
17 19
       if (response.status == 'success')
18 20
       {
19 21
         if (response.data.length)
@@ -131,8 +133,9 @@ $(document).ready(function() {
131 133
   
132 134
   window.autoplay = new Autoplay();
133 135
   
134
-  $('a#autoplay_launch').click(function(){
135
-    window.autoplay.start();
136
+  $('a.autoplay_link').live('click', function(){
137
+    window.autoplay.start($(this));
138
+    $('html, body').animate({ scrollTop: 0 }, 'fast');
136 139
     return false;
137 140
   });
138 141
   

+ 24 - 13
web/js/f792d24_muzich_15.js Datei anzeigen

@@ -375,7 +375,11 @@ $(document).ready(function(){
375 375
       window.search_tag_prompt_connector.initializeTags([tag]);
376 376
       
377 377
       form.submit();
378
+      
378 379
     }
380
+    
381
+    $('html, body').animate({ scrollTop: 0 }, 'fast');
382
+    return false;
379 383
   });
380 384
   
381 385
   function element_last_opened(li)
@@ -387,7 +391,7 @@ $(document).ready(function(){
387 391
   // Affichage un/des embed
388 392
   // 1328283150_media-playback-start.png
389 393
   // 1328283201_emblem-symbolic-link.png
390
-  $('a.element_embed_open_link').live("click", function(){
394
+  $('a.element_embed_open_link, a.element_name_embed_open_link').live("click", function(){
391 395
     
392 396
      var li = $(this).parents('li.element');
393 397
      
@@ -410,17 +414,17 @@ $(document).ready(function(){
410 414
      return false;
411 415
   });
412 416
   
413
-  $('a.element_name_embed_open_link').live("click", function(){
414
-    
415
-     var li = $(this).parents('li.element');
416
-     
417
-     element_last_opened(li);
418
-     li.find('a.element_embed_close_link').show();
419
-     li.find('a.element_embed_open_link_text').hide();
420
-     li.find('div.element_embed').show();
421
-     
422
-     return false;
423
-  });
417
+  //$('a.element_name_embed_open_link').live("click", function(){
418
+  //  
419
+  //   var li = $(this).parents('li.element');
420
+  //   
421
+  //   element_last_opened(li);
422
+  //   li.find('a.element_embed_close_link').show();
423
+  //   li.find('a.element_embed_open_link_text').hide();
424
+  //   li.find('div.element_embed').show();
425
+  //   
426
+  //   return false;
427
+  //});
424 428
 
425 429
   // Fermeture du embed si demandé
426 430
   $('a.element_embed_close_link').live("click", function(){
@@ -1604,7 +1608,14 @@ $(document).ready(function(){
1604 1608
     a_more.attr('href', $('input#more_elements_url').val()+'/'+array2json(tags_ids_for_filter));
1605 1609
     
1606 1610
     // On adapte aussi le lien de l'autoplay
1607
-    $('a#autoplay_launch').attr('href', $('input#autoplay_url').val()+'/'+array2json(tags_ids_for_filter));
1611
+    //$('a.autoplay_link').attr('href', $('input#autoplay_url').val()+'/'+array2json(tags_ids_for_filter));
1612
+    //$('a.autoplay_link').each(function(){
1613
+    //  console.debug($(this));
1614
+    //  console.log(
1615
+    //    str_replace('__ELEMENT_ID__', $(this).data('element_id'), $('input#autoplay_url').val()+'/'+array2json(tags_ids_for_filter))
1616
+    //  );
1617
+    //  $(this).attr('href', str_replace('__ELEMENT_ID__', $(this).data('element_id'), $('input#autoplay_url').val()+'/'+array2json(tags_ids_for_filter)));
1618
+    //});
1608 1619
     
1609 1620
     return check_timelaps_and_find_with_tags(link, new Date().getTime(), false);
1610 1621
   }