Timber - Version 1.19.0

Version Description

Changes for Theme Developers

  • You can now get dimensions of SVG images #2421 #2432 (thanks @vyskoczilova)
  • You can pass additional variables to the timber/loader/loader filter #2324 (thanks @neojp)

Fixes and improvements * Fix for double quotes that might appear in a "Read More" in Gutenberg #2337 #2343 (thanks @Keysaw) * Fix implementation of WP's get_the_date and get_the_time filters #2350 (thanks @shvlv) * Fix for how the wp:more tag works with noteaser #2348 #2351 (thanks @jhhazelaar) * Fix for two cases of where home_url() should be used instead of site_url() #2356 #2357 (thanks @Levdbas) * Fix for where Timber::get_sites returned the same locale for all sites #1908 #2369 (thanks @highbelt) * Use the latest release of Upstatement/Routes (0.5 => 0.8) #2373 (thanks @jverneaut) * Fix for sidebar retrieval in PHP 8 #2385 (thanks @marciojc) * Fix for proper ignoring of the Cache directory on case-insensitive file systems #342 #2416 (thanks @toonvandeputte)

Download this release

Release Info

Developer jarednova
Plugin Icon 128x128 Timber
Version 1.19.0
Comparing to
See all releases

Code changes from version 1.18.2 to 1.19.0

Files changed (91) hide show
  1. README.md +11 -7
  2. lib/Cache/KeyGenerator.php +1 -1
  3. lib/Cache/WPObjectCacheAdapter.php +1 -1
  4. lib/Image.php +41 -4
  5. lib/ImageHelper.php +3 -1
  6. lib/Integrations/WPML.php +1 -0
  7. lib/Loader.php +4 -4
  8. lib/Post.php +9 -9
  9. lib/Site.php +1 -1
  10. lib/Timber.php +2 -2
  11. lib/URLHelper.php +1 -1
  12. readme.txt +18 -1
  13. timber-starter-theme/README.md +1 -1
  14. timber.php +1 -1
  15. vendor/altorouter/altorouter/AltoRouter.php +300 -292
  16. vendor/altorouter/altorouter/LICENSE.md +9 -0
  17. vendor/altorouter/altorouter/README.md +11 -8
  18. vendor/altorouter/altorouter/composer.json +4 -3
  19. vendor/altorouter/altorouter/phpcs.xml +10 -0
  20. vendor/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Node/CacheNode.php +0 -71
  21. vendor/autoload.php +1 -1
  22. vendor/composer/autoload_classmap.php +23 -17
  23. vendor/composer/autoload_psr4.php +1 -1
  24. vendor/composer/autoload_real.php +7 -7
  25. vendor/composer/autoload_static.php +30 -24
  26. vendor/composer/installed.json +117 -94
  27. vendor/composer/installers/.github/workflows/continuous-integration.yml +76 -0
  28. vendor/composer/installers/.github/workflows/lint.yml +30 -0
  29. vendor/composer/installers/.github/workflows/phpstan.yml +51 -0
  30. vendor/composer/installers/composer.json +17 -7
  31. vendor/composer/installers/phpstan.neon.dist +10 -0
  32. vendor/composer/installers/src/Composer/Installers/BaseInstaller.php +6 -6
  33. vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php +3 -9
  34. vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php +1 -3
  35. vendor/composer/installers/src/Composer/Installers/Installer.php +28 -10
  36. vendor/composer/installers/src/Composer/Installers/MauticInstaller.php +29 -6
  37. vendor/composer/installers/src/Composer/Installers/MiaoxingInstaller.php +10 -0
  38. vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php +1 -0
  39. vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php +2 -1
  40. vendor/composer/installers/src/Composer/Installers/OxidInstaller.php +1 -1
  41. vendor/composer/installers/src/Composer/Installers/PantheonInstaller.php +12 -0
  42. vendor/composer/installers/src/Composer/Installers/ProcessWireInstaller.php +22 -0
  43. vendor/composer/installers/src/Composer/Installers/StarbugInstaller.php +12 -0
  44. vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php +1 -3
  45. vendor/composer/installers/src/Composer/Installers/TaoInstaller.php +18 -0
  46. vendor/composer/installers/src/Composer/Installers/TastyIgniterInstaller.php +32 -0
  47. vendor/composer/installers/src/Composer/Installers/WinterInstaller.php +58 -0
  48. vendor/symfony/polyfill-ctype/bootstrap.php +11 -11
  49. vendor/symfony/polyfill-ctype/composer.json +1 -1
  50. vendor/{asm89/twig-cache-extension → twig/cache-extension}/.gitignore +0 -0
  51. vendor/{asm89/twig-cache-extension → twig/cache-extension}/.travis.yml +0 -0
  52. vendor/{asm89/twig-cache-extension → twig/cache-extension}/LICENSE +0 -0
  53. vendor/{asm89/twig-cache-extension → twig/cache-extension}/README.md +14 -14
  54. vendor/{asm89/twig-cache-extension → twig/cache-extension}/composer.json +8 -6
  55. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheProvider/DoctrineCacheAdapter.php +2 -2
  56. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheProvider/PsrCacheAdapter.php +2 -2
  57. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheProviderInterface.php +1 -1
  58. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategy/BlackholeCacheStrategy.php +4 -4
  59. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategy/GenerationalCacheStrategy.php +4 -4
  60. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategy/IndexedChainingCacheStrategy.php +4 -4
  61. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategy/KeyGeneratorInterface.php +1 -1
  62. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategy/LifetimeCacheStrategy.php +4 -4
  63. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategyInterface.php +1 -1
  64. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Exception/BaseException.php +1 -1
  65. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Exception/InvalidCacheKeyException.php +1 -1
  66. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Exception/InvalidCacheLifetimeException.php +1 -1
  67. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Exception/NonExistingStrategyException.php +1 -1
  68. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Exception/NonExistingStrategyKeyException.php +1 -1
  69. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Extension.php +5 -13
  70. vendor/twig/cache-extension/lib/Twig/CacheExtension/Node/CacheNode.php +71 -0
  71. vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/TokenParser/Cache.php +10 -8
  72. vendor/{asm89/twig-cache-extension → twig/cache-extension}/phpunit.xml.dist +1 -1
  73. vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/CacheProvider/DoctrineCacheAdapterTest.php +3 -3
  74. vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/CacheStrategy/GenerationCacheStrategyTest.php +5 -5
  75. vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/CacheStrategy/IndexedChainingCacheStrategyTest.php +5 -5
  76. vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/CacheStrategy/LifetimeCacheStrategyTest.php +4 -4
  77. vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/FunctionalExtensionTest.php +13 -13
  78. vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/annotation_expression.twig +0 -0
  79. vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/annotation_not_string.twig +0 -0
  80. vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/gcs_value.twig +0 -0
  81. vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/gcs_value_v2.twig +0 -0
  82. vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/ics_no_key.twig +0 -0
  83. vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/ics_value.twig +0 -0
  84. vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/lcs_value.twig +0 -0
  85. vendor/{asm89/twig-cache-extension → twig/cache-extension}/test/bootstrap.php +0 -0
  86. vendor/upstatement/routes/.travis.yml +13 -3
  87. vendor/upstatement/routes/Routes.php +3 -1
  88. vendor/upstatement/routes/composer.json +23 -18
  89. vendor/upstatement/routes/composer.lock +0 -1374
  90. vendor/upstatement/routes/tests/single.php +1 -0
  91. vendor/upstatement/routes/tests/test-routes.php +3 -3
README.md CHANGED
@@ -10,17 +10,16 @@ By
10
  [Coby Tamayo](https://github.com/acobster) ([@cobytamayo](https://keybase.io/acobster)),
11
  [Upstatement](https://twitter.com/upstatement) and [hundreds of other GitHub contributors](https://github.com/timber/timber/graphs/contributors)
12
 
13
- [![Build Status](https://img.shields.io/travis/timber/timber/master.svg?style=flat-square)](https://travis-ci.com/github/timber/timber)
14
  [![Coverage Status](https://img.shields.io/coveralls/timber/timber.svg?style=flat-square)](https://coveralls.io/github/timber/timber)
15
  [![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/timber/timber.svg?style=flat-square)](https://scrutinizer-ci.com/g/timber/timber/?branch=master)
16
  [![Latest Stable Version](https://img.shields.io/packagist/v/timber/timber.svg?style=flat-square)](https://packagist.org/packages/timber/timber)
17
  [![WordPress Download Count](https://img.shields.io/wordpress/plugin/dt/timber-library.svg?style=flat-square)](https://wordpress.org/plugins/timber-library/)
18
- [![Join the chat at https://gitter.im/timber/timber](https://img.shields.io/gitter/room/timber/timber.svg?style=flat-square)](https://gitter.im/timber/timber?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
19
  [![WordPress Rating](https://img.shields.io/wordpress/plugin/r/timber-library.svg?style=flat-square)](https://wordpress.org/support/plugin/timber-library/reviews/)
20
 
21
 
22
  ### Because WordPress is awesome, but the_loop isn't
23
- Timber helps you create fully-customized WordPress themes faster with more sustainable code. With Timber, you write your HTML using the [Twig Template Engine](http://twig.sensiolabs.org/) separate from your PHP files.
24
 
25
  This cleans up your theme code so, for example, your PHP file can focus on being the data/logic, while your Twig file can focus 100% on the HTML and display.
26
 
@@ -93,7 +92,10 @@ Timber is great for any WordPress developer who cares about writing good, mainta
93
  * [**Timber Debug Bar**](https://github.com/timber/debug-bar-timber) Adds a debug bar panel that will show you which template is in-use and the data sent to your twig file.
94
 
95
  #### Related Timber Projects
 
96
  * [**Pine**](https://github.com/azeemhassni/pine) A CLI _installer_ for Timber
 
 
97
  * [**Timber CLI**](https://github.com/nclud/wp-timber-cli) A CLI for Timber
98
  * [**Timber Commented Include**](https://github.com/djboris88/timber-commented-include) Debug output via HTML comments before and after each include statement in Twig
99
  * [**Timber Debugger**](https://github.com/djboris88/timber-debugger) Package that provides extra debugging options for Timber
@@ -103,13 +105,15 @@ Timber is great for any WordPress developer who cares about writing good, mainta
103
  * [**Timber Sugar**](https://github.com/timber/sugar) A catch-all for goodies to use w Timber
104
  * [**Timber WebLink Extension**](https://github.com/nlemoine/timber-weblink-extension) Provides Twig functions to manage the Link HTTP header needed for Web Linking when using HTTP/2 Server Push as well as Resource Hints
105
  * [**Timmy**](https://github.com/MINDKomm/Timmy) Advanced image manipulation for Timber
106
- * [**Timber ACF WP Blocks**](https://github.com/palmiak/timber-acf-wp-blocks) Easy ACF Gutenberg blocks creation
 
107
 
108
  #### Projects that use Timber
109
  * [**Branch**](https://github.com/JeyKeu/branch/) Bootstrap 3 + Timber = Branch starter theme!
110
  * [**Flynt**](https://flyntwp.com/) a component based WordPress starter theme built on Timber and ACF Pro
111
  * [**Gantry5**](https://wordpress.org/plugins/gantry5/) a framework for theme development
112
- * [**Seedling**](https://github.com/maxdmyers/seedling) A starter theme using Bootstrap 4
 
113
 
114
 
115
  #### Helpful Links
@@ -123,8 +127,8 @@ Please post on [StackOverflow under the "Timber" tag](http://stackoverflow.com/q
123
  #### Should I use it?
124
  It's MIT-licensed, so please use in personal or commercial work. Just don't re-sell it. Timber is used on [tens of thousands of sites](https://www.upstatement.com/timber/#showcase) (and tons more we don't know about)
125
 
126
- #### Contributing
127
- We love PRs! Read the [Contributor Guidelines](https://github.com/timber/timber/blob/master/CONTRIBUTING.md) for more info.
128
 
129
  ## Documentation
130
 
10
  [Coby Tamayo](https://github.com/acobster) ([@cobytamayo](https://keybase.io/acobster)),
11
  [Upstatement](https://twitter.com/upstatement) and [hundreds of other GitHub contributors](https://github.com/timber/timber/graphs/contributors)
12
 
13
+ [![Build Status](https://img.shields.io/travis/timber/timber/master?style=flat-square)](https://app.travis-ci.com/github/timber/timber/branches)
14
  [![Coverage Status](https://img.shields.io/coveralls/timber/timber.svg?style=flat-square)](https://coveralls.io/github/timber/timber)
15
  [![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/timber/timber.svg?style=flat-square)](https://scrutinizer-ci.com/g/timber/timber/?branch=master)
16
  [![Latest Stable Version](https://img.shields.io/packagist/v/timber/timber.svg?style=flat-square)](https://packagist.org/packages/timber/timber)
17
  [![WordPress Download Count](https://img.shields.io/wordpress/plugin/dt/timber-library.svg?style=flat-square)](https://wordpress.org/plugins/timber-library/)
 
18
  [![WordPress Rating](https://img.shields.io/wordpress/plugin/r/timber-library.svg?style=flat-square)](https://wordpress.org/support/plugin/timber-library/reviews/)
19
 
20
 
21
  ### Because WordPress is awesome, but the_loop isn't
22
+ Timber helps you create fully-customized WordPress themes faster with more sustainable code. With Timber, you write your HTML using the [Twig Template Engine](https://twig.symfony.com/) separate from your PHP files.
23
 
24
  This cleans up your theme code so, for example, your PHP file can focus on being the data/logic, while your Twig file can focus 100% on the HTML and display.
25
 
92
  * [**Timber Debug Bar**](https://github.com/timber/debug-bar-timber) Adds a debug bar panel that will show you which template is in-use and the data sent to your twig file.
93
 
94
  #### Related Timber Projects
95
+ * [**Editor for Timber**](https://wordpress.org/plugins/editor-for-timber/) Edit your Twig files from the WordPress admin
96
  * [**Pine**](https://github.com/azeemhassni/pine) A CLI _installer_ for Timber
97
+ * [**Query Monitor Twig Profile**](https://github.com/NielsdeBlaauw/query-monitor-twig-profile) An add-on for [Query Monitor](https://wordpress.org/plugins/query-monitor/) to see what's going on inside your Twig files (automatically works with Timber!)
98
+ * [**Timber ACF WP Blocks**](https://github.com/palmiak/timber-acf-wp-blocks) Easy ACF Gutenberg blocks creation
99
  * [**Timber CLI**](https://github.com/nclud/wp-timber-cli) A CLI for Timber
100
  * [**Timber Commented Include**](https://github.com/djboris88/timber-commented-include) Debug output via HTML comments before and after each include statement in Twig
101
  * [**Timber Debugger**](https://github.com/djboris88/timber-debugger) Package that provides extra debugging options for Timber
105
  * [**Timber Sugar**](https://github.com/timber/sugar) A catch-all for goodies to use w Timber
106
  * [**Timber WebLink Extension**](https://github.com/nlemoine/timber-weblink-extension) Provides Twig functions to manage the Link HTTP header needed for Web Linking when using HTTP/2 Server Push as well as Resource Hints
107
  * [**Timmy**](https://github.com/MINDKomm/Timmy) Advanced image manipulation for Timber
108
+
109
+
110
 
111
  #### Projects that use Timber
112
  * [**Branch**](https://github.com/JeyKeu/branch/) Bootstrap 3 + Timber = Branch starter theme!
113
  * [**Flynt**](https://flyntwp.com/) a component based WordPress starter theme built on Timber and ACF Pro
114
  * [**Gantry5**](https://wordpress.org/plugins/gantry5/) a framework for theme development
115
+ * [**Hozokit**](https://github.com/csalmeida/hozokit) a component based starter theme
116
+ * [**Seedling**](https://github.com/maxdmyers/seedling) a starter theme using Bootstrap 4
117
 
118
 
119
  #### Helpful Links
127
  #### Should I use it?
128
  It's MIT-licensed, so please use in personal or commercial work. Just don't re-sell it. Timber is used on [tens of thousands of sites](https://www.upstatement.com/timber/#showcase) (and tons more we don't know about)
129
 
130
+ #### Contributing & Community
131
+ We love PRs! Read the [Contributor Guidelines](https://github.com/timber/timber/blob/master/CONTRIBUTING.md) for more info. Say hello, share your tips/work, and spread the love on Twitter at [@TimberWP](https://twitter.com/TimberWP).
132
 
133
  ## Documentation
134
 
lib/Cache/KeyGenerator.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  namespace Timber\Cache;
4
 
5
- use Asm89\Twig\CacheExtension\CacheStrategy\KeyGeneratorInterface;
6
 
7
  class KeyGenerator implements KeyGeneratorInterface {
8
 
2
 
3
  namespace Timber\Cache;
4
 
5
+ use Twig\CacheExtension\CacheStrategy\KeyGeneratorInterface;
6
 
7
  class KeyGenerator implements KeyGeneratorInterface {
8
 
lib/Cache/WPObjectCacheAdapter.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php namespace Timber\Cache;
2
 
3
- use Asm89\Twig\CacheExtension\CacheProviderInterface;
4
  use Timber\Loader;
5
 
6
  class WPObjectCacheAdapter implements CacheProviderInterface {
1
  <?php namespace Timber\Cache;
2
 
3
+ use Twig\CacheExtension\CacheProviderInterface;
4
  use Timber\Loader;
5
 
6
  class WPObjectCacheAdapter implements CacheProviderInterface {
lib/Image.php CHANGED
@@ -129,14 +129,51 @@ class Image extends Post implements CoreInterface {
129
  return $this->get_dimensions_loaded($dim);
130
  }
131
  if ( file_exists($this->file_loc) && filesize($this->file_loc) ) {
132
- list($width, $height) = getimagesize($this->file_loc);
133
- $this->_dimensions = array();
134
- $this->_dimensions[0] = $width;
135
- $this->_dimensions[1] = $height;
 
 
 
 
 
 
 
136
  return $this->get_dimensions_loaded($dim);
137
  }
138
  }
139
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  /**
141
  * @internal
142
  * @param string|null $dim
129
  return $this->get_dimensions_loaded($dim);
130
  }
131
  if ( file_exists($this->file_loc) && filesize($this->file_loc) ) {
132
+ if ( ImageHelper::is_svg( $this->file_loc ) ) {
133
+ $svg_size = $this->svgs_get_dimensions( $this->file_loc );
134
+ $this->_dimensions = array();
135
+ $this->_dimensions[0] = $svg_size->width;
136
+ $this->_dimensions[1] = $svg_size->height;
137
+ } else {
138
+ list($width, $height) = getimagesize($this->file_loc);
139
+ $this->_dimensions = array();
140
+ $this->_dimensions[0] = $width;
141
+ $this->_dimensions[1] = $height;
142
+ }
143
  return $this->get_dimensions_loaded($dim);
144
  }
145
  }
146
 
147
+ /**
148
+ * Retrieve dimensions from SVG file
149
+ *
150
+ * @internal
151
+ * @param string $svg SVG Path
152
+ * @return array
153
+ */
154
+ protected function svgs_get_dimensions( $svg ) {
155
+ $svg = simplexml_load_file( $svg );
156
+ $width = '0';
157
+ $height = '0';
158
+
159
+ if ( false !== $svg ) {
160
+ $attributes = $svg->attributes();
161
+ if ( isset( $attributes->viewBox ) ) {
162
+ $viewbox = explode( ' ', $attributes->viewBox );
163
+ $width = $viewbox[2];
164
+ $height = $viewbox[3];
165
+ } elseif ( $attributes->width && $attributes->height ) {
166
+ $width = (string) $attributes->width;
167
+ $height = (string) $attributes->height;
168
+ }
169
+ }
170
+
171
+ return (object) array(
172
+ 'width' => $width,
173
+ 'height' => $height,
174
+ );
175
+ }
176
+
177
  /**
178
  * @internal
179
  * @param string|null $dim
lib/ImageHelper.php CHANGED
@@ -502,7 +502,9 @@ class ImageHelper {
502
  }
503
  $url = untrailingslashit($url).'/'.$filename;
504
  if ( !$absolute ) {
505
- $url = str_replace(site_url(), '', $url);
 
 
506
  }
507
  return $url;
508
  }
502
  }
503
  $url = untrailingslashit($url).'/'.$filename;
504
  if ( !$absolute ) {
505
+ $home = home_url();
506
+ $home = apply_filters('timber/ImageHelper/_get_file_url/home_url', $home);
507
+ $url = str_replace($home, '', $url);
508
  }
509
  return $url;
510
  }
lib/Integrations/WPML.php CHANGED
@@ -8,6 +8,7 @@ class WPML {
8
  add_filter('timber/URLHelper/file_system_to_url', array($this, 'file_system_to_url'), 10, 1);
9
  add_filter('timber/URLHelper/get_content_subdir/home_url', array($this, 'file_system_to_url'), 10, 1);
10
  add_filter('timber/URLHelper/url_to_file_system/path', array($this, 'file_system_to_url'), 10, 1);
 
11
 
12
  }
13
 
8
  add_filter('timber/URLHelper/file_system_to_url', array($this, 'file_system_to_url'), 10, 1);
9
  add_filter('timber/URLHelper/get_content_subdir/home_url', array($this, 'file_system_to_url'), 10, 1);
10
  add_filter('timber/URLHelper/url_to_file_system/path', array($this, 'file_system_to_url'), 10, 1);
11
+ add_filter('timber/ImageHelper/_get_file_url/home_url', array($this, 'file_system_to_url'), 10, 1);
12
 
13
  }
14
 
lib/Loader.php CHANGED
@@ -147,7 +147,7 @@ class Loader {
147
  $rootPath = null;
148
  }
149
  $fs = new \Twig\Loader\FilesystemLoader($paths, $rootPath);
150
- $fs = apply_filters('timber/loader/loader', $fs);
151
  return $fs;
152
  }
153
 
@@ -272,15 +272,15 @@ class Loader {
272
  }
273
 
274
  /**
275
- * @return \Asm89\Twig\CacheExtension\Extension
276
  */
277
  private function _get_cache_extension() {
278
 
279
  $key_generator = new \Timber\Cache\KeyGenerator();
280
  $cache_provider = new \Timber\Cache\WPObjectCacheAdapter($this);
281
  $cache_lifetime = apply_filters('timber/cache/extension/lifetime', 0);
282
- $cache_strategy = new \Asm89\Twig\CacheExtension\CacheStrategy\GenerationalCacheStrategy($cache_provider, $key_generator, $cache_lifetime);
283
- $cache_extension = new \Asm89\Twig\CacheExtension\Extension($cache_strategy);
284
 
285
  return $cache_extension;
286
  }
147
  $rootPath = null;
148
  }
149
  $fs = new \Twig\Loader\FilesystemLoader($paths, $rootPath);
150
+ $fs = apply_filters('timber/loader/loader', $fs, $paths, $rootPath);
151
  return $fs;
152
  }
153
 
272
  }
273
 
274
  /**
275
+ * @return \Twig\CacheExtension\Extension
276
  */
277
  private function _get_cache_extension() {
278
 
279
  $key_generator = new \Timber\Cache\KeyGenerator();
280
  $cache_provider = new \Timber\Cache\WPObjectCacheAdapter($this);
281
  $cache_lifetime = apply_filters('timber/cache/extension/lifetime', 0);
282
+ $cache_strategy = new \Twig\CacheExtension\CacheStrategy\GenerationalCacheStrategy($cache_provider, $key_generator, $cache_lifetime);
283
+ $cache_extension = new \Twig\CacheExtension\Extension($cache_strategy);
284
 
285
  return $cache_extension;
286
  }
lib/Post.php CHANGED
@@ -1233,17 +1233,17 @@ class Post extends Core implements CoreInterface {
1233
  }
1234
 
1235
  /**
1236
- * Handles for an circumstance with the Block editor where a "more" block has an option to
1237
- * "Hide the excerpt on the full content page" which hides everything prior to the inserted
1238
  * "more" block
1239
  * @ticket #2218
1240
  * @param string $content
1241
  * @return string
1242
  */
1243
  protected function content_handle_no_teaser_block( $content ) {
1244
- if ( strpos($content, 'noTeaser:true') !== false ) {
1245
- $arr = explode('<!--noteaser-->', $content);
1246
- return $arr[1];
1247
  }
1248
  return $content;
1249
  }
@@ -1277,7 +1277,7 @@ class Post extends Core implements CoreInterface {
1277
  public function date( $date_format = '' ) {
1278
  $df = $date_format ? $date_format : get_option('date_format');
1279
  $the_date = date_i18n($df, strtotime($this->post_date));
1280
- return apply_filters('get_the_date', $the_date, $df);
1281
  }
1282
 
1283
  /**
@@ -1301,7 +1301,7 @@ class Post extends Core implements CoreInterface {
1301
  public function time( $time_format = '' ) {
1302
  $tf = $time_format ? $time_format : get_option('time_format');
1303
  $the_time = date_i18n($tf, strtotime($this->post_date));
1304
- return apply_filters('get_the_time', $the_time, $tf);
1305
  }
1306
 
1307
 
@@ -1400,7 +1400,7 @@ class Post extends Core implements CoreInterface {
1400
  public function modified_date( $date_format = '' ) {
1401
  $df = $date_format ? $date_format : get_option('date_format');
1402
  $the_time = $this->get_modified_time($df);
1403
- return apply_filters('get_the_modified_date', $the_time, $date_format);
1404
  }
1405
 
1406
  /**
@@ -1827,7 +1827,7 @@ class Post extends Core implements CoreInterface {
1827
  public function get_modified_time( $time_format = '' ) {
1828
  $tf = $time_format ? $time_format : get_option('time_format');
1829
  $the_time = get_post_modified_time($tf, false, $this->ID, true);
1830
- return apply_filters('get_the_modified_time', $the_time, $time_format);
1831
  }
1832
 
1833
  /**
1233
  }
1234
 
1235
  /**
1236
+ * Handles for an circumstance with the Block editor where a "more" block has an option to
1237
+ * "Hide the excerpt on the full content page" which hides everything prior to the inserted
1238
  * "more" block
1239
  * @ticket #2218
1240
  * @param string $content
1241
  * @return string
1242
  */
1243
  protected function content_handle_no_teaser_block( $content ) {
1244
+ if ( (strpos($content, 'noTeaser:true') !== false || strpos($content, '"noTeaser":true') !== false) && strpos($content, '<!-- /wp:more -->') !== false) {
1245
+ $arr = explode('<!-- /wp:more -->', $content);
1246
+ return trim($arr[1]);
1247
  }
1248
  return $content;
1249
  }
1277
  public function date( $date_format = '' ) {
1278
  $df = $date_format ? $date_format : get_option('date_format');
1279
  $the_date = date_i18n($df, strtotime($this->post_date));
1280
+ return apply_filters('get_the_date', $the_date, $df, $this->id);
1281
  }
1282
 
1283
  /**
1301
  public function time( $time_format = '' ) {
1302
  $tf = $time_format ? $time_format : get_option('time_format');
1303
  $the_time = date_i18n($tf, strtotime($this->post_date));
1304
+ return apply_filters('get_the_time', $the_time, $tf, $this->id);
1305
  }
1306
 
1307
 
1400
  public function modified_date( $date_format = '' ) {
1401
  $df = $date_format ? $date_format : get_option('date_format');
1402
  $the_time = $this->get_modified_time($df);
1403
+ return apply_filters('get_the_modified_date', $the_time, $date_format, get_post($this->id));
1404
  }
1405
 
1406
  /**
1827
  public function get_modified_time( $time_format = '' ) {
1828
  $tf = $time_format ? $time_format : get_option('time_format');
1829
  $the_time = get_post_modified_time($tf, false, $this->ID, true);
1830
+ return apply_filters('get_the_modified_time', $the_time, $time_format, get_post($this->id));
1831
  }
1832
 
1833
  /**
lib/Site.php CHANGED
@@ -175,7 +175,7 @@ class Site extends Core implements CoreInterface {
175
  $this->rss = get_bloginfo('rss_url');
176
  $this->rss2 = get_bloginfo('rss2_url');
177
  $this->atom = get_bloginfo('atom_url');
178
- $this->language = get_bloginfo('language');
179
  $this->charset = get_bloginfo('charset');
180
  $this->pingback = $this->pingback_url = get_bloginfo('pingback_url');
181
  }
175
  $this->rss = get_bloginfo('rss_url');
176
  $this->rss2 = get_bloginfo('rss2_url');
177
  $this->atom = get_bloginfo('atom_url');
178
+ $this->language = get_locale();
179
  $this->charset = get_bloginfo('charset');
180
  $this->pingback = $this->pingback_url = get_bloginfo('pingback_url');
181
  }
lib/Timber.php CHANGED
@@ -35,7 +35,7 @@ use Timber\Loader;
35
  */
36
  class Timber {
37
 
38
- public static $version = '1.18.2';
39
  public static $locations;
40
  public static $dirname = 'views';
41
  public static $twig_cache = false;
@@ -459,7 +459,7 @@ class Timber {
459
  * @param array $data
460
  * @return string
461
  */
462
- public static function get_sidebar_from_php( $sidebar = '', $data ) {
463
  $caller = LocationManager::get_calling_script_dir(1);
464
  $uris = LocationManager::get_locations($caller);
465
  ob_start();
35
  */
36
  class Timber {
37
 
38
+ public static $version = '1.19.0';
39
  public static $locations;
40
  public static $dirname = 'views';
41
  public static $twig_cache = false;
459
  * @param array $data
460
  * @return string
461
  */
462
+ public static function get_sidebar_from_php( $sidebar = '', $data = array() ) {
463
  $caller = LocationManager::get_calling_script_dir(1);
464
  $uris = LocationManager::get_locations($caller);
465
  ob_start();
lib/URLHelper.php CHANGED
@@ -168,7 +168,7 @@ class URLHelper {
168
  */
169
  public static function file_system_to_url( $fs ) {
170
  $relative_path = self::get_rel_path($fs);
171
- $home = site_url('/'.$relative_path);
172
  $home = apply_filters('timber/URLHelper/file_system_to_url', $home);
173
  return $home;
174
  }
168
  */
169
  public static function file_system_to_url( $fs ) {
170
  $relative_path = self::get_rel_path($fs);
171
+ $home = home_url('/'.$relative_path);
172
  $home = apply_filters('timber/URLHelper/file_system_to_url', $home);
173
  return $home;
174
  }
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: jarednova
3
  Tags: template engine, templates, twig
4
  Requires at least: 4.9.8
5
  Tested up to: 5.8.1
6
- Stable tag: 1.18.2
7
  Requires PHP: 5.6
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -38,6 +38,23 @@ _Twig is the template language powering Timber; if you need a little background
38
 
39
  **Fixes and improvements**
40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  = 1.18.2 =
42
 
43
  **Fixes and improvements**
3
  Tags: template engine, templates, twig
4
  Requires at least: 4.9.8
5
  Tested up to: 5.8.1
6
+ Stable tag: 1.19.0
7
  Requires PHP: 5.6
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
38
 
39
  **Fixes and improvements**
40
 
41
+ = 1.19.0 =
42
+
43
+ **Changes for Theme Developers**
44
+
45
+ * You can now get dimensions of SVG images #2421 #2432 (thanks @vyskoczilova)
46
+ * You can pass additional variables to the `timber/loader/loader` filter #2324 (thanks @neojp)
47
+
48
+ **Fixes and improvements**
49
+ * Fix for double quotes that might appear in a "Read More" in Gutenberg #2337 #2343 (thanks @Keysaw)
50
+ * Fix implementation of WP's `get_the_date` and `get_the_time` filters #2350 (thanks @shvlv)
51
+ * Fix for how the `wp:more` tag works with `noteaser` #2348 #2351 (thanks @jhhazelaar)
52
+ * Fix for two cases of where `home_url()` should be used instead of `site_url()` #2356 #2357 (thanks @Levdbas)
53
+ * Fix for where `Timber::get_sites` returned the same locale for all sites #1908 #2369 (thanks @highbelt)
54
+ * Use the latest release of Upstatement/Routes (0.5 => 0.8) #2373 (thanks @jverneaut)
55
+ * Fix for sidebar retrieval in PHP 8 #2385 (thanks @marciojc)
56
+ * Fix for proper ignoring of the Cache directory on case-insensitive file systems #342 #2416 (thanks @toonvandeputte)
57
+
58
  = 1.18.2 =
59
 
60
  **Fixes and improvements**
timber-starter-theme/README.md CHANGED
@@ -3,7 +3,7 @@
3
 
4
  The "_s" for Timber: a dead-simple theme that you can build from. The primary purpose of this theme is to provide a file structure rather than a framework for markup or styles. Configure your Sass, scripts, and task runners however you would like!
5
 
6
- [![Build Status](https://travis-ci.com/timber/starter-theme.svg?branch=master)](https://travis-ci.come/github/timber/starter-theme)
7
 
8
  ## Installing the Theme
9
 
3
 
4
  The "_s" for Timber: a dead-simple theme that you can build from. The primary purpose of this theme is to provide a file structure rather than a framework for markup or styles. Configure your Sass, scripts, and task runners however you would like!
5
 
6
+ [![Build Status](https://travis-ci.com/timber/starter-theme.svg?branch=master)](https://travis-ci.com/github/timber/starter-theme)
7
 
8
  ## Installing the Theme
9
 
timber.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Timber
4
  Description: The WordPress Timber Library allows you to write themes using the power of Twig templates.
5
  Plugin URI: https://upstatement.com/timber
6
  Author: Jared Novack + Upstatement
7
- Version: 1.18.2
8
  Author URI: http://upstatement.com/
9
  */
10
  // we look for Composer files first in the plugins dir.
4
  Description: The WordPress Timber Library allows you to write themes using the power of Twig templates.
5
  Plugin URI: https://upstatement.com/timber
6
  Author: Jared Novack + Upstatement
7
+ Version: 1.19.0
8
  Author URI: http://upstatement.com/
9
  */
10
  // we look for Composer files first in the plugins dir.
vendor/altorouter/altorouter/AltoRouter.php CHANGED
@@ -1,294 +1,302 @@
1
  <?php
2
-
3
- class AltoRouter {
4
-
5
- /**
6
- * @var array Array of all routes (incl. named routes).
7
- */
8
- protected $routes = array();
9
-
10
- /**
11
- * @var array Array of all named routes.
12
- */
13
- protected $namedRoutes = array();
14
-
15
- /**
16
- * @var string Can be used to ignore leading part of the Request URL (if main file lives in subdirectory of host)
17
- */
18
- protected $basePath = '';
19
-
20
- /**
21
- * @var array Array of default match types (regex helpers)
22
- */
23
- protected $matchTypes = array(
24
- 'i' => '[0-9]++',
25
- 'a' => '[0-9A-Za-z]++',
26
- 'h' => '[0-9A-Fa-f]++',
27
- '*' => '.+?',
28
- '**' => '.++',
29
- '' => '[^/\.]++'
30
- );
31
-
32
- /**
33
- * Create router in one call from config.
34
- *
35
- * @param array $routes
36
- * @param string $basePath
37
- * @param array $matchTypes
38
- */
39
- public function __construct( $routes = array(), $basePath = '', $matchTypes = array() ) {
40
- $this->addRoutes($routes);
41
- $this->setBasePath($basePath);
42
- $this->addMatchTypes($matchTypes);
43
- }
44
-
45
- /**
46
- * Retrieves all routes.
47
- * Useful if you want to process or display routes.
48
- * @return array All routes.
49
- */
50
- public function getRoutes() {
51
- return $this->routes;
52
- }
53
-
54
- /**
55
- * Add multiple routes at once from array in the following format:
56
- *
57
- * $routes = array(
58
- * array($method, $route, $target, $name)
59
- * );
60
- *
61
- * @param array $routes
62
- * @return void
63
- * @author Koen Punt
64
- * @throws Exception
65
- */
66
- public function addRoutes($routes){
67
- if(!is_array($routes) && !$routes instanceof Traversable) {
68
- throw new \Exception('Routes should be an array or an instance of Traversable');
69
- }
70
- foreach($routes as $route) {
71
- call_user_func_array(array($this, 'map'), $route);
72
- }
73
- }
74
-
75
- /**
76
- * Set the base path.
77
- * Useful if you are running your application from a subdirectory.
78
- */
79
- public function setBasePath($basePath) {
80
- $this->basePath = $basePath;
81
- }
82
-
83
- /**
84
- * Add named match types. It uses array_merge so keys can be overwritten.
85
- *
86
- * @param array $matchTypes The key is the name and the value is the regex.
87
- */
88
- public function addMatchTypes($matchTypes) {
89
- $this->matchTypes = array_merge($this->matchTypes, $matchTypes);
90
- }
91
-
92
- /**
93
- * Map a route to a target
94
- *
95
- * @param string $method One of 5 HTTP Methods, or a pipe-separated list of multiple HTTP Methods (GET|POST|PATCH|PUT|DELETE)
96
- * @param string $route The route regex, custom regex must start with an @. You can use multiple pre-set regex filters, like [i:id]
97
- * @param mixed $target The target where this route should point to. Can be anything.
98
- * @param string $name Optional name of this route. Supply if you want to reverse route this url in your application.
99
- * @throws Exception
100
- */
101
- public function map($method, $route, $target, $name = null) {
102
-
103
- $this->routes[] = array($method, $route, $target, $name);
104
-
105
- if($name) {
106
- if(isset($this->namedRoutes[$name])) {
107
- throw new \Exception("Can not redeclare route '{$name}'");
108
- } else {
109
- $this->namedRoutes[$name] = $route;
110
- }
111
-
112
- }
113
-
114
- return;
115
- }
116
-
117
- /**
118
- * Reversed routing
119
- *
120
- * Generate the URL for a named route. Replace regexes with supplied parameters
121
- *
122
- * @param string $routeName The name of the route.
123
- * @param array @params Associative array of parameters to replace placeholders with.
124
- * @return string The URL of the route with named parameters in place.
125
- * @throws Exception
126
- */
127
- public function generate($routeName, array $params = array()) {
128
-
129
- // Check if named route exists
130
- if(!isset($this->namedRoutes[$routeName])) {
131
- throw new \Exception("Route '{$routeName}' does not exist.");
132
- }
133
-
134
- // Replace named parameters
135
- $route = $this->namedRoutes[$routeName];
136
-
137
- // prepend base path to route url again
138
- $url = $this->basePath . $route;
139
-
140
- if (preg_match_all('`(/|\.|)\[([^:\]]*+)(?::([^:\]]*+))?\](\?|)`', $route, $matches, PREG_SET_ORDER)) {
141
-
142
- foreach($matches as $match) {
143
- list($block, $pre, $type, $param, $optional) = $match;
144
-
145
- if ($pre) {
146
- $block = substr($block, 1);
147
- }
148
-
149
- if(isset($params[$param])) {
150
- $url = str_replace($block, $params[$param], $url);
151
- } elseif ($optional) {
152
- $url = str_replace($pre . $block, '', $url);
153
- }
154
- }
155
-
156
-
157
- }
158
-
159
- return $url;
160
- }
161
-
162
- /**
163
- * Match a given Request Url against stored routes
164
- * @param string $requestUrl
165
- * @param string $requestMethod
166
- * @return array|boolean Array with route information on success, false on failure (no match).
167
- */
168
- public function match($requestUrl = null, $requestMethod = null) {
169
-
170
- $params = array();
171
- $match = false;
172
-
173
- // set Request Url if it isn't passed as parameter
174
- if($requestUrl === null) {
175
- $requestUrl = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '/';
176
- }
177
-
178
- // strip base path from request url
179
- $requestUrl = substr($requestUrl, strlen($this->basePath));
180
-
181
- // Strip query string (?a=b) from Request Url
182
- if (($strpos = strpos($requestUrl, '?')) !== false) {
183
- $requestUrl = substr($requestUrl, 0, $strpos);
184
- }
185
-
186
- // set Request Method if it isn't passed as a parameter
187
- if($requestMethod === null) {
188
- $requestMethod = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'GET';
189
- }
190
-
191
- foreach($this->routes as $handler) {
192
- list($method, $_route, $target, $name) = $handler;
193
-
194
- $methods = explode('|', $method);
195
- $method_match = false;
196
-
197
- // Check if request method matches. If not, abandon early. (CHEAP)
198
- foreach($methods as $method) {
199
- if (strcasecmp($requestMethod, $method) === 0) {
200
- $method_match = true;
201
- break;
202
- }
203
- }
204
-
205
- // Method did not match, continue to next route.
206
- if(!$method_match) continue;
207
-
208
- // Check for a wildcard (matches all)
209
- if ($_route === '*') {
210
- $match = true;
211
- } elseif (isset($_route[0]) && $_route[0] === '@') {
212
- $pattern = '`' . substr($_route, 1) . '`u';
213
- $match = preg_match($pattern, $requestUrl, $params);
214
- } else {
215
- $route = null;
216
- $regex = false;
217
- $j = 0;
218
- $n = isset($_route[0]) ? $_route[0] : null;
219
- $i = 0;
220
-
221
- // Find the longest non-regex substring and match it against the URI
222
- while (true) {
223
- if (!isset($_route[$i])) {
224
- break;
225
- } elseif (false === $regex) {
226
- $c = $n;
227
- $regex = $c === '[' || $c === '(' || $c === '.';
228
- if (false === $regex && false !== isset($_route[$i+1])) {
229
- $n = $_route[$i + 1];
230
- $regex = $n === '?' || $n === '+' || $n === '*' || $n === '{';
231
- }
232
- if (false === $regex && $c !== '/' && (!isset($requestUrl[$j]) || $c !== $requestUrl[$j])) {
233
- continue 2;
234
- }
235
- $j++;
236
- }
237
- $route .= $_route[$i++];
238
- }
239
-
240
- $regex = $this->compileRoute($route);
241
- $match = preg_match($regex, $requestUrl, $params);
242
- }
243
-
244
- if(($match == true || $match > 0)) {
245
-
246
- if($params) {
247
- foreach($params as $key => $value) {
248
- if(is_numeric($key)) unset($params[$key]);
249
- }
250
- }
251
-
252
- return array(
253
- 'target' => $target,
254
- 'params' => $params,
255
- 'name' => $name
256
- );
257
- }
258
- }
259
- return false;
260
- }
261
-
262
- /**
263
- * Compile the regex for a given route (EXPENSIVE)
264
- */
265
- private function compileRoute($route) {
266
- if (preg_match_all('`(/|\.|)\[([^:\]]*+)(?::([^:\]]*+))?\](\?|)`', $route, $matches, PREG_SET_ORDER)) {
267
-
268
- $matchTypes = $this->matchTypes;
269
- foreach($matches as $match) {
270
- list($block, $pre, $type, $param, $optional) = $match;
271
-
272
- if (isset($matchTypes[$type])) {
273
- $type = $matchTypes[$type];
274
- }
275
- if ($pre === '.') {
276
- $pre = '\.';
277
- }
278
-
279
- //Older versions of PCRE require the 'P' in (?P<named>)
280
- $pattern = '(?:'
281
- . ($pre !== '' ? $pre : null)
282
- . '('
283
- . ($param !== '' ? "?P<$param>" : null)
284
- . $type
285
- . '))'
286
- . ($optional !== '' ? '?' : null);
287
-
288
- $route = str_replace($block, $pattern, $route);
289
- }
290
-
291
- }
292
- return "`^$route$`u";
293
- }
 
 
 
 
 
 
 
 
294
  }
1
  <?php
2
+ /*
3
+ MIT License
4
+
5
+ Copyright (c) 2012 Danny van Kooten <hi@dannyvankooten.com>
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
8
+
9
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
10
+
11
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
12
+ */
13
+
14
+ class AltoRouter
15
+ {
16
+
17
+ /**
18
+ * @var array Array of all routes (incl. named routes).
19
+ */
20
+ protected $routes = [];
21
+
22
+ /**
23
+ * @var array Array of all named routes.
24
+ */
25
+ protected $namedRoutes = [];
26
+
27
+ /**
28
+ * @var string Can be used to ignore leading part of the Request URL (if main file lives in subdirectory of host)
29
+ */
30
+ protected $basePath = '';
31
+
32
+ /**
33
+ * @var array Array of default match types (regex helpers)
34
+ */
35
+ protected $matchTypes = [
36
+ 'i' => '[0-9]++',
37
+ 'a' => '[0-9A-Za-z]++',
38
+ 'h' => '[0-9A-Fa-f]++',
39
+ '*' => '.+?',
40
+ '**' => '.++',
41
+ '' => '[^/\.]++'
42
+ ];
43
+
44
+ /**
45
+ * Create router in one call from config.
46
+ *
47
+ * @param array $routes
48
+ * @param string $basePath
49
+ * @param array $matchTypes
50
+ * @throws Exception
51
+ */
52
+ public function __construct(array $routes = [], $basePath = '', array $matchTypes = [])
53
+ {
54
+ $this->addRoutes($routes);
55
+ $this->setBasePath($basePath);
56
+ $this->addMatchTypes($matchTypes);
57
+ }
58
+
59
+ /**
60
+ * Retrieves all routes.
61
+ * Useful if you want to process or display routes.
62
+ * @return array All routes.
63
+ */
64
+ public function getRoutes()
65
+ {
66
+ return $this->routes;
67
+ }
68
+
69
+ /**
70
+ * Add multiple routes at once from array in the following format:
71
+ *
72
+ * $routes = [
73
+ * [$method, $route, $target, $name]
74
+ * ];
75
+ *
76
+ * @param array $routes
77
+ * @return void
78
+ * @author Koen Punt
79
+ * @throws Exception
80
+ */
81
+ public function addRoutes($routes)
82
+ {
83
+ if (!is_array($routes) && !$routes instanceof Traversable) {
84
+ throw new RuntimeException('Routes should be an array or an instance of Traversable');
85
+ }
86
+ foreach ($routes as $route) {
87
+ call_user_func_array([$this, 'map'], $route);
88
+ }
89
+ }
90
+
91
+ /**
92
+ * Set the base path.
93
+ * Useful if you are running your application from a subdirectory.
94
+ * @param string $basePath
95
+ */
96
+ public function setBasePath($basePath)
97
+ {
98
+ $this->basePath = $basePath;
99
+ }
100
+
101
+ /**
102
+ * Add named match types. It uses array_merge so keys can be overwritten.
103
+ *
104
+ * @param array $matchTypes The key is the name and the value is the regex.
105
+ */
106
+ public function addMatchTypes(array $matchTypes)
107
+ {
108
+ $this->matchTypes = array_merge($this->matchTypes, $matchTypes);
109
+ }
110
+
111
+ /**
112
+ * Map a route to a target
113
+ *
114
+ * @param string $method One of 5 HTTP Methods, or a pipe-separated list of multiple HTTP Methods (GET|POST|PATCH|PUT|DELETE)
115
+ * @param string $route The route regex, custom regex must start with an @. You can use multiple pre-set regex filters, like [i:id]
116
+ * @param mixed $target The target where this route should point to. Can be anything.
117
+ * @param string $name Optional name of this route. Supply if you want to reverse route this url in your application.
118
+ * @throws Exception
119
+ */
120
+ public function map($method, $route, $target, $name = null)
121
+ {
122
+
123
+ $this->routes[] = [$method, $route, $target, $name];
124
+
125
+ if ($name) {
126
+ if (isset($this->namedRoutes[$name])) {
127
+ throw new RuntimeException("Can not redeclare route '{$name}'");
128
+ }
129
+ $this->namedRoutes[$name] = $route;
130
+ }
131
+
132
+ return;
133
+ }
134
+
135
+ /**
136
+ * Reversed routing
137
+ *
138
+ * Generate the URL for a named route. Replace regexes with supplied parameters
139
+ *
140
+ * @param string $routeName The name of the route.
141
+ * @param array @params Associative array of parameters to replace placeholders with.
142
+ * @return string The URL of the route with named parameters in place.
143
+ * @throws Exception
144
+ */
145
+ public function generate($routeName, array $params = [])
146
+ {
147
+
148
+ // Check if named route exists
149
+ if (!isset($this->namedRoutes[$routeName])) {
150
+ throw new RuntimeException("Route '{$routeName}' does not exist.");
151
+ }
152
+
153
+ // Replace named parameters
154
+ $route = $this->namedRoutes[$routeName];
155
+
156
+ // prepend base path to route url again
157
+ $url = $this->basePath . $route;
158
+
159
+ if (preg_match_all('`(/|\.|)\[([^:\]]*+)(?::([^:\]]*+))?\](\?|)`', $route, $matches, PREG_SET_ORDER)) {
160
+ foreach ($matches as $index => $match) {
161
+ list($block, $pre, $type, $param, $optional) = $match;
162
+
163
+ if ($pre) {
164
+ $block = substr($block, 1);
165
+ }
166
+
167
+ if (isset($params[$param])) {
168
+ // Part is found, replace for param value
169
+ $url = str_replace($block, $params[$param], $url);
170
+ } elseif ($optional && $index !== 0) {
171
+ // Only strip preceding slash if it's not at the base
172
+ $url = str_replace($pre . $block, '', $url);
173
+ } else {
174
+ // Strip match block
175
+ $url = str_replace($block, '', $url);
176
+ }
177
+ }
178
+ }
179
+
180
+ return $url;
181
+ }
182
+
183
+ /**
184
+ * Match a given Request Url against stored routes
185
+ * @param string $requestUrl
186
+ * @param string $requestMethod
187
+ * @return array|boolean Array with route information on success, false on failure (no match).
188
+ */
189
+ public function match($requestUrl = null, $requestMethod = null)
190
+ {
191
+
192
+ $params = [];
193
+
194
+ // set Request Url if it isn't passed as parameter
195
+ if ($requestUrl === null) {
196
+ $requestUrl = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '/';
197
+ }
198
+
199
+ // strip base path from request url
200
+ $requestUrl = substr($requestUrl, strlen($this->basePath));
201
+
202
+ // Strip query string (?a=b) from Request Url
203
+ if (($strpos = strpos($requestUrl, '?')) !== false) {
204
+ $requestUrl = substr($requestUrl, 0, $strpos);
205
+ }
206
+
207
+ $lastRequestUrlChar = $requestUrl[strlen($requestUrl)-1];
208
+
209
+ // set Request Method if it isn't passed as a parameter
210
+ if ($requestMethod === null) {
211
+ $requestMethod = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'GET';
212
+ }
213
+
214
+ foreach ($this->routes as $handler) {
215
+ list($methods, $route, $target, $name) = $handler;
216
+
217
+ $method_match = (stripos($methods, $requestMethod) !== false);
218
+
219
+ // Method did not match, continue to next route.
220
+ if (!$method_match) {
221
+ continue;
222
+ }
223
+
224
+ if ($route === '*') {
225
+ // * wildcard (matches all)
226
+ $match = true;
227
+ } elseif (isset($route[0]) && $route[0] === '@') {
228
+ // @ regex delimiter
229
+ $pattern = '`' . substr($route, 1) . '`u';
230
+ $match = preg_match($pattern, $requestUrl, $params) === 1;
231
+ } elseif (($position = strpos($route, '[')) === false) {
232
+ // No params in url, do string comparison
233
+ $match = strcmp($requestUrl, $route) === 0;
234
+ } else {
235
+ // Compare longest non-param string with url before moving on to regex
236
+ // Check if last character before param is a slash, because it could be optional if param is optional too (see https://github.com/dannyvankooten/AltoRouter/issues/241)
237
+ if (strncmp($requestUrl, $route, $position) !== 0 && ($lastRequestUrlChar === '/' || $route[$position-1] !== '/')) {
238
+ continue;
239
+ }
240
+
241
+ $regex = $this->compileRoute($route);
242
+ $match = preg_match($regex, $requestUrl, $params) === 1;
243
+ }
244
+
245
+ if ($match) {
246
+ if ($params) {
247
+ foreach ($params as $key => $value) {
248
+ if (is_numeric($key)) {
249
+ unset($params[$key]);
250
+ }
251
+ }
252
+ }
253
+
254
+ return [
255
+ 'target' => $target,
256
+ 'params' => $params,
257
+ 'name' => $name
258
+ ];
259
+ }
260
+ }
261
+
262
+ return false;
263
+ }
264
+
265
+ /**
266
+ * Compile the regex for a given route (EXPENSIVE)
267
+ * @param $route
268
+ * @return string
269
+ */
270
+ protected function compileRoute($route)
271
+ {
272
+ if (preg_match_all('`(/|\.|)\[([^:\]]*+)(?::([^:\]]*+))?\](\?|)`', $route, $matches, PREG_SET_ORDER)) {
273
+ $matchTypes = $this->matchTypes;
274
+ foreach ($matches as $match) {
275
+ list($block, $pre, $type, $param, $optional) = $match;
276
+
277
+ if (isset($matchTypes[$type])) {
278
+ $type = $matchTypes[$type];
279
+ }
280
+ if ($pre === '.') {
281
+ $pre = '\.';
282
+ }
283
+
284
+ $optional = $optional !== '' ? '?' : null;
285
+
286
+ //Older versions of PCRE require the 'P' in (?P<named>)
287
+ $pattern = '(?:'
288
+ . ($pre !== '' ? $pre : null)
289
+ . '('
290
+ . ($param !== '' ? "?P<$param>" : null)
291
+ . $type
292
+ . ')'
293
+ . $optional
294
+ . ')'
295
+ . $optional;
296
+
297
+ $route = str_replace($block, $pattern, $route);
298
+ }
299
+ }
300
+ return "`^$route$`u";
301
+ }
302
  }
vendor/altorouter/altorouter/LICENSE.md ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2012 Danny van Kooten <hi@dannyvankooten.com>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
vendor/altorouter/altorouter/README.md CHANGED
@@ -1,19 +1,22 @@
1
  # AltoRouter [![Build Status](https://api.travis-ci.org/dannyvankooten/AltoRouter.png)](http://travis-ci.org/dannyvankooten/AltoRouter) [![Latest Stable Version](https://poser.pugx.org/altorouter/altorouter/v/stable.svg)](https://packagist.org/packages/altorouter/altorouter) [![License](https://poser.pugx.org/altorouter/altorouter/license.svg)](https://packagist.org/packages/altorouter/altorouter) [![Code Climate](https://codeclimate.com/github/dannyvankooten/AltoRouter/badges/gpa.svg)](https://codeclimate.com/github/dannyvankooten/AltoRouter) [![Test Coverage](https://codeclimate.com/github/dannyvankooten/AltoRouter/badges/coverage.svg)](https://codeclimate.com/github/dannyvankooten/AltoRouter)
2
- AltoRouter is a small but powerful routing class for PHP 5.3+, heavily inspired by [klein.php](https://github.com/chriso/klein.php/).
3
 
4
  ```php
5
  $router = new AltoRouter();
6
 
7
  // map homepage
8
- $router->map( 'GET', '/', function() {
9
  require __DIR__ . '/views/home.php';
10
  });
11
 
12
- // map users details page
13
- $router->map( 'GET|POST', '/users/[i:id]/', function( $id ) {
14
  $user = .....
15
  require __DIR__ . '/views/user/details.php';
16
- });
 
 
 
17
  ```
18
 
19
  ## Features
@@ -26,7 +29,7 @@ $router->map( 'GET|POST', '/users/[i:id]/', function( $id ) {
26
 
27
  ## Getting started
28
 
29
- You need PHP >= 5.3 to use AltoRouter.
30
 
31
  - [Install AltoRouter](http://altorouter.com/usage/install.html)
32
  - [Rewrite all requests to AltoRouter](http://altorouter.com/usage/rewrite-requests.html)
@@ -42,9 +45,9 @@ You need PHP >= 5.3 to use AltoRouter.
42
 
43
  ## License
44
 
45
- (MIT License)
46
 
47
- Copyright (c) 2012-2015 Danny van Kooten <hi@dannyvankooten.com>
48
 
49
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
50
 
1
  # AltoRouter [![Build Status](https://api.travis-ci.org/dannyvankooten/AltoRouter.png)](http://travis-ci.org/dannyvankooten/AltoRouter) [![Latest Stable Version](https://poser.pugx.org/altorouter/altorouter/v/stable.svg)](https://packagist.org/packages/altorouter/altorouter) [![License](https://poser.pugx.org/altorouter/altorouter/license.svg)](https://packagist.org/packages/altorouter/altorouter) [![Code Climate](https://codeclimate.com/github/dannyvankooten/AltoRouter/badges/gpa.svg)](https://codeclimate.com/github/dannyvankooten/AltoRouter) [![Test Coverage](https://codeclimate.com/github/dannyvankooten/AltoRouter/badges/coverage.svg)](https://codeclimate.com/github/dannyvankooten/AltoRouter)
2
+ AltoRouter is a small but powerful routing class, heavily inspired by [klein.php](https://github.com/chriso/klein.php/).
3
 
4
  ```php
5
  $router = new AltoRouter();
6
 
7
  // map homepage
8
+ $router->map('GET', '/', function() {
9
  require __DIR__ . '/views/home.php';
10
  });
11
 
12
+ // dynamic named route
13
+ $router->map('GET|POST', '/users/[i:id]/', function($id) {
14
  $user = .....
15
  require __DIR__ . '/views/user/details.php';
16
+ }, 'user-details');
17
+
18
+ // echo URL to user-details page for ID 5
19
+ echo $router->generate('user-details', ['id' => 5]); // Output: "/users/5"
20
  ```
21
 
22
  ## Features
29
 
30
  ## Getting started
31
 
32
+ You need PHP >= 5.6 to use AltoRouter, although we highly recommend you [use an officially supported PHP version](https://secure.php.net/supported-versions.php) that is not EOL.
33
 
34
  - [Install AltoRouter](http://altorouter.com/usage/install.html)
35
  - [Rewrite all requests to AltoRouter](http://altorouter.com/usage/rewrite-requests.html)
45
 
46
  ## License
47
 
48
+ MIT License
49
 
50
+ Copyright (c) 2012 Danny van Kooten <hi@dannyvankooten.com>
51
 
52
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
53
 
vendor/altorouter/altorouter/composer.json CHANGED
@@ -20,11 +20,12 @@
20
  }
21
  ],
22
  "require": {
23
- "php": ">=5.3.0"
24
  },
25
  "require-dev": {
26
- "phpunit/phpunit": "4.5.*",
27
- "codeclimate/php-test-reporter": "dev-master"
 
28
  },
29
  "autoload": {
30
  "classmap": ["AltoRouter.php"]
20
  }
21
  ],
22
  "require": {
23
+ "php": ">=5.6.0"
24
  },
25
  "require-dev": {
26
+ "phpunit/phpunit": "5.7.*",
27
+ "codeclimate/php-test-reporter": "dev-master",
28
+ "squizlabs/php_codesniffer": "3.4.2"
29
  },
30
  "autoload": {
31
  "classmap": ["AltoRouter.php"]
vendor/altorouter/altorouter/phpcs.xml ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <ruleset name="rules">
3
+ <description>rules</description>
4
+ <rule ref="PSR2"/>
5
+ <rule ref="Generic.Arrays.DisallowLongArraySyntax"/>
6
+ <file>tests</file>
7
+ <file>AltoRouter.php</file>
8
+ <file>examples/</file>
9
+ <arg name="colors"/>
10
+ </ruleset>
vendor/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Node/CacheNode.php DELETED
@@ -1,71 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of twig-cache-extension.
5
- *
6
- * (c) Alexander <iam.asm89@gmail.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 Asm89\Twig\CacheExtension\Node;
13
-
14
- /**
15
- * Cache twig node.
16
- *
17
- * @author Alexander <iam.asm89@gmail.com>
18
- */
19
- class CacheNode extends \Twig_Node
20
- {
21
- private static $cacheCount = 1;
22
-
23
- /**
24
- * @param \Twig_Node_Expression $annotation
25
- * @param \Twig_Node_Expression $keyInfo
26
- * @param \Twig_NodeInterface $body
27
- * @param integer $lineno
28
- * @param string $tag
29
- */
30
- public function __construct(\Twig_Node_Expression $annotation, \Twig_Node_Expression $keyInfo, \Twig_Node $body, $lineno, $tag = null)
31
- {
32
- parent::__construct(array('key_info' => $keyInfo, 'body' => $body, 'annotation' => $annotation), array(), $lineno, $tag);
33
- }
34
-
35
- /**
36
- * {@inheritDoc}
37
- */
38
- public function compile(\Twig_Compiler $compiler)
39
- {
40
- $i = self::$cacheCount++;
41
-
42
- if (version_compare(\Twig_Environment::VERSION, '1.26.0', '>=')) {
43
- $extension = 'Asm89\Twig\CacheExtension\Extension';
44
- } else {
45
- $extension = 'asm89_cache';
46
- }
47
-
48
- $compiler
49
- ->addDebugInfo($this)
50
- ->write("\$asm89CacheStrategy".$i." = \$this->env->getExtension('{$extension}')->getCacheStrategy();\n")
51
- ->write("\$asm89Key".$i." = \$asm89CacheStrategy".$i."->generateKey(")
52
- ->subcompile($this->getNode('annotation'))
53
- ->raw(", ")
54
- ->subcompile($this->getNode('key_info'))
55
- ->write(");\n")
56
- ->write("\$asm89CacheBody".$i." = \$asm89CacheStrategy".$i."->fetchBlock(\$asm89Key".$i.");\n")
57
- ->write("if (\$asm89CacheBody".$i." === false) {\n")
58
- ->indent()
59
- ->write("ob_start();\n")
60
- ->indent()
61
- ->subcompile($this->getNode('body'))
62
- ->outdent()
63
- ->write("\n")
64
- ->write("\$asm89CacheBody".$i." = ob_get_clean();\n")
65
- ->write("\$asm89CacheStrategy".$i."->saveBlock(\$asm89Key".$i.", \$asm89CacheBody".$i.");\n")
66
- ->outdent()
67
- ->write("}\n")
68
- ->write("echo \$asm89CacheBody".$i.";\n")
69
- ;
70
- }
71
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit98e2addbab75aec03cd32e9c811af941::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit6083f74763027d293cf808f57b917514::getLoader();
vendor/composer/autoload_classmap.php CHANGED
@@ -7,23 +7,6 @@ $baseDir = dirname($vendorDir);
7
 
8
  return array(
9
  'AltoRouter' => $vendorDir . '/altorouter/altorouter/AltoRouter.php',
10
- 'Asm89\\Twig\\CacheExtension\\CacheProviderInterface' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheProviderInterface.php',
11
- 'Asm89\\Twig\\CacheExtension\\CacheProvider\\DoctrineCacheAdapter' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheProvider/DoctrineCacheAdapter.php',
12
- 'Asm89\\Twig\\CacheExtension\\CacheProvider\\PsrCacheAdapter' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheProvider/PsrCacheAdapter.php',
13
- 'Asm89\\Twig\\CacheExtension\\CacheStrategyInterface' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheStrategyInterface.php',
14
- 'Asm89\\Twig\\CacheExtension\\CacheStrategy\\BlackholeCacheStrategy' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheStrategy/BlackholeCacheStrategy.php',
15
- 'Asm89\\Twig\\CacheExtension\\CacheStrategy\\GenerationalCacheStrategy' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheStrategy/GenerationalCacheStrategy.php',
16
- 'Asm89\\Twig\\CacheExtension\\CacheStrategy\\IndexedChainingCacheStrategy' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheStrategy/IndexedChainingCacheStrategy.php',
17
- 'Asm89\\Twig\\CacheExtension\\CacheStrategy\\KeyGeneratorInterface' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheStrategy/KeyGeneratorInterface.php',
18
- 'Asm89\\Twig\\CacheExtension\\CacheStrategy\\LifetimeCacheStrategy' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheStrategy/LifetimeCacheStrategy.php',
19
- 'Asm89\\Twig\\CacheExtension\\Exception\\BaseException' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Exception/BaseException.php',
20
- 'Asm89\\Twig\\CacheExtension\\Exception\\InvalidCacheKeyException' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Exception/InvalidCacheKeyException.php',
21
- 'Asm89\\Twig\\CacheExtension\\Exception\\InvalidCacheLifetimeException' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Exception/InvalidCacheLifetimeException.php',
22
- 'Asm89\\Twig\\CacheExtension\\Exception\\NonExistingStrategyException' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Exception/NonExistingStrategyException.php',
23
- 'Asm89\\Twig\\CacheExtension\\Exception\\NonExistingStrategyKeyException' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Exception/NonExistingStrategyKeyException.php',
24
- 'Asm89\\Twig\\CacheExtension\\Extension' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Extension.php',
25
- 'Asm89\\Twig\\CacheExtension\\Node\\CacheNode' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Node/CacheNode.php',
26
- 'Asm89\\Twig\\CacheExtension\\TokenParser\\Cache' => $vendorDir . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/TokenParser/Cache.php',
27
  'Composer\\Installers\\AglInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AglInstaller.php',
28
  'Composer\\Installers\\AimeosInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
29
  'Composer\\Installers\\AnnotateCmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
@@ -76,6 +59,7 @@ return array(
76
  'Composer\\Installers\\MauticInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MauticInstaller.php',
77
  'Composer\\Installers\\MayaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MayaInstaller.php',
78
  'Composer\\Installers\\MediaWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php',
 
79
  'Composer\\Installers\\MicroweberInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MicroweberInstaller.php',
80
  'Composer\\Installers\\ModxInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ModxInstaller.php',
81
  'Composer\\Installers\\MoodleInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MoodleInstaller.php',
@@ -84,6 +68,7 @@ return array(
84
  'Composer\\Installers\\OsclassInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
85
  'Composer\\Installers\\OxidInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
86
  'Composer\\Installers\\PPIInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
 
87
  'Composer\\Installers\\PhiftyInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
88
  'Composer\\Installers\\PhpBBInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
89
  'Composer\\Installers\\PimcoreInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
@@ -92,6 +77,7 @@ return array(
92
  'Composer\\Installers\\Plugin' => $vendorDir . '/composer/installers/src/Composer/Installers/Plugin.php',
93
  'Composer\\Installers\\PortoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PortoInstaller.php',
94
  'Composer\\Installers\\PrestashopInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PrestashopInstaller.php',
 
95
  'Composer\\Installers\\PuppetInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PuppetInstaller.php',
96
  'Composer\\Installers\\PxcmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PxcmsInstaller.php',
97
  'Composer\\Installers\\RadPHPInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RadPHPInstaller.php',
@@ -103,18 +89,21 @@ return array(
103
  'Composer\\Installers\\ShopwareInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php',
104
  'Composer\\Installers\\SilverStripeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php',
105
  'Composer\\Installers\\SiteDirectInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SiteDirectInstaller.php',
 
106
  'Composer\\Installers\\SyDESInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SyDESInstaller.php',
107
  'Composer\\Installers\\SyliusInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SyliusInstaller.php',
108
  'Composer\\Installers\\Symfony1Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Symfony1Installer.php',
109
  'Composer\\Installers\\TYPO3CmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php',
110
  'Composer\\Installers\\TYPO3FlowInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php',
111
  'Composer\\Installers\\TaoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TaoInstaller.php',
 
112
  'Composer\\Installers\\TheliaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TheliaInstaller.php',
113
  'Composer\\Installers\\TuskInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TuskInstaller.php',
114
  'Composer\\Installers\\UserFrostingInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/UserFrostingInstaller.php',
115
  'Composer\\Installers\\VanillaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/VanillaInstaller.php',
116
  'Composer\\Installers\\VgmcpInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/VgmcpInstaller.php',
117
  'Composer\\Installers\\WHMCSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WHMCSInstaller.php',
 
118
  'Composer\\Installers\\WolfCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php',
119
  'Composer\\Installers\\WordPressInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WordPressInstaller.php',
120
  'Composer\\Installers\\YawikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
@@ -175,6 +164,23 @@ return array(
175
  'Timber\\Twig_Function' => $baseDir . '/lib/Twig_Function.php',
176
  'Timber\\URLHelper' => $baseDir . '/lib/URLHelper.php',
177
  'Timber\\User' => $baseDir . '/lib/User.php',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
178
  'Twig\\Cache\\CacheInterface' => $vendorDir . '/twig/twig/src/Cache/CacheInterface.php',
179
  'Twig\\Cache\\FilesystemCache' => $vendorDir . '/twig/twig/src/Cache/FilesystemCache.php',
180
  'Twig\\Cache\\NullCache' => $vendorDir . '/twig/twig/src/Cache/NullCache.php',
7
 
8
  return array(
9
  'AltoRouter' => $vendorDir . '/altorouter/altorouter/AltoRouter.php',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  'Composer\\Installers\\AglInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AglInstaller.php',
11
  'Composer\\Installers\\AimeosInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
12
  'Composer\\Installers\\AnnotateCmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
59
  'Composer\\Installers\\MauticInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MauticInstaller.php',
60
  'Composer\\Installers\\MayaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MayaInstaller.php',
61
  'Composer\\Installers\\MediaWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php',
62
+ 'Composer\\Installers\\MiaoxingInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MiaoxingInstaller.php',
63
  'Composer\\Installers\\MicroweberInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MicroweberInstaller.php',
64
  'Composer\\Installers\\ModxInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ModxInstaller.php',
65
  'Composer\\Installers\\MoodleInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MoodleInstaller.php',
68
  'Composer\\Installers\\OsclassInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
69
  'Composer\\Installers\\OxidInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
70
  'Composer\\Installers\\PPIInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
71
+ 'Composer\\Installers\\PantheonInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PantheonInstaller.php',
72
  'Composer\\Installers\\PhiftyInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
73
  'Composer\\Installers\\PhpBBInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
74
  'Composer\\Installers\\PimcoreInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
77
  'Composer\\Installers\\Plugin' => $vendorDir . '/composer/installers/src/Composer/Installers/Plugin.php',
78
  'Composer\\Installers\\PortoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PortoInstaller.php',
79
  'Composer\\Installers\\PrestashopInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PrestashopInstaller.php',
80
+ 'Composer\\Installers\\ProcessWireInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ProcessWireInstaller.php',
81
  'Composer\\Installers\\PuppetInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PuppetInstaller.php',
82
  'Composer\\Installers\\PxcmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PxcmsInstaller.php',
83
  'Composer\\Installers\\RadPHPInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RadPHPInstaller.php',
89
  'Composer\\Installers\\ShopwareInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php',
90
  'Composer\\Installers\\SilverStripeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php',
91
  'Composer\\Installers\\SiteDirectInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SiteDirectInstaller.php',
92
+ 'Composer\\Installers\\StarbugInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/StarbugInstaller.php',
93
  'Composer\\Installers\\SyDESInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SyDESInstaller.php',
94
  'Composer\\Installers\\SyliusInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SyliusInstaller.php',
95
  'Composer\\Installers\\Symfony1Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Symfony1Installer.php',
96
  'Composer\\Installers\\TYPO3CmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php',
97
  'Composer\\Installers\\TYPO3FlowInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php',
98
  'Composer\\Installers\\TaoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TaoInstaller.php',
99
+ 'Composer\\Installers\\TastyIgniterInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TastyIgniterInstaller.php',
100
  'Composer\\Installers\\TheliaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TheliaInstaller.php',
101
  'Composer\\Installers\\TuskInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TuskInstaller.php',
102
  'Composer\\Installers\\UserFrostingInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/UserFrostingInstaller.php',
103
  'Composer\\Installers\\VanillaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/VanillaInstaller.php',
104
  'Composer\\Installers\\VgmcpInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/VgmcpInstaller.php',
105
  'Composer\\Installers\\WHMCSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WHMCSInstaller.php',
106
+ 'Composer\\Installers\\WinterInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WinterInstaller.php',
107
  'Composer\\Installers\\WolfCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php',
108
  'Composer\\Installers\\WordPressInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WordPressInstaller.php',
109
  'Composer\\Installers\\YawikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
164
  'Timber\\Twig_Function' => $baseDir . '/lib/Twig_Function.php',
165
  'Timber\\URLHelper' => $baseDir . '/lib/URLHelper.php',
166
  'Timber\\User' => $baseDir . '/lib/User.php',
167
+ 'Twig\\CacheExtension\\CacheProviderInterface' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/CacheProviderInterface.php',
168
+ 'Twig\\CacheExtension\\CacheProvider\\DoctrineCacheAdapter' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/CacheProvider/DoctrineCacheAdapter.php',
169
+ 'Twig\\CacheExtension\\CacheProvider\\PsrCacheAdapter' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/CacheProvider/PsrCacheAdapter.php',
170
+ 'Twig\\CacheExtension\\CacheStrategyInterface' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/CacheStrategyInterface.php',
171
+ 'Twig\\CacheExtension\\CacheStrategy\\BlackholeCacheStrategy' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/CacheStrategy/BlackholeCacheStrategy.php',
172
+ 'Twig\\CacheExtension\\CacheStrategy\\GenerationalCacheStrategy' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/CacheStrategy/GenerationalCacheStrategy.php',
173
+ 'Twig\\CacheExtension\\CacheStrategy\\IndexedChainingCacheStrategy' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/CacheStrategy/IndexedChainingCacheStrategy.php',
174
+ 'Twig\\CacheExtension\\CacheStrategy\\KeyGeneratorInterface' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/CacheStrategy/KeyGeneratorInterface.php',
175
+ 'Twig\\CacheExtension\\CacheStrategy\\LifetimeCacheStrategy' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/CacheStrategy/LifetimeCacheStrategy.php',
176
+ 'Twig\\CacheExtension\\Exception\\BaseException' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/Exception/BaseException.php',
177
+ 'Twig\\CacheExtension\\Exception\\InvalidCacheKeyException' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/Exception/InvalidCacheKeyException.php',
178
+ 'Twig\\CacheExtension\\Exception\\InvalidCacheLifetimeException' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/Exception/InvalidCacheLifetimeException.php',
179
+ 'Twig\\CacheExtension\\Exception\\NonExistingStrategyException' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/Exception/NonExistingStrategyException.php',
180
+ 'Twig\\CacheExtension\\Exception\\NonExistingStrategyKeyException' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/Exception/NonExistingStrategyKeyException.php',
181
+ 'Twig\\CacheExtension\\Extension' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/Extension.php',
182
+ 'Twig\\CacheExtension\\Node\\CacheNode' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/Node/CacheNode.php',
183
+ 'Twig\\CacheExtension\\TokenParser\\Cache' => $vendorDir . '/twig/cache-extension/lib/Twig/CacheExtension/TokenParser/Cache.php',
184
  'Twig\\Cache\\CacheInterface' => $vendorDir . '/twig/twig/src/Cache/CacheInterface.php',
185
  'Twig\\Cache\\FilesystemCache' => $vendorDir . '/twig/twig/src/Cache/FilesystemCache.php',
186
  'Twig\\Cache\\NullCache' => $vendorDir . '/twig/twig/src/Cache/NullCache.php',
vendor/composer/autoload_psr4.php CHANGED
@@ -10,5 +10,5 @@ return array(
10
  'Timber\\' => array($baseDir . '/lib'),
11
  'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
12
  'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
13
- '' => array($vendorDir . '/asm89/twig-cache-extension/lib'),
14
  );
10
  'Timber\\' => array($baseDir . '/lib'),
11
  'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
12
  'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
13
+ '' => array($vendorDir . '/twig/cache-extension/lib'),
14
  );
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit98e2addbab75aec03cd32e9c811af941
6
  {
7
  private static $loader;
8
 
@@ -22,15 +22,15 @@ class ComposerAutoloaderInit98e2addbab75aec03cd32e9c811af941
22
  return self::$loader;
23
  }
24
 
25
- spl_autoload_register(array('ComposerAutoloaderInit98e2addbab75aec03cd32e9c811af941', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
- spl_autoload_unregister(array('ComposerAutoloaderInit98e2addbab75aec03cd32e9c811af941', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require_once __DIR__ . '/autoload_static.php';
32
 
33
- call_user_func(\Composer\Autoload\ComposerStaticInit98e2addbab75aec03cd32e9c811af941::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
@@ -51,19 +51,19 @@ class ComposerAutoloaderInit98e2addbab75aec03cd32e9c811af941
51
  $loader->register(true);
52
 
53
  if ($useStaticLoader) {
54
- $includeFiles = Composer\Autoload\ComposerStaticInit98e2addbab75aec03cd32e9c811af941::$files;
55
  } else {
56
  $includeFiles = require __DIR__ . '/autoload_files.php';
57
  }
58
  foreach ($includeFiles as $fileIdentifier => $file) {
59
- composerRequire98e2addbab75aec03cd32e9c811af941($fileIdentifier, $file);
60
  }
61
 
62
  return $loader;
63
  }
64
  }
65
 
66
- function composerRequire98e2addbab75aec03cd32e9c811af941($fileIdentifier, $file)
67
  {
68
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
69
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit6083f74763027d293cf808f57b917514
6
  {
7
  private static $loader;
8
 
22
  return self::$loader;
23
  }
24
 
25
+ spl_autoload_register(array('ComposerAutoloaderInit6083f74763027d293cf808f57b917514', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
+ spl_autoload_unregister(array('ComposerAutoloaderInit6083f74763027d293cf808f57b917514', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require_once __DIR__ . '/autoload_static.php';
32
 
33
+ call_user_func(\Composer\Autoload\ComposerStaticInit6083f74763027d293cf808f57b917514::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
51
  $loader->register(true);
52
 
53
  if ($useStaticLoader) {
54
+ $includeFiles = Composer\Autoload\ComposerStaticInit6083f74763027d293cf808f57b917514::$files;
55
  } else {
56
  $includeFiles = require __DIR__ . '/autoload_files.php';
57
  }
58
  foreach ($includeFiles as $fileIdentifier => $file) {
59
+ composerRequire6083f74763027d293cf808f57b917514($fileIdentifier, $file);
60
  }
61
 
62
  return $loader;
63
  }
64
  }
65
 
66
+ function composerRequire6083f74763027d293cf808f57b917514($fileIdentifier, $file)
67
  {
68
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
69
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit98e2addbab75aec03cd32e9c811af941
8
  {
9
  public static $files = array (
10
  '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
@@ -46,7 +46,7 @@ class ComposerStaticInit98e2addbab75aec03cd32e9c811af941
46
  );
47
 
48
  public static $fallbackDirsPsr4 = array (
49
- 0 => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib',
50
  );
51
 
52
  public static $prefixesPsr0 = array (
@@ -68,23 +68,6 @@ class ComposerStaticInit98e2addbab75aec03cd32e9c811af941
68
 
69
  public static $classMap = array (
70
  'AltoRouter' => __DIR__ . '/..' . '/altorouter/altorouter/AltoRouter.php',
71
- 'Asm89\\Twig\\CacheExtension\\CacheProviderInterface' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheProviderInterface.php',
72
- 'Asm89\\Twig\\CacheExtension\\CacheProvider\\DoctrineCacheAdapter' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheProvider/DoctrineCacheAdapter.php',
73
- 'Asm89\\Twig\\CacheExtension\\CacheProvider\\PsrCacheAdapter' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheProvider/PsrCacheAdapter.php',
74
- 'Asm89\\Twig\\CacheExtension\\CacheStrategyInterface' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheStrategyInterface.php',
75
- 'Asm89\\Twig\\CacheExtension\\CacheStrategy\\BlackholeCacheStrategy' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheStrategy/BlackholeCacheStrategy.php',
76
- 'Asm89\\Twig\\CacheExtension\\CacheStrategy\\GenerationalCacheStrategy' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheStrategy/GenerationalCacheStrategy.php',
77
- 'Asm89\\Twig\\CacheExtension\\CacheStrategy\\IndexedChainingCacheStrategy' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheStrategy/IndexedChainingCacheStrategy.php',
78
- 'Asm89\\Twig\\CacheExtension\\CacheStrategy\\KeyGeneratorInterface' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheStrategy/KeyGeneratorInterface.php',
79
- 'Asm89\\Twig\\CacheExtension\\CacheStrategy\\LifetimeCacheStrategy' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/CacheStrategy/LifetimeCacheStrategy.php',
80
- 'Asm89\\Twig\\CacheExtension\\Exception\\BaseException' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Exception/BaseException.php',
81
- 'Asm89\\Twig\\CacheExtension\\Exception\\InvalidCacheKeyException' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Exception/InvalidCacheKeyException.php',
82
- 'Asm89\\Twig\\CacheExtension\\Exception\\InvalidCacheLifetimeException' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Exception/InvalidCacheLifetimeException.php',
83
- 'Asm89\\Twig\\CacheExtension\\Exception\\NonExistingStrategyException' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Exception/NonExistingStrategyException.php',
84
- 'Asm89\\Twig\\CacheExtension\\Exception\\NonExistingStrategyKeyException' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Exception/NonExistingStrategyKeyException.php',
85
- 'Asm89\\Twig\\CacheExtension\\Extension' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Extension.php',
86
- 'Asm89\\Twig\\CacheExtension\\Node\\CacheNode' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Node/CacheNode.php',
87
- 'Asm89\\Twig\\CacheExtension\\TokenParser\\Cache' => __DIR__ . '/..' . '/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/TokenParser/Cache.php',
88
  'Composer\\Installers\\AglInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AglInstaller.php',
89
  'Composer\\Installers\\AimeosInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
90
  'Composer\\Installers\\AnnotateCmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
@@ -137,6 +120,7 @@ class ComposerStaticInit98e2addbab75aec03cd32e9c811af941
137
  'Composer\\Installers\\MauticInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MauticInstaller.php',
138
  'Composer\\Installers\\MayaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MayaInstaller.php',
139
  'Composer\\Installers\\MediaWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php',
 
140
  'Composer\\Installers\\MicroweberInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MicroweberInstaller.php',
141
  'Composer\\Installers\\ModxInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ModxInstaller.php',
142
  'Composer\\Installers\\MoodleInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MoodleInstaller.php',
@@ -145,6 +129,7 @@ class ComposerStaticInit98e2addbab75aec03cd32e9c811af941
145
  'Composer\\Installers\\OsclassInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
146
  'Composer\\Installers\\OxidInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
147
  'Composer\\Installers\\PPIInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
 
148
  'Composer\\Installers\\PhiftyInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
149
  'Composer\\Installers\\PhpBBInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
150
  'Composer\\Installers\\PimcoreInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
@@ -153,6 +138,7 @@ class ComposerStaticInit98e2addbab75aec03cd32e9c811af941
153
  'Composer\\Installers\\Plugin' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Plugin.php',
154
  'Composer\\Installers\\PortoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PortoInstaller.php',
155
  'Composer\\Installers\\PrestashopInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PrestashopInstaller.php',
 
156
  'Composer\\Installers\\PuppetInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PuppetInstaller.php',
157
  'Composer\\Installers\\PxcmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PxcmsInstaller.php',
158
  'Composer\\Installers\\RadPHPInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RadPHPInstaller.php',
@@ -164,18 +150,21 @@ class ComposerStaticInit98e2addbab75aec03cd32e9c811af941
164
  'Composer\\Installers\\ShopwareInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php',
165
  'Composer\\Installers\\SilverStripeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php',
166
  'Composer\\Installers\\SiteDirectInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SiteDirectInstaller.php',
 
167
  'Composer\\Installers\\SyDESInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SyDESInstaller.php',
168
  'Composer\\Installers\\SyliusInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SyliusInstaller.php',
169
  'Composer\\Installers\\Symfony1Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Symfony1Installer.php',
170
  'Composer\\Installers\\TYPO3CmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php',
171
  'Composer\\Installers\\TYPO3FlowInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php',
172
  'Composer\\Installers\\TaoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TaoInstaller.php',
 
173
  'Composer\\Installers\\TheliaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TheliaInstaller.php',
174
  'Composer\\Installers\\TuskInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TuskInstaller.php',
175
  'Composer\\Installers\\UserFrostingInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/UserFrostingInstaller.php',
176
  'Composer\\Installers\\VanillaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/VanillaInstaller.php',
177
  'Composer\\Installers\\VgmcpInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/VgmcpInstaller.php',
178
  'Composer\\Installers\\WHMCSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WHMCSInstaller.php',
 
179
  'Composer\\Installers\\WolfCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php',
180
  'Composer\\Installers\\WordPressInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WordPressInstaller.php',
181
  'Composer\\Installers\\YawikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
@@ -236,6 +225,23 @@ class ComposerStaticInit98e2addbab75aec03cd32e9c811af941
236
  'Timber\\Twig_Function' => __DIR__ . '/../..' . '/lib/Twig_Function.php',
237
  'Timber\\URLHelper' => __DIR__ . '/../..' . '/lib/URLHelper.php',
238
  'Timber\\User' => __DIR__ . '/../..' . '/lib/User.php',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
239
  'Twig\\Cache\\CacheInterface' => __DIR__ . '/..' . '/twig/twig/src/Cache/CacheInterface.php',
240
  'Twig\\Cache\\FilesystemCache' => __DIR__ . '/..' . '/twig/twig/src/Cache/FilesystemCache.php',
241
  'Twig\\Cache\\NullCache' => __DIR__ . '/..' . '/twig/twig/src/Cache/NullCache.php',
@@ -618,11 +624,11 @@ class ComposerStaticInit98e2addbab75aec03cd32e9c811af941
618
  public static function getInitializer(ClassLoader $loader)
619
  {
620
  return \Closure::bind(function () use ($loader) {
621
- $loader->prefixLengthsPsr4 = ComposerStaticInit98e2addbab75aec03cd32e9c811af941::$prefixLengthsPsr4;
622
- $loader->prefixDirsPsr4 = ComposerStaticInit98e2addbab75aec03cd32e9c811af941::$prefixDirsPsr4;
623
- $loader->fallbackDirsPsr4 = ComposerStaticInit98e2addbab75aec03cd32e9c811af941::$fallbackDirsPsr4;
624
- $loader->prefixesPsr0 = ComposerStaticInit98e2addbab75aec03cd32e9c811af941::$prefixesPsr0;
625
- $loader->classMap = ComposerStaticInit98e2addbab75aec03cd32e9c811af941::$classMap;
626
 
627
  }, null, ClassLoader::class);
628
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit6083f74763027d293cf808f57b917514
8
  {
9
  public static $files = array (
10
  '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
46
  );
47
 
48
  public static $fallbackDirsPsr4 = array (
49
+ 0 => __DIR__ . '/..' . '/twig/cache-extension/lib',
50
  );
51
 
52
  public static $prefixesPsr0 = array (
68
 
69
  public static $classMap = array (
70
  'AltoRouter' => __DIR__ . '/..' . '/altorouter/altorouter/AltoRouter.php',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  'Composer\\Installers\\AglInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AglInstaller.php',
72
  'Composer\\Installers\\AimeosInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
73
  'Composer\\Installers\\AnnotateCmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
120
  'Composer\\Installers\\MauticInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MauticInstaller.php',
121
  'Composer\\Installers\\MayaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MayaInstaller.php',
122
  'Composer\\Installers\\MediaWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php',
123
+ 'Composer\\Installers\\MiaoxingInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MiaoxingInstaller.php',
124
  'Composer\\Installers\\MicroweberInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MicroweberInstaller.php',
125
  'Composer\\Installers\\ModxInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ModxInstaller.php',
126
  'Composer\\Installers\\MoodleInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MoodleInstaller.php',
129
  'Composer\\Installers\\OsclassInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
130
  'Composer\\Installers\\OxidInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
131
  'Composer\\Installers\\PPIInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
132
+ 'Composer\\Installers\\PantheonInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PantheonInstaller.php',
133
  'Composer\\Installers\\PhiftyInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
134
  'Composer\\Installers\\PhpBBInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
135
  'Composer\\Installers\\PimcoreInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
138
  'Composer\\Installers\\Plugin' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Plugin.php',
139
  'Composer\\Installers\\PortoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PortoInstaller.php',
140
  'Composer\\Installers\\PrestashopInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PrestashopInstaller.php',
141
+ 'Composer\\Installers\\ProcessWireInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ProcessWireInstaller.php',
142
  'Composer\\Installers\\PuppetInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PuppetInstaller.php',
143
  'Composer\\Installers\\PxcmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PxcmsInstaller.php',
144
  'Composer\\Installers\\RadPHPInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RadPHPInstaller.php',
150
  'Composer\\Installers\\ShopwareInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php',
151
  'Composer\\Installers\\SilverStripeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php',
152
  'Composer\\Installers\\SiteDirectInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SiteDirectInstaller.php',
153
+ 'Composer\\Installers\\StarbugInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/StarbugInstaller.php',
154
  'Composer\\Installers\\SyDESInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SyDESInstaller.php',
155
  'Composer\\Installers\\SyliusInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SyliusInstaller.php',
156
  'Composer\\Installers\\Symfony1Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Symfony1Installer.php',
157
  'Composer\\Installers\\TYPO3CmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php',
158
  'Composer\\Installers\\TYPO3FlowInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php',
159
  'Composer\\Installers\\TaoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TaoInstaller.php',
160
+ 'Composer\\Installers\\TastyIgniterInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TastyIgniterInstaller.php',
161
  'Composer\\Installers\\TheliaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TheliaInstaller.php',
162
  'Composer\\Installers\\TuskInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TuskInstaller.php',
163
  'Composer\\Installers\\UserFrostingInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/UserFrostingInstaller.php',
164
  'Composer\\Installers\\VanillaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/VanillaInstaller.php',
165
  'Composer\\Installers\\VgmcpInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/VgmcpInstaller.php',
166
  'Composer\\Installers\\WHMCSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WHMCSInstaller.php',
167
+ 'Composer\\Installers\\WinterInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WinterInstaller.php',
168
  'Composer\\Installers\\WolfCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php',
169
  'Composer\\Installers\\WordPressInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WordPressInstaller.php',
170
  'Composer\\Installers\\YawikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
225
  'Timber\\Twig_Function' => __DIR__ . '/../..' . '/lib/Twig_Function.php',
226
  'Timber\\URLHelper' => __DIR__ . '/../..' . '/lib/URLHelper.php',
227
  'Timber\\User' => __DIR__ . '/../..' . '/lib/User.php',
228
+ 'Twig\\CacheExtension\\CacheProviderInterface' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/CacheProviderInterface.php',
229
+ 'Twig\\CacheExtension\\CacheProvider\\DoctrineCacheAdapter' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/CacheProvider/DoctrineCacheAdapter.php',
230
+ 'Twig\\CacheExtension\\CacheProvider\\PsrCacheAdapter' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/CacheProvider/PsrCacheAdapter.php',
231
+ 'Twig\\CacheExtension\\CacheStrategyInterface' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/CacheStrategyInterface.php',
232
+ 'Twig\\CacheExtension\\CacheStrategy\\BlackholeCacheStrategy' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/CacheStrategy/BlackholeCacheStrategy.php',
233
+ 'Twig\\CacheExtension\\CacheStrategy\\GenerationalCacheStrategy' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/CacheStrategy/GenerationalCacheStrategy.php',
234
+ 'Twig\\CacheExtension\\CacheStrategy\\IndexedChainingCacheStrategy' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/CacheStrategy/IndexedChainingCacheStrategy.php',
235
+ 'Twig\\CacheExtension\\CacheStrategy\\KeyGeneratorInterface' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/CacheStrategy/KeyGeneratorInterface.php',
236
+ 'Twig\\CacheExtension\\CacheStrategy\\LifetimeCacheStrategy' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/CacheStrategy/LifetimeCacheStrategy.php',
237
+ 'Twig\\CacheExtension\\Exception\\BaseException' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/Exception/BaseException.php',
238
+ 'Twig\\CacheExtension\\Exception\\InvalidCacheKeyException' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/Exception/InvalidCacheKeyException.php',
239
+ 'Twig\\CacheExtension\\Exception\\InvalidCacheLifetimeException' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/Exception/InvalidCacheLifetimeException.php',
240
+ 'Twig\\CacheExtension\\Exception\\NonExistingStrategyException' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/Exception/NonExistingStrategyException.php',
241
+ 'Twig\\CacheExtension\\Exception\\NonExistingStrategyKeyException' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/Exception/NonExistingStrategyKeyException.php',
242
+ 'Twig\\CacheExtension\\Extension' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/Extension.php',
243
+ 'Twig\\CacheExtension\\Node\\CacheNode' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/Node/CacheNode.php',
244
+ 'Twig\\CacheExtension\\TokenParser\\Cache' => __DIR__ . '/..' . '/twig/cache-extension/lib/Twig/CacheExtension/TokenParser/Cache.php',
245
  'Twig\\Cache\\CacheInterface' => __DIR__ . '/..' . '/twig/twig/src/Cache/CacheInterface.php',
246
  'Twig\\Cache\\FilesystemCache' => __DIR__ . '/..' . '/twig/twig/src/Cache/FilesystemCache.php',
247
  'Twig\\Cache\\NullCache' => __DIR__ . '/..' . '/twig/twig/src/Cache/NullCache.php',
624
  public static function getInitializer(ClassLoader $loader)
625
  {
626
  return \Closure::bind(function () use ($loader) {
627
+ $loader->prefixLengthsPsr4 = ComposerStaticInit6083f74763027d293cf808f57b917514::$prefixLengthsPsr4;
628
+ $loader->prefixDirsPsr4 = ComposerStaticInit6083f74763027d293cf808f57b917514::$prefixDirsPsr4;
629
+ $loader->fallbackDirsPsr4 = ComposerStaticInit6083f74763027d293cf808f57b917514::$fallbackDirsPsr4;
630
+ $loader->prefixesPsr0 = ComposerStaticInit6083f74763027d293cf808f57b917514::$prefixesPsr0;
631
+ $loader->classMap = ComposerStaticInit6083f74763027d293cf808f57b917514::$classMap;
632
 
633
  }, null, ClassLoader::class);
634
  }
vendor/composer/installed.json CHANGED
@@ -1,27 +1,28 @@
1
  [
2
  {
3
  "name": "altorouter/altorouter",
4
- "version": "v1.2.0",
5
- "version_normalized": "1.2.0.0",
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/dannyvankooten/AltoRouter.git",
9
- "reference": "39c50092470128c12284d332bb57f306bb5b58e4"
10
  },
11
  "dist": {
12
  "type": "zip",
13
- "url": "https://api.github.com/repos/dannyvankooten/AltoRouter/zipball/39c50092470128c12284d332bb57f306bb5b58e4",
14
- "reference": "39c50092470128c12284d332bb57f306bb5b58e4",
15
  "shasum": ""
16
  },
17
  "require": {
18
- "php": ">=5.3.0"
19
  },
20
  "require-dev": {
21
  "codeclimate/php-test-reporter": "dev-master",
22
- "phpunit/phpunit": "4.5.*"
 
23
  },
24
- "time": "2015-11-30T00:47:43+00:00",
25
  "type": "library",
26
  "installation-source": "dist",
27
  "autoload": {
@@ -56,77 +57,19 @@
56
  "routing"
57
  ]
58
  },
59
- {
60
- "name": "asm89/twig-cache-extension",
61
- "version": "1.4.0",
62
- "version_normalized": "1.4.0.0",
63
- "source": {
64
- "type": "git",
65
- "url": "https://github.com/asm89/twig-cache-extension.git",
66
- "reference": "13787226956ec766f4770722082288097aebaaf3"
67
- },
68
- "dist": {
69
- "type": "zip",
70
- "url": "https://api.github.com/repos/asm89/twig-cache-extension/zipball/13787226956ec766f4770722082288097aebaaf3",
71
- "reference": "13787226956ec766f4770722082288097aebaaf3",
72
- "shasum": ""
73
- },
74
- "require": {
75
- "php": ">=5.3.2",
76
- "twig/twig": "^1.0|^2.0"
77
- },
78
- "require-dev": {
79
- "doctrine/cache": "~1.0",
80
- "phpunit/phpunit": "^5.0 || ^4.8.10"
81
- },
82
- "suggest": {
83
- "psr/cache-implementation": "To make use of PSR-6 cache implementation via PsrCacheAdapter."
84
- },
85
- "time": "2020-01-01T20:47:37+00:00",
86
- "type": "library",
87
- "extra": {
88
- "branch-alias": {
89
- "dev-master": "1.4-dev"
90
- }
91
- },
92
- "installation-source": "dist",
93
- "autoload": {
94
- "psr-4": {
95
- "": "lib/"
96
- }
97
- },
98
- "notification-url": "https://packagist.org/downloads/",
99
- "license": [
100
- "MIT"
101
- ],
102
- "authors": [
103
- {
104
- "name": "Alexander",
105
- "email": "iam.asm89@gmail.com"
106
- }
107
- ],
108
- "description": "Cache fragments of templates directly within Twig.",
109
- "homepage": "https://github.com/asm89/twig-cache-extension",
110
- "keywords": [
111
- "cache",
112
- "extension",
113
- "twig"
114
- ],
115
- "abandoned": "twig/cache-extension"
116
- },
117
  {
118
  "name": "composer/installers",
119
- "version": "v1.9.0",
120
- "version_normalized": "1.9.0.0",
121
  "source": {
122
  "type": "git",
123
  "url": "https://github.com/composer/installers.git",
124
- "reference": "b93bcf0fa1fccb0b7d176b0967d969691cd74cca"
125
  },
126
  "dist": {
127
  "type": "zip",
128
- "url": "https://api.github.com/repos/composer/installers/zipball/b93bcf0fa1fccb0b7d176b0967d969691cd74cca",
129
- "reference": "b93bcf0fa1fccb0b7d176b0967d969691cd74cca",
130
  "shasum": ""
131
  },
132
  "require": {
@@ -137,18 +80,19 @@
137
  "shama/baton": "*"
138
  },
139
  "require-dev": {
140
- "composer/composer": "1.6.* || 2.0.*@dev",
141
- "composer/semver": "1.0.* || 2.0.*@dev",
142
- "phpunit/phpunit": "^4.8.36",
143
- "sebastian/comparator": "^1.2.4",
 
144
  "symfony/process": "^2.3"
145
  },
146
- "time": "2020-04-07T06:57:05+00:00",
147
  "type": "composer-plugin",
148
  "extra": {
149
  "class": "Composer\\Installers\\Plugin",
150
  "branch-alias": {
151
- "dev-master": "1.0-dev"
152
  }
153
  },
154
  "installation-source": "dist",
@@ -187,6 +131,7 @@
187
  "Porto",
188
  "RadPHP",
189
  "SMF",
 
190
  "Thelia",
191
  "Whmcs",
192
  "WolfCMS",
@@ -220,13 +165,16 @@
220
  "majima",
221
  "mako",
222
  "mediawiki",
 
223
  "modulework",
224
  "modx",
225
  "moodle",
226
  "osclass",
 
227
  "phpbb",
228
  "piwik",
229
  "ppi",
 
230
  "puppet",
231
  "pxcms",
232
  "reindex",
@@ -236,6 +184,7 @@
236
  "sydes",
237
  "sylius",
238
  "symfony",
 
239
  "typo3",
240
  "wordpress",
241
  "yawik",
@@ -247,6 +196,10 @@
247
  "url": "https://packagist.com",
248
  "type": "custom"
249
  },
 
 
 
 
250
  {
251
  "url": "https://tidelift.com/funding/github/packagist/composer/composer",
252
  "type": "tidelift"
@@ -255,17 +208,17 @@
255
  },
256
  {
257
  "name": "symfony/polyfill-ctype",
258
- "version": "v1.18.1",
259
- "version_normalized": "1.18.1.0",
260
  "source": {
261
  "type": "git",
262
  "url": "https://github.com/symfony/polyfill-ctype.git",
263
- "reference": "1c302646f6efc070cd46856e600e5e0684d6b454"
264
  },
265
  "dist": {
266
  "type": "zip",
267
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/1c302646f6efc070cd46856e600e5e0684d6b454",
268
- "reference": "1c302646f6efc070cd46856e600e5e0684d6b454",
269
  "shasum": ""
270
  },
271
  "require": {
@@ -274,11 +227,11 @@
274
  "suggest": {
275
  "ext-ctype": "For best performance"
276
  },
277
- "time": "2020-07-14T12:35:20+00:00",
278
  "type": "library",
279
  "extra": {
280
  "branch-alias": {
281
- "dev-master": "1.18-dev"
282
  },
283
  "thanks": {
284
  "name": "symfony/polyfill",
@@ -331,6 +284,76 @@
331
  }
332
  ]
333
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
334
  {
335
  "name": "twig/twig",
336
  "version": "v1.42.5",
@@ -399,30 +422,30 @@
399
  },
400
  {
401
  "name": "upstatement/routes",
402
- "version": "0.5",
403
- "version_normalized": "0.5.0.0",
404
  "source": {
405
  "type": "git",
406
  "url": "https://github.com/Upstatement/routes.git",
407
- "reference": "3267d28be0a73f197087d58384e1a358d85671b6"
408
  },
409
  "dist": {
410
  "type": "zip",
411
- "url": "https://api.github.com/repos/Upstatement/routes/zipball/3267d28be0a73f197087d58384e1a358d85671b6",
412
- "reference": "3267d28be0a73f197087d58384e1a358d85671b6",
413
  "shasum": ""
414
  },
415
  "require": {
416
- "altorouter/altorouter": "^1.1.0",
417
  "composer/installers": "~1.0",
418
- "php": ">=5.3.0"
419
  },
420
  "require-dev": {
421
- "phpunit/phpunit": "3.7.*",
422
- "satooshi/php-coveralls": "dev-master",
423
  "wp-cli/wp-cli": "*"
424
  },
425
- "time": "2018-12-04T01:13:41+00:00",
426
  "type": "library",
427
  "installation-source": "dist",
428
  "autoload": {
1
  [
2
  {
3
  "name": "altorouter/altorouter",
4
+ "version": "2.0.1",
5
+ "version_normalized": "2.0.1.0",
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/dannyvankooten/AltoRouter.git",
9
+ "reference": "127f6e96998708a31ef32252985bea82e3b03888"
10
  },
11
  "dist": {
12
  "type": "zip",
13
+ "url": "https://api.github.com/repos/dannyvankooten/AltoRouter/zipball/127f6e96998708a31ef32252985bea82e3b03888",
14
+ "reference": "127f6e96998708a31ef32252985bea82e3b03888",
15
  "shasum": ""
16
  },
17
  "require": {
18
+ "php": ">=5.6.0"
19
  },
20
  "require-dev": {
21
  "codeclimate/php-test-reporter": "dev-master",
22
+ "phpunit/phpunit": "5.7.*",
23
+ "squizlabs/php_codesniffer": "3.4.2"
24
  },
25
+ "time": "2019-11-23T11:01:41+00:00",
26
  "type": "library",
27
  "installation-source": "dist",
28
  "autoload": {
57
  "routing"
58
  ]
59
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  {
61
  "name": "composer/installers",
62
+ "version": "v1.12.0",
63
+ "version_normalized": "1.12.0.0",
64
  "source": {
65
  "type": "git",
66
  "url": "https://github.com/composer/installers.git",
67
+ "reference": "d20a64ed3c94748397ff5973488761b22f6d3f19"
68
  },
69
  "dist": {
70
  "type": "zip",
71
+ "url": "https://api.github.com/repos/composer/installers/zipball/d20a64ed3c94748397ff5973488761b22f6d3f19",
72
+ "reference": "d20a64ed3c94748397ff5973488761b22f6d3f19",
73
  "shasum": ""
74
  },
75
  "require": {
80
  "shama/baton": "*"
81
  },
82
  "require-dev": {
83
+ "composer/composer": "1.6.* || ^2.0",
84
+ "composer/semver": "^1 || ^3",
85
+ "phpstan/phpstan": "^0.12.55",
86
+ "phpstan/phpstan-phpunit": "^0.12.16",
87
+ "symfony/phpunit-bridge": "^4.2 || ^5",
88
  "symfony/process": "^2.3"
89
  },
90
+ "time": "2021-09-13T08:19:44+00:00",
91
  "type": "composer-plugin",
92
  "extra": {
93
  "class": "Composer\\Installers\\Plugin",
94
  "branch-alias": {
95
+ "dev-main": "1.x-dev"
96
  }
97
  },
98
  "installation-source": "dist",
131
  "Porto",
132
  "RadPHP",
133
  "SMF",
134
+ "Starbug",
135
  "Thelia",
136
  "Whmcs",
137
  "WolfCMS",
165
  "majima",
166
  "mako",
167
  "mediawiki",
168
+ "miaoxing",
169
  "modulework",
170
  "modx",
171
  "moodle",
172
  "osclass",
173
+ "pantheon",
174
  "phpbb",
175
  "piwik",
176
  "ppi",
177
+ "processwire",
178
  "puppet",
179
  "pxcms",
180
  "reindex",
184
  "sydes",
185
  "sylius",
186
  "symfony",
187
+ "tastyigniter",
188
  "typo3",
189
  "wordpress",
190
  "yawik",
196
  "url": "https://packagist.com",
197
  "type": "custom"
198
  },
199
+ {
200
+ "url": "https://github.com/composer",
201
+ "type": "github"
202
+ },
203
  {
204
  "url": "https://tidelift.com/funding/github/packagist/composer/composer",
205
  "type": "tidelift"
208
  },
209
  {
210
  "name": "symfony/polyfill-ctype",
211
+ "version": "v1.19.0",
212
+ "version_normalized": "1.19.0.0",
213
  "source": {
214
  "type": "git",
215
  "url": "https://github.com/symfony/polyfill-ctype.git",
216
+ "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b"
217
  },
218
  "dist": {
219
  "type": "zip",
220
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/aed596913b70fae57be53d86faa2e9ef85a2297b",
221
+ "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b",
222
  "shasum": ""
223
  },
224
  "require": {
227
  "suggest": {
228
  "ext-ctype": "For best performance"
229
  },
230
+ "time": "2020-10-23T09:01:57+00:00",
231
  "type": "library",
232
  "extra": {
233
  "branch-alias": {
234
+ "dev-main": "1.19-dev"
235
  },
236
  "thanks": {
237
  "name": "symfony/polyfill",
284
  }
285
  ]
286
  },
287
+ {
288
+ "name": "twig/cache-extension",
289
+ "version": "v1.5.0",
290
+ "version_normalized": "1.5.0.0",
291
+ "source": {
292
+ "type": "git",
293
+ "url": "https://github.com/twigphp/twig-cache-extension.git",
294
+ "reference": "2c243643f59132194458bd03c745b079bbb12e78"
295
+ },
296
+ "dist": {
297
+ "type": "zip",
298
+ "url": "https://api.github.com/repos/twigphp/twig-cache-extension/zipball/2c243643f59132194458bd03c745b079bbb12e78",
299
+ "reference": "2c243643f59132194458bd03c745b079bbb12e78",
300
+ "shasum": ""
301
+ },
302
+ "require": {
303
+ "php": ">=5.3.2",
304
+ "twig/twig": "^1.38|^2.4|^3.0"
305
+ },
306
+ "require-dev": {
307
+ "doctrine/cache": "~1.0",
308
+ "phpunit/phpunit": "^5.0 || ^4.8.36",
309
+ "psr/cache": "^1.0",
310
+ "sebastian/comparator": "^1.2.4|^2.0"
311
+ },
312
+ "suggest": {
313
+ "psr/cache-implementation": "To make use of PSR-6 cache implementation via PsrCacheAdapter."
314
+ },
315
+ "time": "2020-10-04T09:56:48+00:00",
316
+ "type": "library",
317
+ "extra": {
318
+ "branch-alias": {
319
+ "dev-master": "1.5-dev"
320
+ }
321
+ },
322
+ "installation-source": "dist",
323
+ "autoload": {
324
+ "psr-4": {
325
+ "": "lib/"
326
+ }
327
+ },
328
+ "notification-url": "https://packagist.org/downloads/",
329
+ "license": [
330
+ "MIT"
331
+ ],
332
+ "authors": [
333
+ {
334
+ "name": "Alexander",
335
+ "email": "iam.asm89@gmail.com"
336
+ }
337
+ ],
338
+ "description": "Cache fragments of templates directly within Twig.",
339
+ "homepage": "https://github.com/twigphp/twig-cache-extension",
340
+ "keywords": [
341
+ "cache",
342
+ "extension",
343
+ "twig"
344
+ ],
345
+ "funding": [
346
+ {
347
+ "url": "https://github.com/fabpot",
348
+ "type": "github"
349
+ },
350
+ {
351
+ "url": "https://tidelift.com/funding/github/packagist/twig/twig",
352
+ "type": "tidelift"
353
+ }
354
+ ],
355
+ "abandoned": "twig/cache-extra"
356
+ },
357
  {
358
  "name": "twig/twig",
359
  "version": "v1.42.5",
422
  },
423
  {
424
  "name": "upstatement/routes",
425
+ "version": "0.8",
426
+ "version_normalized": "0.8.0.0",
427
  "source": {
428
  "type": "git",
429
  "url": "https://github.com/Upstatement/routes.git",
430
+ "reference": "9294660710ba5cab48a62002210f74889c511701"
431
  },
432
  "dist": {
433
  "type": "zip",
434
+ "url": "https://api.github.com/repos/Upstatement/routes/zipball/9294660710ba5cab48a62002210f74889c511701",
435
+ "reference": "9294660710ba5cab48a62002210f74889c511701",
436
  "shasum": ""
437
  },
438
  "require": {
439
+ "altorouter/altorouter": "^2.0",
440
  "composer/installers": "~1.0",
441
+ "php": ">=5.6.0"
442
  },
443
  "require-dev": {
444
+ "phpunit/phpunit": "5.7.16",
445
+ "satooshi/php-coveralls": "*",
446
  "wp-cli/wp-cli": "*"
447
  },
448
+ "time": "2020-08-14T20:20:29+00:00",
449
  "type": "library",
450
  "installation-source": "dist",
451
  "autoload": {
vendor/composer/installers/.github/workflows/continuous-integration.yml ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: "Continuous Integration"
2
+
3
+ on:
4
+ - push
5
+ - pull_request
6
+
7
+ env:
8
+ COMPOSER_FLAGS: "--ansi --no-interaction --no-progress --prefer-dist"
9
+ SYMFONY_PHPUNIT_REMOVE_RETURN_TYPEHINT: "1"
10
+
11
+ jobs:
12
+ tests:
13
+ name: "CI"
14
+
15
+ runs-on: ubuntu-latest
16
+
17
+ strategy:
18
+ matrix:
19
+ php-version:
20
+ - "5.3"
21
+ - "5.4"
22
+ - "5.5"
23
+ - "5.6"
24
+ - "7.0"
25
+ - "7.1"
26
+ - "7.2"
27
+ - "7.3"
28
+ - "7.4"
29
+ - "8.0"
30
+ - "8.1"
31
+ dependencies: [locked]
32
+ include:
33
+ - php-version: "5.3"
34
+ dependencies: lowest
35
+ - php-version: "8.1"
36
+ dependencies: lowest
37
+
38
+ steps:
39
+ - name: "Checkout"
40
+ uses: "actions/checkout@v2"
41
+
42
+ - name: "Install PHP"
43
+ uses: "shivammathur/setup-php@v2"
44
+ with:
45
+ coverage: "none"
46
+ php-version: "${{ matrix.php-version }}"
47
+ tools: composer:snapshot
48
+
49
+ - name: Get composer cache directory
50
+ id: composercache
51
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
52
+
53
+ - name: Cache dependencies
54
+ uses: actions/cache@v2
55
+ with:
56
+ path: ${{ steps.composercache.outputs.dir }}
57
+ key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
58
+ restore-keys: ${{ runner.os }}-composer-
59
+
60
+ - name: "Handle lowest dependencies update"
61
+ if: "contains(matrix.dependencies, 'lowest')"
62
+ run: "echo \"COMPOSER_FLAGS=$COMPOSER_FLAGS --prefer-lowest\" >> $GITHUB_ENV"
63
+
64
+ - name: "Upgrade phpunit-bridge if needed for php 8 lowest build"
65
+ if: "contains(matrix.php-version, '8.')"
66
+ run: |
67
+ composer require symfony/phpunit-bridge:^5.3.3 --dev --no-update
68
+
69
+ - name: "Install latest dependencies"
70
+ run: |
71
+ # Remove PHPStan as it requires a newer PHP
72
+ composer remove phpstan/phpstan phpstan/phpstan-phpunit --dev --no-update
73
+ composer update ${{ env.COMPOSER_FLAGS }}
74
+
75
+ - name: "Run tests"
76
+ run: "vendor/bin/simple-phpunit --verbose"
vendor/composer/installers/.github/workflows/lint.yml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: "PHP Lint"
2
+
3
+ on:
4
+ - push
5
+ - pull_request
6
+
7
+ jobs:
8
+ tests:
9
+ name: "Lint"
10
+
11
+ runs-on: ubuntu-latest
12
+
13
+ strategy:
14
+ matrix:
15
+ php-version:
16
+ - "5.3"
17
+ - "8.0"
18
+
19
+ steps:
20
+ - name: "Checkout"
21
+ uses: "actions/checkout@v2"
22
+
23
+ - name: "Install PHP"
24
+ uses: "shivammathur/setup-php@v2"
25
+ with:
26
+ coverage: "none"
27
+ php-version: "${{ matrix.php-version }}"
28
+
29
+ - name: "Lint PHP files"
30
+ run: "find src/ -type f -name '*.php' -print0 | xargs -0 -L1 -P4 -- php -l -f"
vendor/composer/installers/.github/workflows/phpstan.yml ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: "PHPStan"
2
+
3
+ on:
4
+ - push
5
+ - pull_request
6
+
7
+ env:
8
+ COMPOSER_FLAGS: "--ansi --no-interaction --no-progress --prefer-dist"
9
+ SYMFONY_PHPUNIT_VERSION: ""
10
+
11
+ jobs:
12
+ tests:
13
+ name: "PHPStan"
14
+
15
+ runs-on: ubuntu-latest
16
+
17
+ strategy:
18
+ matrix:
19
+ php-version:
20
+ # pinned to 7.4 because we need PHPUnit 7.5 which does not support PHP 8
21
+ - "7.4"
22
+
23
+ steps:
24
+ - name: "Checkout"
25
+ uses: "actions/checkout@v2"
26
+
27
+ - name: "Install PHP"
28
+ uses: "shivammathur/setup-php@v2"
29
+ with:
30
+ coverage: "none"
31
+ php-version: "${{ matrix.php-version }}"
32
+
33
+ - name: Get composer cache directory
34
+ id: composercache
35
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
36
+
37
+ - name: Cache dependencies
38
+ uses: actions/cache@v2
39
+ with:
40
+ path: ${{ steps.composercache.outputs.dir }}
41
+ key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
42
+ restore-keys: ${{ runner.os }}-composer-
43
+
44
+ - name: "Install latest dependencies"
45
+ run: "composer update ${{ env.COMPOSER_FLAGS }}"
46
+
47
+ - name: Run PHPStan
48
+ # Locked to phpunit 7.5 here as newer ones have void return types which break inheritance
49
+ run: |
50
+ composer require --dev phpunit/phpunit:^7.5.20 --with-all-dependencies ${{ env.COMPOSER_FLAGS }}
51
+ vendor/bin/phpstan analyse
vendor/composer/installers/composer.json CHANGED
@@ -46,10 +46,12 @@
46
  "MODX",
47
  "MODX Evo",
48
  "MediaWiki",
 
49
  "OXID",
50
  "osclass",
51
  "MODULEWork",
52
  "Moodle",
 
53
  "Piwik",
54
  "pxcms",
55
  "phpBB",
@@ -57,15 +59,18 @@
57
  "PPI",
58
  "Puppet",
59
  "Porto",
 
60
  "RadPHP",
61
  "ReIndex",
62
  "Roundcube",
63
  "shopware",
64
  "SilverStripe",
65
  "SMF",
 
66
  "SyDES",
67
  "Sylius",
68
  "symfony",
 
69
  "Thelia",
70
  "TYPO3",
71
  "WHMCS",
@@ -86,10 +91,13 @@
86
  "autoload": {
87
  "psr-4": { "Composer\\Installers\\": "src/Composer/Installers" }
88
  },
 
 
 
89
  "extra": {
90
  "class": "Composer\\Installers\\Plugin",
91
  "branch-alias": {
92
- "dev-master": "1.0-dev"
93
  }
94
  },
95
  "replace": {
@@ -100,13 +108,15 @@
100
  "composer-plugin-api": "^1.0 || ^2.0"
101
  },
102
  "require-dev": {
103
- "composer/composer": "1.6.* || 2.0.*@dev",
104
- "composer/semver": "1.0.* || 2.0.*@dev",
105
- "phpunit/phpunit": "^4.8.36",
106
- "sebastian/comparator": "^1.2.4",
107
- "symfony/process": "^2.3"
 
108
  },
109
  "scripts": {
110
- "test": "phpunit"
 
111
  }
112
  }
46
  "MODX",
47
  "MODX Evo",
48
  "MediaWiki",
49
+ "Miaoxing",
50
  "OXID",
51
  "osclass",
52
  "MODULEWork",
53
  "Moodle",
54
+ "Pantheon",
55
  "Piwik",
56
  "pxcms",
57
  "phpBB",
59
  "PPI",
60
  "Puppet",
61
  "Porto",
62
+ "ProcessWire",
63
  "RadPHP",
64
  "ReIndex",
65
  "Roundcube",
66
  "shopware",
67
  "SilverStripe",
68
  "SMF",
69
+ "Starbug",
70
  "SyDES",
71
  "Sylius",
72
  "symfony",
73
+ "TastyIgniter",
74
  "Thelia",
75
  "TYPO3",
76
  "WHMCS",
91
  "autoload": {
92
  "psr-4": { "Composer\\Installers\\": "src/Composer/Installers" }
93
  },
94
+ "autoload-dev": {
95
+ "psr-4": { "Composer\\Installers\\Test\\": "tests/Composer/Installers/Test" }
96
+ },
97
  "extra": {
98
  "class": "Composer\\Installers\\Plugin",
99
  "branch-alias": {
100
+ "dev-main": "1.x-dev"
101
  }
102
  },
103
  "replace": {
108
  "composer-plugin-api": "^1.0 || ^2.0"
109
  },
110
  "require-dev": {
111
+ "composer/composer": "1.6.* || ^2.0",
112
+ "composer/semver": "^1 || ^3",
113
+ "symfony/phpunit-bridge": "^4.2 || ^5",
114
+ "phpstan/phpstan": "^0.12.55",
115
+ "symfony/process": "^2.3",
116
+ "phpstan/phpstan-phpunit": "^0.12.16"
117
  },
118
  "scripts": {
119
+ "test": "SYMFONY_PHPUNIT_REMOVE_RETURN_TYPEHINT=1 vendor/bin/simple-phpunit",
120
+ "phpstan": "vendor/bin/phpstan analyse"
121
  }
122
  }
vendor/composer/installers/phpstan.neon.dist ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ parameters:
2
+ level: 5
3
+ paths:
4
+ - src
5
+ - tests
6
+ excludes_analyse:
7
+ - tests/Composer/Installers/Test/PolyfillTestCase.php
8
+
9
+ includes:
10
+ - vendor/phpstan/phpstan-phpunit/extension.neon
vendor/composer/installers/src/Composer/Installers/BaseInstaller.php CHANGED
@@ -74,8 +74,8 @@ abstract class BaseInstaller
74
  /**
75
  * For an installer to override to modify the vars per installer.
76
  *
77
- * @param array $vars
78
- * @return array
79
  */
80
  public function inflectPackageVars($vars)
81
  {
@@ -85,7 +85,7 @@ abstract class BaseInstaller
85
  /**
86
  * Gets the installer's locations
87
  *
88
- * @return array
89
  */
90
  public function getLocations()
91
  {
@@ -95,8 +95,8 @@ abstract class BaseInstaller
95
  /**
96
  * Replace vars in a path
97
  *
98
- * @param string $path
99
- * @param array $vars
100
  * @return string
101
  */
102
  protected function templatePath($path, array $vars = array())
@@ -121,7 +121,7 @@ abstract class BaseInstaller
121
  * @param string $name
122
  * @param string $type
123
  * @param string $vendor = NULL
124
- * @return string
125
  */
126
  protected function mapCustomInstallPaths(array $paths, $name, $type, $vendor = NULL)
127
  {
74
  /**
75
  * For an installer to override to modify the vars per installer.
76
  *
77
+ * @param array<string, string> $vars This will normally receive array{name: string, vendor: string, type: string}
78
+ * @return array<string, string>
79
  */
80
  public function inflectPackageVars($vars)
81
  {
85
  /**
86
  * Gets the installer's locations
87
  *
88
+ * @return array<string, string> map of package types => install path
89
  */
90
  public function getLocations()
91
  {
95
  /**
96
  * Replace vars in a path
97
  *
98
+ * @param string $path
99
+ * @param array<string, string> $vars
100
  * @return string
101
  */
102
  protected function templatePath($path, array $vars = array())
121
  * @param string $name
122
  * @param string $type
123
  * @param string $vendor = NULL
124
+ * @return string|false
125
  */
126
  protected function mapCustomInstallPaths(array $paths, $name, $type, $vendor = NULL)
127
  {
vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php CHANGED
@@ -2,6 +2,7 @@
2
  namespace Composer\Installers;
3
 
4
  use Composer\DependencyResolver\Pool;
 
5
 
6
  class CakePHPInstaller extends BaseInstaller
7
  {
@@ -46,17 +47,10 @@ class CakePHPInstaller extends BaseInstaller
46
  * @param string $matcher
47
  * @param string $version
48
  * @return bool
 
49
  */
50
  protected function matchesCakeVersion($matcher, $version)
51
  {
52
- if (class_exists('Composer\Semver\Constraint\MultiConstraint')) {
53
- $multiClass = 'Composer\Semver\Constraint\MultiConstraint';
54
- $constraintClass = 'Composer\Semver\Constraint\Constraint';
55
- } else {
56
- $multiClass = 'Composer\Package\LinkConstraint\MultiConstraint';
57
- $constraintClass = 'Composer\Package\LinkConstraint\VersionConstraint';
58
- }
59
-
60
  $repositoryManager = $this->composer->getRepositoryManager();
61
  if (! $repositoryManager) {
62
  return false;
@@ -67,6 +61,6 @@ class CakePHPInstaller extends BaseInstaller
67
  return false;
68
  }
69
 
70
- return $repos->findPackage('cakephp/cakephp', new $constraintClass($matcher, $version)) !== null;
71
  }
72
  }
2
  namespace Composer\Installers;
3
 
4
  use Composer\DependencyResolver\Pool;
5
+ use Composer\Semver\Constraint\Constraint;
6
 
7
  class CakePHPInstaller extends BaseInstaller
8
  {
47
  * @param string $matcher
48
  * @param string $version
49
  * @return bool
50
+ * @phpstan-param Constraint::STR_OP_* $matcher
51
  */
52
  protected function matchesCakeVersion($matcher, $version)
53
  {
 
 
 
 
 
 
 
 
54
  $repositoryManager = $this->composer->getRepositoryManager();
55
  if (! $repositoryManager) {
56
  return false;
61
  return false;
62
  }
63
 
64
+ return $repos->findPackage('cakephp/cakephp', new Constraint($matcher, $version)) !== null;
65
  }
66
  }
vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php CHANGED
@@ -12,9 +12,7 @@ class CockpitInstaller extends BaseInstaller
12
  *
13
  * Strip `module-` prefix from package name.
14
  *
15
- * @param array @vars
16
- *
17
- * @return array
18
  */
19
  public function inflectPackageVars($vars)
20
  {
12
  *
13
  * Strip `module-` prefix from package name.
14
  *
15
+ * {@inheritDoc}
 
 
16
  */
17
  public function inflectPackageVars($vars)
18
  {
vendor/composer/installers/src/Composer/Installers/Installer.php CHANGED
@@ -9,6 +9,7 @@ use Composer\IO\IOInterface;
9
  use Composer\Package\PackageInterface;
10
  use Composer\Repository\InstalledRepositoryInterface;
11
  use Composer\Util\Filesystem;
 
12
 
13
  class Installer extends LibraryInstaller
14
  {
@@ -49,6 +50,7 @@ class Installer extends LibraryInstaller
49
  'fuelphp' => 'FuelphpInstaller',
50
  'grav' => 'GravInstaller',
51
  'hurad' => 'HuradInstaller',
 
52
  'imagecms' => 'ImageCMSInstaller',
53
  'itop' => 'ItopInstaller',
54
  'joomla' => 'JoomlaInstaller',
@@ -68,6 +70,7 @@ class Installer extends LibraryInstaller
68
  'maya' => 'MayaInstaller',
69
  'mautic' => 'MauticInstaller',
70
  'mediawiki' => 'MediaWikiInstaller',
 
71
  'microweber' => 'MicroweberInstaller',
72
  'modulework' => 'MODULEWorkInstaller',
73
  'modx' => 'ModxInstaller',
@@ -76,7 +79,7 @@ class Installer extends LibraryInstaller
76
  'october' => 'OctoberInstaller',
77
  'ontowiki' => 'OntoWikiInstaller',
78
  'oxid' => 'OxidInstaller',
79
- 'osclass' => 'OsclassInstaller',
80
  'pxcms' => 'PxcmsInstaller',
81
  'phpbb' => 'PhpBBInstaller',
82
  'pimcore' => 'PimcoreInstaller',
@@ -87,6 +90,8 @@ class Installer extends LibraryInstaller
87
  'radphp' => 'RadPHPInstaller',
88
  'phifty' => 'PhiftyInstaller',
89
  'porto' => 'PortoInstaller',
 
 
90
  'redaxo' => 'RedaxoInstaller',
91
  'redaxo5' => 'Redaxo5Installer',
92
  'reindex' => 'ReIndexInstaller',
@@ -95,6 +100,7 @@ class Installer extends LibraryInstaller
95
  'sitedirect' => 'SiteDirectInstaller',
96
  'silverstripe' => 'SilverStripeInstaller',
97
  'smf' => 'SMFInstaller',
 
98
  'sydes' => 'SyDESInstaller',
99
  'sylius' => 'SyliusInstaller',
100
  'symfony1' => 'Symfony1Installer',
@@ -106,6 +112,7 @@ class Installer extends LibraryInstaller
106
  'userfrosting' => 'UserFrostingInstaller',
107
  'vanilla' => 'VanillaInstaller',
108
  'whmcs' => 'WHMCSInstaller',
 
109
  'wolfcms' => 'WolfCMSInstaller',
110
  'wordpress' => 'WordPressInstaller',
111
  'yawik' => 'YawikInstaller',
@@ -160,9 +167,23 @@ class Installer extends LibraryInstaller
160
 
161
  public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package)
162
  {
163
- parent::uninstall($repo, $package);
164
  $installPath = $this->getPackageBasePath($package);
165
- $this->io->write(sprintf('Deleting %s - %s', $installPath, !file_exists($installPath) ? '<comment>deleted</comment>' : '<error>not deleted</error>'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
  }
167
 
168
  /**
@@ -184,23 +205,20 @@ class Installer extends LibraryInstaller
184
  /**
185
  * Finds a supported framework type if it exists and returns it
186
  *
187
- * @param string $type
188
- * @return string
189
  */
190
  protected function findFrameworkType($type)
191
  {
192
- $frameworkType = false;
193
-
194
  krsort($this->supportedTypes);
195
 
196
  foreach ($this->supportedTypes as $key => $val) {
197
  if ($key === substr($type, 0, strlen($key))) {
198
- $frameworkType = substr($type, 0, strlen($key));
199
- break;
200
  }
201
  }
202
 
203
- return $frameworkType;
204
  }
205
 
206
  /**
9
  use Composer\Package\PackageInterface;
10
  use Composer\Repository\InstalledRepositoryInterface;
11
  use Composer\Util\Filesystem;
12
+ use React\Promise\PromiseInterface;
13
 
14
  class Installer extends LibraryInstaller
15
  {
50
  'fuelphp' => 'FuelphpInstaller',
51
  'grav' => 'GravInstaller',
52
  'hurad' => 'HuradInstaller',
53
+ 'tastyigniter' => 'TastyIgniterInstaller',
54
  'imagecms' => 'ImageCMSInstaller',
55
  'itop' => 'ItopInstaller',
56
  'joomla' => 'JoomlaInstaller',
70
  'maya' => 'MayaInstaller',
71
  'mautic' => 'MauticInstaller',
72
  'mediawiki' => 'MediaWikiInstaller',
73
+ 'miaoxing' => 'MiaoxingInstaller',
74
  'microweber' => 'MicroweberInstaller',
75
  'modulework' => 'MODULEWorkInstaller',
76
  'modx' => 'ModxInstaller',
79
  'october' => 'OctoberInstaller',
80
  'ontowiki' => 'OntoWikiInstaller',
81
  'oxid' => 'OxidInstaller',
82
+ 'osclass' => 'OsclassInstaller',
83
  'pxcms' => 'PxcmsInstaller',
84
  'phpbb' => 'PhpBBInstaller',
85
  'pimcore' => 'PimcoreInstaller',
90
  'radphp' => 'RadPHPInstaller',
91
  'phifty' => 'PhiftyInstaller',
92
  'porto' => 'PortoInstaller',
93
+ 'processwire' => 'ProcessWireInstaller',
94
+ 'quicksilver' => 'PantheonInstaller',
95
  'redaxo' => 'RedaxoInstaller',
96
  'redaxo5' => 'Redaxo5Installer',
97
  'reindex' => 'ReIndexInstaller',
100
  'sitedirect' => 'SiteDirectInstaller',
101
  'silverstripe' => 'SilverStripeInstaller',
102
  'smf' => 'SMFInstaller',
103
+ 'starbug' => 'StarbugInstaller',
104
  'sydes' => 'SyDESInstaller',
105
  'sylius' => 'SyliusInstaller',
106
  'symfony1' => 'Symfony1Installer',
112
  'userfrosting' => 'UserFrostingInstaller',
113
  'vanilla' => 'VanillaInstaller',
114
  'whmcs' => 'WHMCSInstaller',
115
+ 'winter' => 'WinterInstaller',
116
  'wolfcms' => 'WolfCMSInstaller',
117
  'wordpress' => 'WordPressInstaller',
118
  'yawik' => 'YawikInstaller',
167
 
168
  public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package)
169
  {
 
170
  $installPath = $this->getPackageBasePath($package);
171
+ $io = $this->io;
172
+ $outputStatus = function () use ($io, $installPath) {
173
+ $io->write(sprintf('Deleting %s - %s', $installPath, !file_exists($installPath) ? '<comment>deleted</comment>' : '<error>not deleted</error>'));
174
+ };
175
+
176
+ $promise = parent::uninstall($repo, $package);
177
+
178
+ // Composer v2 might return a promise here
179
+ if ($promise instanceof PromiseInterface) {
180
+ return $promise->then($outputStatus);
181
+ }
182
+
183
+ // If not, execute the code right away as parent::uninstall executed synchronously (composer v1, or v2 without async)
184
+ $outputStatus();
185
+
186
+ return null;
187
  }
188
 
189
  /**
205
  /**
206
  * Finds a supported framework type if it exists and returns it
207
  *
208
+ * @param string $type
209
+ * @return string|false
210
  */
211
  protected function findFrameworkType($type)
212
  {
 
 
213
  krsort($this->supportedTypes);
214
 
215
  foreach ($this->supportedTypes as $key => $val) {
216
  if ($key === substr($type, 0, strlen($key))) {
217
+ return substr($type, 0, strlen($key));
 
218
  }
219
  }
220
 
221
+ return false;
222
  }
223
 
224
  /**
vendor/composer/installers/src/Composer/Installers/MauticInstaller.php CHANGED
@@ -1,22 +1,45 @@
1
  <?php
2
  namespace Composer\Installers;
3
 
 
 
4
  class MauticInstaller extends BaseInstaller
5
  {
6
  protected $locations = array(
7
- 'plugin' => 'plugins/{$name}/',
8
- 'theme' => 'themes/{$name}/',
 
9
  );
10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  /**
12
  * Format package name of mautic-plugins to CamelCase
13
  */
14
  public function inflectPackageVars($vars)
15
  {
16
- if ($vars['type'] == 'mautic-plugin') {
17
- $vars['name'] = preg_replace_callback('/(-[a-z])/', function ($matches) {
18
- return strtoupper($matches[0][1]);
19
- }, ucfirst($vars['name']));
20
  }
21
 
22
  return $vars;
1
  <?php
2
  namespace Composer\Installers;
3
 
4
+ use Composer\Package\PackageInterface;
5
+
6
  class MauticInstaller extends BaseInstaller
7
  {
8
  protected $locations = array(
9
+ 'plugin' => 'plugins/{$name}/',
10
+ 'theme' => 'themes/{$name}/',
11
+ 'core' => 'app/',
12
  );
13
 
14
+ private function getDirectoryName()
15
+ {
16
+ $extra = $this->package->getExtra();
17
+ if (!empty($extra['install-directory-name'])) {
18
+ return $extra['install-directory-name'];
19
+ }
20
+
21
+ return $this->toCamelCase($this->package->getPrettyName());
22
+ }
23
+
24
+ /**
25
+ * @param string $packageName
26
+ *
27
+ * @return string
28
+ */
29
+ private function toCamelCase($packageName)
30
+ {
31
+ return str_replace(' ', '', ucwords(str_replace('-', ' ', basename($packageName))));
32
+ }
33
+
34
  /**
35
  * Format package name of mautic-plugins to CamelCase
36
  */
37
  public function inflectPackageVars($vars)
38
  {
39
+
40
+ if ($vars['type'] == 'mautic-plugin' || $vars['type'] == 'mautic-theme') {
41
+ $directoryName = $this->getDirectoryName();
42
+ $vars['name'] = $directoryName;
43
  }
44
 
45
  return $vars;
vendor/composer/installers/src/Composer/Installers/MiaoxingInstaller.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Composer\Installers;
4
+
5
+ class MiaoxingInstaller extends BaseInstaller
6
+ {
7
+ protected $locations = array(
8
+ 'plugin' => 'plugins/{$name}/',
9
+ );
10
+ }
vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php CHANGED
@@ -18,6 +18,7 @@ class MoodleInstaller extends BaseInstaller
18
  'cachestore' => 'cache/stores/{$name}/',
19
  'cachelock' => 'cache/locks/{$name}/',
20
  'calendartype' => 'calendar/type/{$name}/',
 
21
  'format' => 'course/format/{$name}/',
22
  'coursereport' => 'course/report/{$name}/',
23
  'customcertelement' => 'mod/customcert/element/{$name}/',
18
  'cachestore' => 'cache/stores/{$name}/',
19
  'cachelock' => 'cache/locks/{$name}/',
20
  'calendartype' => 'calendar/type/{$name}/',
21
+ 'fileconverter' => 'files/converter/{$name}/',
22
  'format' => 'course/format/{$name}/',
23
  'coursereport' => 'course/report/{$name}/',
24
  'customcertelement' => 'mod/customcert/element/{$name}/',
vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php CHANGED
@@ -6,7 +6,7 @@ class OctoberInstaller extends BaseInstaller
6
  protected $locations = array(
7
  'module' => 'modules/{$name}/',
8
  'plugin' => 'plugins/{$vendor}/{$name}/',
9
- 'theme' => 'themes/{$name}/'
10
  );
11
 
12
  /**
@@ -41,6 +41,7 @@ class OctoberInstaller extends BaseInstaller
41
  protected function inflectThemeVars($vars)
42
  {
43
  $vars['name'] = preg_replace('/^oc-|-theme$/', '', $vars['name']);
 
44
 
45
  return $vars;
46
  }
6
  protected $locations = array(
7
  'module' => 'modules/{$name}/',
8
  'plugin' => 'plugins/{$vendor}/{$name}/',
9
+ 'theme' => 'themes/{$vendor}-{$name}/'
10
  );
11
 
12
  /**
41
  protected function inflectThemeVars($vars)
42
  {
43
  $vars['name'] = preg_replace('/^oc-|-theme$/', '', $vars['name']);
44
+ $vars['vendor'] = preg_replace('/[^a-z0-9_]/i', '', $vars['vendor']);
45
 
46
  return $vars;
47
  }
vendor/composer/installers/src/Composer/Installers/OxidInstaller.php CHANGED
@@ -18,7 +18,7 @@ class OxidInstaller extends BaseInstaller
18
  *
19
  * @param PackageInterface $package
20
  * @param string $frameworkType
21
- * @return void
22
  */
23
  public function getInstallPath(PackageInterface $package, $frameworkType = '')
24
  {
18
  *
19
  * @param PackageInterface $package
20
  * @param string $frameworkType
21
+ * @return string
22
  */
23
  public function getInstallPath(PackageInterface $package, $frameworkType = '')
24
  {
vendor/composer/installers/src/Composer/Installers/PantheonInstaller.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Composer\Installers;
4
+
5
+ class PantheonInstaller extends BaseInstaller
6
+ {
7
+ /** @var array<string, string> */
8
+ protected $locations = array(
9
+ 'script' => 'web/private/scripts/quicksilver/{$name}',
10
+ 'module' => 'web/private/scripts/quicksilver/{$name}',
11
+ );
12
+ }
vendor/composer/installers/src/Composer/Installers/ProcessWireInstaller.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Composer\Installers;
4
+
5
+ class ProcessWireInstaller extends BaseInstaller
6
+ {
7
+ protected $locations = array(
8
+ 'module' => 'site/modules/{$name}/',
9
+ );
10
+
11
+ /**
12
+ * Format package name to CamelCase
13
+ */
14
+ public function inflectPackageVars($vars)
15
+ {
16
+ $vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
17
+ $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
18
+ $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
19
+
20
+ return $vars;
21
+ }
22
+ }
vendor/composer/installers/src/Composer/Installers/StarbugInstaller.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Composer\Installers;
3
+
4
+ class StarbugInstaller extends BaseInstaller
5
+ {
6
+ protected $locations = array(
7
+ 'module' => 'modules/{$name}/',
8
+ 'theme' => 'themes/{$name}/',
9
+ 'custom-module' => 'app/modules/{$name}/',
10
+ 'custom-theme' => 'app/themes/{$name}/'
11
+ );
12
+ }
vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php CHANGED
@@ -13,9 +13,7 @@ class SyDESInstaller extends BaseInstaller
13
  *
14
  * Strip `sydes-` prefix and a trailing '-theme' or '-module' from package name if present.
15
  *
16
- * @param array @vars
17
- *
18
- * @return array
19
  */
20
  public function inflectPackageVars($vars)
21
  {
13
  *
14
  * Strip `sydes-` prefix and a trailing '-theme' or '-module' from package name if present.
15
  *
16
+ * {@inerhitDoc}
 
 
17
  */
18
  public function inflectPackageVars($vars)
19
  {
vendor/composer/installers/src/Composer/Installers/TaoInstaller.php CHANGED
@@ -6,7 +6,25 @@ namespace Composer\Installers;
6
  */
7
  class TaoInstaller extends BaseInstaller
8
  {
 
 
9
  protected $locations = array(
10
  'extension' => '{$name}'
11
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  }
6
  */
7
  class TaoInstaller extends BaseInstaller
8
  {
9
+ const EXTRA_TAO_EXTENSION_NAME = 'tao-extension-name';
10
+
11
  protected $locations = array(
12
  'extension' => '{$name}'
13
  );
14
+
15
+ public function inflectPackageVars($vars)
16
+ {
17
+ $extra = $this->package->getExtra();
18
+
19
+ if (array_key_exists(self::EXTRA_TAO_EXTENSION_NAME, $extra)) {
20
+ $vars['name'] = $extra[self::EXTRA_TAO_EXTENSION_NAME];
21
+ return $vars;
22
+ }
23
+
24
+ $vars['name'] = str_replace('extension-', '', $vars['name']);
25
+ $vars['name'] = str_replace('-', ' ', $vars['name']);
26
+ $vars['name'] = lcfirst(str_replace(' ', '', ucwords($vars['name'])));
27
+
28
+ return $vars;
29
+ }
30
  }
vendor/composer/installers/src/Composer/Installers/TastyIgniterInstaller.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Composer\Installers;
4
+
5
+ class TastyIgniterInstaller extends BaseInstaller
6
+ {
7
+ protected $locations = array(
8
+ 'extension' => 'extensions/{$vendor}/{$name}/',
9
+ 'theme' => 'themes/{$name}/',
10
+ );
11
+
12
+ /**
13
+ * Format package name.
14
+ *
15
+ * Cut off leading 'ti-ext-' or 'ti-theme-' if present.
16
+ * Strip vendor name of characters that is not alphanumeric or an underscore
17
+ *
18
+ */
19
+ public function inflectPackageVars($vars)
20
+ {
21
+ if ($vars['type'] === 'tastyigniter-extension') {
22
+ $vars['vendor'] = preg_replace('/[^a-z0-9_]/i', '', $vars['vendor']);
23
+ $vars['name'] = preg_replace('/^ti-ext-/', '', $vars['name']);
24
+ }
25
+
26
+ if ($vars['type'] === 'tastyigniter-theme') {
27
+ $vars['name'] = preg_replace('/^ti-theme-/', '', $vars['name']);
28
+ }
29
+
30
+ return $vars;
31
+ }
32
+ }
vendor/composer/installers/src/Composer/Installers/WinterInstaller.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Composer\Installers;
3
+
4
+ class WinterInstaller extends BaseInstaller
5
+ {
6
+ protected $locations = array(
7
+ 'module' => 'modules/{$name}/',
8
+ 'plugin' => 'plugins/{$vendor}/{$name}/',
9
+ 'theme' => 'themes/{$name}/'
10
+ );
11
+
12
+ /**
13
+ * Format package name.
14
+ *
15
+ * For package type winter-plugin, cut off a trailing '-plugin' if present.
16
+ *
17
+ * For package type winter-theme, cut off a trailing '-theme' if present.
18
+ *
19
+ */
20
+ public function inflectPackageVars($vars)
21
+ {
22
+ if ($vars['type'] === 'winter-module') {
23
+ return $this->inflectModuleVars($vars);
24
+ }
25
+
26
+ if ($vars['type'] === 'winter-plugin') {
27
+ return $this->inflectPluginVars($vars);
28
+ }
29
+
30
+ if ($vars['type'] === 'winter-theme') {
31
+ return $this->inflectThemeVars($vars);
32
+ }
33
+
34
+ return $vars;
35
+ }
36
+
37
+ protected function inflectModuleVars($vars)
38
+ {
39
+ $vars['name'] = preg_replace('/^wn-|-module$/', '', $vars['name']);
40
+
41
+ return $vars;
42
+ }
43
+
44
+ protected function inflectPluginVars($vars)
45
+ {
46
+ $vars['name'] = preg_replace('/^wn-|-plugin$/', '', $vars['name']);
47
+ $vars['vendor'] = preg_replace('/[^a-z0-9_]/i', '', $vars['vendor']);
48
+
49
+ return $vars;
50
+ }
51
+
52
+ protected function inflectThemeVars($vars)
53
+ {
54
+ $vars['name'] = preg_replace('/^wn-|-theme$/', '', $vars['name']);
55
+
56
+ return $vars;
57
+ }
58
+ }
vendor/symfony/polyfill-ctype/bootstrap.php CHANGED
@@ -12,35 +12,35 @@
12
  use Symfony\Polyfill\Ctype as p;
13
 
14
  if (!function_exists('ctype_alnum')) {
15
- function ctype_alnum($text) { return p\Ctype::ctype_alnum($text); }
16
  }
17
  if (!function_exists('ctype_alpha')) {
18
- function ctype_alpha($text) { return p\Ctype::ctype_alpha($text); }
19
  }
20
  if (!function_exists('ctype_cntrl')) {
21
- function ctype_cntrl($text) { return p\Ctype::ctype_cntrl($text); }
22
  }
23
  if (!function_exists('ctype_digit')) {
24
- function ctype_digit($text) { return p\Ctype::ctype_digit($text); }
25
  }
26
  if (!function_exists('ctype_graph')) {
27
- function ctype_graph($text) { return p\Ctype::ctype_graph($text); }
28
  }
29
  if (!function_exists('ctype_lower')) {
30
- function ctype_lower($text) { return p\Ctype::ctype_lower($text); }
31
  }
32
  if (!function_exists('ctype_print')) {
33
- function ctype_print($text) { return p\Ctype::ctype_print($text); }
34
  }
35
  if (!function_exists('ctype_punct')) {
36
- function ctype_punct($text) { return p\Ctype::ctype_punct($text); }
37
  }
38
  if (!function_exists('ctype_space')) {
39
- function ctype_space($text) { return p\Ctype::ctype_space($text); }
40
  }
41
  if (!function_exists('ctype_upper')) {
42
- function ctype_upper($text) { return p\Ctype::ctype_upper($text); }
43
  }
44
  if (!function_exists('ctype_xdigit')) {
45
- function ctype_xdigit($text) { return p\Ctype::ctype_xdigit($text); }
46
  }
12
  use Symfony\Polyfill\Ctype as p;
13
 
14
  if (!function_exists('ctype_alnum')) {
15
+ function ctype_alnum($input) { return p\Ctype::ctype_alnum($input); }
16
  }
17
  if (!function_exists('ctype_alpha')) {
18
+ function ctype_alpha($input) { return p\Ctype::ctype_alpha($input); }
19
  }
20
  if (!function_exists('ctype_cntrl')) {
21
+ function ctype_cntrl($input) { return p\Ctype::ctype_cntrl($input); }
22
  }
23
  if (!function_exists('ctype_digit')) {
24
+ function ctype_digit($input) { return p\Ctype::ctype_digit($input); }
25
  }
26
  if (!function_exists('ctype_graph')) {
27
+ function ctype_graph($input) { return p\Ctype::ctype_graph($input); }
28
  }
29
  if (!function_exists('ctype_lower')) {
30
+ function ctype_lower($input) { return p\Ctype::ctype_lower($input); }
31
  }
32
  if (!function_exists('ctype_print')) {
33
+ function ctype_print($input) { return p\Ctype::ctype_print($input); }
34
  }
35
  if (!function_exists('ctype_punct')) {
36
+ function ctype_punct($input) { return p\Ctype::ctype_punct($input); }
37
  }
38
  if (!function_exists('ctype_space')) {
39
+ function ctype_space($input) { return p\Ctype::ctype_space($input); }
40
  }
41
  if (!function_exists('ctype_upper')) {
42
+ function ctype_upper($input) { return p\Ctype::ctype_upper($input); }
43
  }
44
  if (!function_exists('ctype_xdigit')) {
45
+ function ctype_xdigit($input) { return p\Ctype::ctype_xdigit($input); }
46
  }
vendor/symfony/polyfill-ctype/composer.json CHANGED
@@ -28,7 +28,7 @@
28
  "minimum-stability": "dev",
29
  "extra": {
30
  "branch-alias": {
31
- "dev-master": "1.18-dev"
32
  },
33
  "thanks": {
34
  "name": "symfony/polyfill",
28
  "minimum-stability": "dev",
29
  "extra": {
30
  "branch-alias": {
31
+ "dev-main": "1.19-dev"
32
  },
33
  "thanks": {
34
  "name": "symfony/polyfill",
vendor/{asm89/twig-cache-extension → twig/cache-extension}/.gitignore RENAMED
File without changes
vendor/{asm89/twig-cache-extension → twig/cache-extension}/.travis.yml RENAMED
File without changes
vendor/{asm89/twig-cache-extension → twig/cache-extension}/LICENSE RENAMED
File without changes
vendor/{asm89/twig-cache-extension → twig/cache-extension}/README.md RENAMED
@@ -4,7 +4,7 @@ Twig cache extension
4
  The missing cache extension for Twig. The extension allows for caching rendered parts of
5
  templates using several cache strategies.
6
 
7
- [![Build Status](https://secure.travis-ci.org/asm89/twig-cache-extension.png?branch=master)](http://travis-ci.org/asm89/twig-cache-extension)
8
 
9
  ## Installation
10
 
@@ -13,7 +13,7 @@ The extension is installable via composer:
13
  ```json
14
  {
15
  "require": {
16
- "asm89/twig-cache-extension": "~1.0"
17
  }
18
  }
19
  ```
@@ -29,9 +29,9 @@ doctrine array cache is as following:
29
  <?php
30
 
31
  use Doctrine\Common\Cache\ArrayCache;
32
- use Asm89\Twig\CacheExtension\CacheProvider\DoctrineCacheAdapter;
33
- use Asm89\Twig\CacheExtension\CacheStrategy\LifetimeCacheStrategy;
34
- use Asm89\Twig\CacheExtension\Extension as CacheExtension;
35
 
36
  $cacheProvider = new DoctrineCacheAdapter(new ArrayCache());
37
  $cacheStrategy = new LifetimeCacheStrategy($cacheProvider);
@@ -55,9 +55,9 @@ composer require cache/apcu-adapter
55
  ```php
56
  <?php
57
 
58
- use Asm89\Twig\CacheExtension\CacheProvider\PsrCacheAdapter;
59
- use Asm89\Twig\CacheExtension\CacheStrategy\LifetimeCacheStrategy;
60
- use Asm89\Twig\CacheExtension\Extension as CacheExtension;
61
  use Cache\Adapter\Apcu\ApcuCachePool;
62
 
63
  $cacheProvider = new PsrCacheAdapter(new ApcuCachePool());
@@ -141,7 +141,7 @@ name, the id and the updated time of the object:
141
  ```php
142
  <?php
143
 
144
- use Asm89\Twig\CacheExtension\CacheStrategy\KeyGeneratorInterface;
145
 
146
  class MyKeyGenerator implements KeyGeneratorInterface
147
  {
@@ -158,8 +158,8 @@ Next the `GenerationalCacheStrategy` needs to be setup with the keygenerator.
158
  ```php
159
  <?php
160
 
161
- use Asm89\Twig\CacheExtension\CacheStrategy\GenerationalCacheStrategy;
162
- use Asm89\Twig\CacheExtension\Extension as CacheExtension;
163
 
164
  $keyGenerator = new MyKeyGenerator();
165
  $cacheProvider = /* see Quick start */;
@@ -192,8 +192,8 @@ $strategy` and delegates the caching to the appropriate strategy.
192
  ```php
193
  <?php
194
 
195
- use Asm89\Twig\CacheExtension\CacheStrategy\IndexedChainingCacheStrategy;
196
- use Asm89\Twig\CacheExtension\Extension as CacheExtension;
197
 
198
  $cacheStrategy = new IndexedChainingCacheStrategy(array(
199
  'time' => $lifetimeCacheStrategy,
@@ -235,4 +235,4 @@ Alexander <iam.asm89@gmail.com>
235
 
236
  ## License
237
 
238
- twig-cache-extension is licensed under the MIT License - see the LICENSE file for details
4
  The missing cache extension for Twig. The extension allows for caching rendered parts of
5
  templates using several cache strategies.
6
 
7
+ [![Build Status](https://secure.travis-ci.org/twigphp/twig-cache-extension.png?branch=master)](http://travis-ci.org/twigphp/twig-cache-extension)
8
 
9
  ## Installation
10
 
13
  ```json
14
  {
15
  "require": {
16
+ "twig/cache-extension": "~1.0"
17
  }
18
  }
19
  ```
29
  <?php
30
 
31
  use Doctrine\Common\Cache\ArrayCache;
32
+ use Twig\CacheExtension\CacheProvider\DoctrineCacheAdapter;
33
+ use Twig\CacheExtension\CacheStrategy\LifetimeCacheStrategy;
34
+ use Twig\CacheExtension\Extension as CacheExtension;
35
 
36
  $cacheProvider = new DoctrineCacheAdapter(new ArrayCache());
37
  $cacheStrategy = new LifetimeCacheStrategy($cacheProvider);
55
  ```php
56
  <?php
57
 
58
+ use Twig\CacheExtension\CacheProvider\PsrCacheAdapter;
59
+ use Twig\CacheExtension\CacheStrategy\LifetimeCacheStrategy;
60
+ use Twig\CacheExtension\Extension as CacheExtension;
61
  use Cache\Adapter\Apcu\ApcuCachePool;
62
 
63
  $cacheProvider = new PsrCacheAdapter(new ApcuCachePool());
141
  ```php
142
  <?php
143
 
144
+ use Twig\CacheExtension\CacheStrategy\KeyGeneratorInterface;
145
 
146
  class MyKeyGenerator implements KeyGeneratorInterface
147
  {
158
  ```php
159
  <?php
160
 
161
+ use Twig\CacheExtension\CacheStrategy\GenerationalCacheStrategy;
162
+ use Twig\CacheExtension\Extension as CacheExtension;
163
 
164
  $keyGenerator = new MyKeyGenerator();
165
  $cacheProvider = /* see Quick start */;
192
  ```php
193
  <?php
194
 
195
+ use Twig\CacheExtension\CacheStrategy\IndexedChainingCacheStrategy;
196
+ use Twig\CacheExtension\Extension as CacheExtension;
197
 
198
  $cacheStrategy = new IndexedChainingCacheStrategy(array(
199
  'time' => $lifetimeCacheStrategy,
235
 
236
  ## License
237
 
238
+ twig/cache-extension is licensed under the MIT License - see the LICENSE file for details
vendor/{asm89/twig-cache-extension → twig/cache-extension}/composer.json RENAMED
@@ -1,8 +1,8 @@
1
  {
2
- "name": "asm89/twig-cache-extension",
3
  "description": "Cache fragments of templates directly within Twig.",
4
  "keywords": ["twig", "cache", "extension"],
5
- "homepage": "https://github.com/asm89/twig-cache-extension",
6
  "type": "library",
7
  "license": "MIT",
8
  "authors": [
@@ -12,11 +12,13 @@
12
  }
13
  ],
14
  "require": {
15
- "php": ">=5.3.2",
16
- "twig/twig": "^1.0|^2.0"
17
  },
18
  "require-dev": {
19
- "phpunit/phpunit": "^5.0 || ^4.8.10",
 
 
20
  "doctrine/cache": "~1.0"
21
  },
22
  "scripts": {
@@ -37,7 +39,7 @@
37
  },
38
  "extra": {
39
  "branch-alias": {
40
- "dev-master": "1.4-dev"
41
  }
42
  }
43
  }
1
  {
2
+ "name": "twig/cache-extension",
3
  "description": "Cache fragments of templates directly within Twig.",
4
  "keywords": ["twig", "cache", "extension"],
5
+ "homepage": "https://github.com/twigphp/twig-cache-extension",
6
  "type": "library",
7
  "license": "MIT",
8
  "authors": [
12
  }
13
  ],
14
  "require": {
15
+ "php": ">=5.3.2",
16
+ "twig/twig": "^1.38|^2.4|^3.0"
17
  },
18
  "require-dev": {
19
+ "psr/cache": "^1.0",
20
+ "phpunit/phpunit": "^5.0 || ^4.8.36",
21
+ "sebastian/comparator": "^1.2.4|^2.0",
22
  "doctrine/cache": "~1.0"
23
  },
24
  "scripts": {
39
  },
40
  "extra": {
41
  "branch-alias": {
42
+ "dev-master": "1.5-dev"
43
  }
44
  }
45
  }
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheProvider/DoctrineCacheAdapter.php RENAMED
@@ -9,9 +9,9 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\CacheProvider;
13
 
14
- use Asm89\Twig\CacheExtension\CacheProviderInterface;
15
  use Doctrine\Common\Cache\Cache;
16
 
17
  /**
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\CacheProvider;
13
 
14
+ use Twig\CacheExtension\CacheProviderInterface;
15
  use Doctrine\Common\Cache\Cache;
16
 
17
  /**
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheProvider/PsrCacheAdapter.php RENAMED
@@ -9,9 +9,9 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\CacheProvider;
13
 
14
- use Asm89\Twig\CacheExtension\CacheProviderInterface;
15
  use Psr\Cache\CacheItemPoolInterface;
16
 
17
  /**
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\CacheProvider;
13
 
14
+ use Twig\CacheExtension\CacheProviderInterface;
15
  use Psr\Cache\CacheItemPoolInterface;
16
 
17
  /**
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheProviderInterface.php RENAMED
@@ -9,7 +9,7 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension;
13
 
14
  /**
15
  * Cache provider interface.
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension;
13
 
14
  /**
15
  * Cache provider interface.
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategy/BlackholeCacheStrategy.php RENAMED
@@ -9,9 +9,9 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\CacheStrategy;
13
 
14
- use Asm89\Twig\CacheExtension\CacheStrategyInterface;
15
 
16
  /**
17
  * CacheStrategy which doesn't cache at all
@@ -23,7 +23,7 @@ use Asm89\Twig\CacheExtension\CacheStrategyInterface;
23
  *
24
  * @author Hagen Hübel <hhuebel@itinance.com>
25
  *
26
- * @package Asm89\Twig\CacheExtension\CacheStrategy
27
  */
28
  class BlackholeCacheStrategy implements CacheStrategyInterface
29
  {
@@ -50,4 +50,4 @@ class BlackholeCacheStrategy implements CacheStrategyInterface
50
  {
51
  // fire and forget
52
  }
53
- }
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\CacheStrategy;
13
 
14
+ use Twig\CacheExtension\CacheStrategyInterface;
15
 
16
  /**
17
  * CacheStrategy which doesn't cache at all
23
  *
24
  * @author Hagen Hübel <hhuebel@itinance.com>
25
  *
26
+ * @package Twig\CacheExtension\CacheStrategy
27
  */
28
  class BlackholeCacheStrategy implements CacheStrategyInterface
29
  {
50
  {
51
  // fire and forget
52
  }
53
+ }
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategy/GenerationalCacheStrategy.php RENAMED
@@ -9,11 +9,11 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\CacheStrategy;
13
 
14
- use Asm89\Twig\CacheExtension\CacheProviderInterface;
15
- use Asm89\Twig\CacheExtension\CacheStrategyInterface;
16
- use Asm89\Twig\CacheExtension\Exception\InvalidCacheKeyException;
17
 
18
  /**
19
  * Strategy for generational caching.
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\CacheStrategy;
13
 
14
+ use Twig\CacheExtension\CacheProviderInterface;
15
+ use Twig\CacheExtension\CacheStrategyInterface;
16
+ use Twig\CacheExtension\Exception\InvalidCacheKeyException;
17
 
18
  /**
19
  * Strategy for generational caching.
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategy/IndexedChainingCacheStrategy.php RENAMED
@@ -9,11 +9,11 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\CacheStrategy;
13
 
14
- use Asm89\Twig\CacheExtension\CacheStrategyInterface;
15
- use Asm89\Twig\CacheExtension\Exception\NonExistingStrategyException;
16
- use Asm89\Twig\CacheExtension\Exception\NonExistingStrategyKeyException;
17
 
18
  /**
19
  * Combines several configured cache strategies.
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\CacheStrategy;
13
 
14
+ use Twig\CacheExtension\CacheStrategyInterface;
15
+ use Twig\CacheExtension\Exception\NonExistingStrategyException;
16
+ use Twig\CacheExtension\Exception\NonExistingStrategyKeyException;
17
 
18
  /**
19
  * Combines several configured cache strategies.
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategy/KeyGeneratorInterface.php RENAMED
@@ -9,7 +9,7 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\CacheStrategy;
13
 
14
  /**
15
  * Generates a key for a given value.
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\CacheStrategy;
13
 
14
  /**
15
  * Generates a key for a given value.
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategy/LifetimeCacheStrategy.php RENAMED
@@ -9,11 +9,11 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\CacheStrategy;
13
 
14
- use Asm89\Twig\CacheExtension\CacheProviderInterface;
15
- use Asm89\Twig\CacheExtension\CacheStrategyInterface;
16
- use Asm89\Twig\CacheExtension\Exception\InvalidCacheLifetimeException;
17
 
18
  /**
19
  * Strategy for caching with a pre-defined lifetime.
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\CacheStrategy;
13
 
14
+ use Twig\CacheExtension\CacheProviderInterface;
15
+ use Twig\CacheExtension\CacheStrategyInterface;
16
+ use Twig\CacheExtension\Exception\InvalidCacheLifetimeException;
17
 
18
  /**
19
  * Strategy for caching with a pre-defined lifetime.
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategyInterface.php RENAMED
@@ -9,7 +9,7 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension;
13
 
14
  /**
15
  * Cache strategy interface.
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension;
13
 
14
  /**
15
  * Cache strategy interface.
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Exception/BaseException.php RENAMED
@@ -9,7 +9,7 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\Exception;
13
 
14
  /**
15
  * @todo Replace \RuntimeException with \InvalidArgumentException at version 2.0
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\Exception;
13
 
14
  /**
15
  * @todo Replace \RuntimeException with \InvalidArgumentException at version 2.0
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Exception/InvalidCacheKeyException.php RENAMED
@@ -9,7 +9,7 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\Exception;
13
 
14
  class InvalidCacheKeyException extends BaseException
15
  {
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\Exception;
13
 
14
  class InvalidCacheKeyException extends BaseException
15
  {
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Exception/InvalidCacheLifetimeException.php RENAMED
@@ -9,7 +9,7 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\Exception;
13
 
14
  class InvalidCacheLifetimeException extends BaseException
15
  {
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\Exception;
13
 
14
  class InvalidCacheLifetimeException extends BaseException
15
  {
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Exception/NonExistingStrategyException.php RENAMED
@@ -9,7 +9,7 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\Exception;
13
 
14
  class NonExistingStrategyException extends BaseException
15
  {
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\Exception;
13
 
14
  class NonExistingStrategyException extends BaseException
15
  {
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Exception/NonExistingStrategyKeyException.php RENAMED
@@ -9,7 +9,7 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\Exception;
13
 
14
  class NonExistingStrategyKeyException extends BaseException
15
  {
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\Exception;
13
 
14
  class NonExistingStrategyKeyException extends BaseException
15
  {
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Extension.php RENAMED
@@ -9,14 +9,17 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension;
 
 
 
13
 
14
  /**
15
  * Extension for caching template blocks with twig.
16
  *
17
  * @author Alexander <iam.asm89@gmail.com>
18
  */
19
- class Extension extends \Twig_Extension
20
  {
21
  private $cacheStrategy;
22
 
@@ -36,17 +39,6 @@ class Extension extends \Twig_Extension
36
  return $this->cacheStrategy;
37
  }
38
 
39
- /**
40
- * {@inheritDoc}
41
- */
42
- public function getName()
43
- {
44
- if (version_compare(\Twig_Environment::VERSION, '1.26.0', '>=')) {
45
- return __CLASS__;
46
- }
47
- return 'asm89_cache';
48
- }
49
-
50
  /**
51
  * {@inheritDoc}
52
  */
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension;
13
+
14
+ use Twig\Environment;
15
+ use Twig\Extension\AbstractExtension;
16
 
17
  /**
18
  * Extension for caching template blocks with twig.
19
  *
20
  * @author Alexander <iam.asm89@gmail.com>
21
  */
22
+ class Extension extends AbstractExtension
23
  {
24
  private $cacheStrategy;
25
 
39
  return $this->cacheStrategy;
40
  }
41
 
 
 
 
 
 
 
 
 
 
 
 
42
  /**
43
  * {@inheritDoc}
44
  */
vendor/twig/cache-extension/lib/Twig/CacheExtension/Node/CacheNode.php ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of twig-cache-extension.
5
+ *
6
+ * (c) Alexander <iam.asm89@gmail.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 Twig\CacheExtension\Node;
13
+
14
+ use Twig\Compiler;
15
+ use Twig\Node\Expression\AbstractExpression;
16
+ use Twig\Node\Node;
17
+
18
+ /**
19
+ * Cache twig node.
20
+ *
21
+ * @author Alexander <iam.asm89@gmail.com>
22
+ */
23
+ class CacheNode extends Node
24
+ {
25
+ private static $cacheCount = 1;
26
+
27
+ /**
28
+ * @param AbstractExpression $annotation
29
+ * @param AbstractExpression $keyInfo
30
+ * @param Node $body
31
+ * @param integer $lineno
32
+ * @param string $tag
33
+ */
34
+ public function __construct(AbstractExpression $annotation, AbstractExpression $keyInfo, Node $body, $lineno, $tag = null)
35
+ {
36
+ parent::__construct(array('key_info' => $keyInfo, 'body' => $body, 'annotation' => $annotation), array(), $lineno, $tag);
37
+ }
38
+
39
+ /**
40
+ * {@inheritDoc}
41
+ */
42
+ public function compile(Compiler $compiler)
43
+ {
44
+ $i = self::$cacheCount++;
45
+
46
+ $extension = 'Twig\CacheExtension\Extension';
47
+
48
+ $compiler
49
+ ->addDebugInfo($this)
50
+ ->write("\$twigCacheStrategy".$i." = \$this->env->getExtension('{$extension}')->getCacheStrategy();\n")
51
+ ->write("\$twigKey".$i." = \$twigCacheStrategy".$i."->generateKey(")
52
+ ->subcompile($this->getNode('annotation'))
53
+ ->raw(", ")
54
+ ->subcompile($this->getNode('key_info'))
55
+ ->write(");\n")
56
+ ->write("\$twigCacheBody".$i." = \$twigCacheStrategy".$i."->fetchBlock(\$twigKey".$i.");\n")
57
+ ->write("if (\$twigCacheBody".$i." === false) {\n")
58
+ ->indent()
59
+ ->write("ob_start();\n")
60
+ ->indent()
61
+ ->subcompile($this->getNode('body'))
62
+ ->outdent()
63
+ ->write("\n")
64
+ ->write("\$twigCacheBody".$i." = ob_get_clean();\n")
65
+ ->write("\$twigCacheStrategy".$i."->saveBlock(\$twigKey".$i.", \$twigCacheBody".$i.");\n")
66
+ ->outdent()
67
+ ->write("}\n")
68
+ ->write("echo \$twigCacheBody".$i.";\n")
69
+ ;
70
+ }
71
+ }
vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/TokenParser/Cache.php RENAMED
@@ -9,23 +9,25 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\TokenParser;
13
 
14
- use Asm89\Twig\CacheExtension\Node\CacheNode;
 
 
15
 
16
  /**
17
  * Parser for cache/endcache blocks.
18
  *
19
  * @author Alexander <iam.asm89@gmail.com>
20
  */
21
- class Cache extends \Twig_TokenParser
22
  {
23
  /**
24
- * @param \Twig_Token $token
25
  *
26
  * @return boolean
27
  */
28
- public function decideCacheEnd(\Twig_Token $token)
29
  {
30
  return $token->test('endcache');
31
  }
@@ -41,7 +43,7 @@ class Cache extends \Twig_TokenParser
41
  /**
42
  * {@inheritDoc}
43
  */
44
- public function parse(\Twig_Token $token)
45
  {
46
  $lineno = $token->getLine();
47
  $stream = $this->parser->getStream();
@@ -50,9 +52,9 @@ class Cache extends \Twig_TokenParser
50
 
51
  $key = $this->parser->getExpressionParser()->parseExpression();
52
 
53
- $stream->expect(\Twig_Token::BLOCK_END_TYPE);
54
  $body = $this->parser->subparse(array($this, 'decideCacheEnd'), true);
55
- $stream->expect(\Twig_Token::BLOCK_END_TYPE);
56
 
57
  return new CacheNode($annotation, $key, $body, $lineno, $this->getTag());
58
  }
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\TokenParser;
13
 
14
+ use Twig\CacheExtension\Node\CacheNode;
15
+ use Twig\Token;
16
+ use Twig\TokenParser\AbstractTokenParser;
17
 
18
  /**
19
  * Parser for cache/endcache blocks.
20
  *
21
  * @author Alexander <iam.asm89@gmail.com>
22
  */
23
+ class Cache extends AbstractTokenParser
24
  {
25
  /**
26
+ * @param Token $token
27
  *
28
  * @return boolean
29
  */
30
+ public function decideCacheEnd(Token $token)
31
  {
32
  return $token->test('endcache');
33
  }
43
  /**
44
  * {@inheritDoc}
45
  */
46
+ public function parse(Token $token)
47
  {
48
  $lineno = $token->getLine();
49
  $stream = $this->parser->getStream();
52
 
53
  $key = $this->parser->getExpressionParser()->parseExpression();
54
 
55
+ $stream->expect(Token::BLOCK_END_TYPE);
56
  $body = $this->parser->subparse(array($this, 'decideCacheEnd'), true);
57
+ $stream->expect(Token::BLOCK_END_TYPE);
58
 
59
  return new CacheNode($annotation, $key, $body, $lineno, $this->getTag());
60
  }
vendor/{asm89/twig-cache-extension → twig/cache-extension}/phpunit.xml.dist RENAMED
@@ -13,7 +13,7 @@
13
  >
14
  <testsuites>
15
  <testsuite name="Twig Cache Extension Test Suite">
16
- <directory>./test/Asm89/</directory>
17
  </testsuite>
18
  </testsuites>
19
 
13
  >
14
  <testsuites>
15
  <testsuite name="Twig Cache Extension Test Suite">
16
+ <directory>./test/Twig/</directory>
17
  </testsuite>
18
  </testsuites>
19
 
vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/CacheProvider/DoctrineCacheAdapterTest.php RENAMED
@@ -9,9 +9,9 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\Tests\CacheProvider;
13
 
14
- use Asm89\Twig\CacheExtension\CacheProvider\DoctrineCacheAdapter;
15
 
16
  class DoctrineCacheAdapterTest extends \PHPUnit_Framework_TestCase
17
  {
@@ -41,6 +41,6 @@ class DoctrineCacheAdapterTest extends \PHPUnit_Framework_TestCase
41
 
42
  public function createCacheMock()
43
  {
44
- return $this->createMock('Doctrine\Common\Cache\Cache');
45
  }
46
  }
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\Tests\CacheProvider;
13
 
14
+ use Twig\CacheExtension\CacheProvider\DoctrineCacheAdapter;
15
 
16
  class DoctrineCacheAdapterTest extends \PHPUnit_Framework_TestCase
17
  {
41
 
42
  public function createCacheMock()
43
  {
44
+ return $this->getMockBuilder('Doctrine\Common\Cache\Cache')->getMock();
45
  }
46
  }
vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/CacheStrategy/GenerationCacheStrategyTest.php RENAMED
@@ -9,9 +9,9 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\Tests\CacheStrategy;
13
 
14
- use Asm89\Twig\CacheExtension\CacheStrategy\GenerationalCacheStrategy;
15
 
16
  class GenerationalCacheStrategyTest extends \PHPUnit_Framework_TestCase
17
  {
@@ -37,7 +37,7 @@ class GenerationalCacheStrategyTest extends \PHPUnit_Framework_TestCase
37
  }
38
 
39
  /**
40
- * @expectedException \Asm89\Twig\CacheExtension\Exception\InvalidCacheKeyException
41
  */
42
  public function testGenerationKeyThrowsExceptionWhenKeyGeneratorReturnsNull()
43
  {
@@ -70,11 +70,11 @@ class GenerationalCacheStrategyTest extends \PHPUnit_Framework_TestCase
70
 
71
  public function createKeyGeneratorMock()
72
  {
73
- return $this->createMock('Asm89\Twig\CacheExtension\CacheStrategy\KeyGeneratorInterface');
74
  }
75
 
76
  public function createCacheProviderMock()
77
  {
78
- return $this->createMock('Asm89\Twig\CacheExtension\CacheProviderInterface');
79
  }
80
  }
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\Tests\CacheStrategy;
13
 
14
+ use Twig\CacheExtension\CacheStrategy\GenerationalCacheStrategy;
15
 
16
  class GenerationalCacheStrategyTest extends \PHPUnit_Framework_TestCase
17
  {
37
  }
38
 
39
  /**
40
+ * @expectedException \Twig\CacheExtension\Exception\InvalidCacheKeyException
41
  */
42
  public function testGenerationKeyThrowsExceptionWhenKeyGeneratorReturnsNull()
43
  {
70
 
71
  public function createKeyGeneratorMock()
72
  {
73
+ return $this->getMockBuilder('Twig\CacheExtension\CacheStrategy\KeyGeneratorInterface')->getMock();
74
  }
75
 
76
  public function createCacheProviderMock()
77
  {
78
+ return $this->getMockBuilder('Twig\CacheExtension\CacheProviderInterface')->getMock();
79
  }
80
  }
vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/CacheStrategy/IndexedChainingCacheStrategyTest.php RENAMED
@@ -9,9 +9,9 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\Tests\CacheStrategy;
13
 
14
- use Asm89\Twig\CacheExtension\CacheStrategy\IndexedChainingCacheStrategy;
15
 
16
  class IndexedChainingCacheStrategyTest extends \PHPUnit_Framework_TestCase
17
  {
@@ -47,7 +47,7 @@ class IndexedChainingCacheStrategyTest extends \PHPUnit_Framework_TestCase
47
  }
48
 
49
  /**
50
- * @expectedException \Asm89\Twig\CacheExtension\Exception\NonExistingStrategyKeyException
51
  */
52
  public function testGenerateKeyThrowsExceptionOnMissingKey()
53
  {
@@ -56,7 +56,7 @@ class IndexedChainingCacheStrategyTest extends \PHPUnit_Framework_TestCase
56
  }
57
 
58
  /**
59
- * @expectedException \Asm89\Twig\CacheExtension\Exception\NonExistingStrategyException
60
  * @expectedExceptionMessage No strategy configured with key "unknown"
61
  */
62
  public function testGenerateKeyThrowsExceptionOnUnknownKey()
@@ -75,6 +75,6 @@ class IndexedChainingCacheStrategyTest extends \PHPUnit_Framework_TestCase
75
 
76
  public function createCacheStrategyMock()
77
  {
78
- return $this->createMock('Asm89\Twig\CacheExtension\CacheStrategyInterface');
79
  }
80
  }
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\Tests\CacheStrategy;
13
 
14
+ use Twig\CacheExtension\CacheStrategy\IndexedChainingCacheStrategy;
15
 
16
  class IndexedChainingCacheStrategyTest extends \PHPUnit_Framework_TestCase
17
  {
47
  }
48
 
49
  /**
50
+ * @expectedException \Twig\CacheExtension\Exception\NonExistingStrategyKeyException
51
  */
52
  public function testGenerateKeyThrowsExceptionOnMissingKey()
53
  {
56
  }
57
 
58
  /**
59
+ * @expectedException \Twig\CacheExtension\Exception\NonExistingStrategyException
60
  * @expectedExceptionMessage No strategy configured with key "unknown"
61
  */
62
  public function testGenerateKeyThrowsExceptionOnUnknownKey()
75
 
76
  public function createCacheStrategyMock()
77
  {
78
+ return $this->getMockBuilder('Twig\CacheExtension\CacheStrategyInterface')->getMock();
79
  }
80
  }
vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/CacheStrategy/LifetimeCacheStrategyTest.php RENAMED
@@ -9,9 +9,9 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\Tests\CacheStrategy;
13
 
14
- use Asm89\Twig\CacheExtension\CacheStrategy\LifetimeCacheStrategy;
15
 
16
  class LifetimeCacheStrategyTest extends \PHPUnit_Framework_TestCase
17
  {
@@ -44,7 +44,7 @@ class LifetimeCacheStrategyTest extends \PHPUnit_Framework_TestCase
44
 
45
  /**
46
  * @dataProvider getInvalidLifetimeValues
47
- * @expectedException \Asm89\Twig\CacheExtension\Exception\InvalidCacheLifetimeException
48
  */
49
  public function testGenerateKeyThrowsExceptionWhenNoLifetimeProvided($value)
50
  {
@@ -63,6 +63,6 @@ class LifetimeCacheStrategyTest extends \PHPUnit_Framework_TestCase
63
 
64
  public function createCacheProviderMock()
65
  {
66
- return $this->createMock('Asm89\Twig\CacheExtension\CacheProviderInterface');
67
  }
68
  }
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\Tests\CacheStrategy;
13
 
14
+ use Twig\CacheExtension\CacheStrategy\LifetimeCacheStrategy;
15
 
16
  class LifetimeCacheStrategyTest extends \PHPUnit_Framework_TestCase
17
  {
44
 
45
  /**
46
  * @dataProvider getInvalidLifetimeValues
47
+ * @expectedException \Twig\CacheExtension\Exception\InvalidCacheLifetimeException
48
  */
49
  public function testGenerateKeyThrowsExceptionWhenNoLifetimeProvided($value)
50
  {
63
 
64
  public function createCacheProviderMock()
65
  {
66
+ return $this->getMockBuilder('Twig\CacheExtension\CacheProviderInterface')->getMock();
67
  }
68
  }
vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/FunctionalExtensionTest.php RENAMED
@@ -9,17 +9,17 @@
9
  * file that was distributed with this source code.
10
  */
11
 
12
- namespace Asm89\Twig\CacheExtension\Tests;
13
-
14
- use Asm89\Twig\CacheExtension\CacheProvider\DoctrineCacheAdapter;
15
- use Asm89\Twig\CacheExtension\CacheStrategy\KeyGeneratorInterface;
16
- use Asm89\Twig\CacheExtension\CacheStrategy\GenerationalCacheStrategy;
17
- use Asm89\Twig\CacheExtension\CacheStrategy\IndexedChainingCacheStrategy;
18
- use Asm89\Twig\CacheExtension\CacheStrategy\LifetimeCacheStrategy;
19
- use Asm89\Twig\CacheExtension\Extension;
20
  use Doctrine\Common\Cache\ArrayCache;
21
- use Twig_Loader_Filesystem;
22
- use Twig_Environment;
23
 
24
  class FunctionalExtensionTest extends \PHPUnit_Framework_TestCase
25
  {
@@ -58,8 +58,8 @@ class FunctionalExtensionTest extends \PHPUnit_Framework_TestCase
58
 
59
  protected function createTwig($cacheStrategyName = null)
60
  {
61
- $loader = new Twig_Loader_Filesystem(__DIR__ . '/fixtures/');
62
- $twig = new Twig_Environment($loader);
63
 
64
  $cacheExtension = new Extension($this->createCacheStrategy($cacheStrategyName));
65
 
@@ -131,7 +131,7 @@ class FunctionalExtensionTest extends \PHPUnit_Framework_TestCase
131
  }
132
 
133
  /**
134
- * @expectedException Twig_Error_Runtime
135
  * @expectedExceptionMessage An exception has been thrown during the rendering of a template ("No strategy key found in value.")
136
  */
137
  public function testIndexedChainingStrategyNeedsKey()
9
  * file that was distributed with this source code.
10
  */
11
 
12
+ namespace Twig\CacheExtension\Tests;
13
+
14
+ use Twig\CacheExtension\CacheProvider\DoctrineCacheAdapter;
15
+ use Twig\CacheExtension\CacheStrategy\KeyGeneratorInterface;
16
+ use Twig\CacheExtension\CacheStrategy\GenerationalCacheStrategy;
17
+ use Twig\CacheExtension\CacheStrategy\IndexedChainingCacheStrategy;
18
+ use Twig\CacheExtension\CacheStrategy\LifetimeCacheStrategy;
19
+ use Twig\CacheExtension\Extension;
20
  use Doctrine\Common\Cache\ArrayCache;
21
+ use Twig\Environment;
22
+ use Twig\Loader\FilesystemLoader;
23
 
24
  class FunctionalExtensionTest extends \PHPUnit_Framework_TestCase
25
  {
58
 
59
  protected function createTwig($cacheStrategyName = null)
60
  {
61
+ $loader = new FilesystemLoader(__DIR__ . '/fixtures/');
62
+ $twig = new Environment($loader);
63
 
64
  $cacheExtension = new Extension($this->createCacheStrategy($cacheStrategyName));
65
 
131
  }
132
 
133
  /**
134
+ * @expectedException \Twig\Error\RuntimeError
135
  * @expectedExceptionMessage An exception has been thrown during the rendering of a template ("No strategy key found in value.")
136
  */
137
  public function testIndexedChainingStrategyNeedsKey()
vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/annotation_expression.twig RENAMED
File without changes
vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/annotation_not_string.twig RENAMED
File without changes
vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/gcs_value.twig RENAMED
File without changes
vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/gcs_value_v2.twig RENAMED
File without changes
vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/ics_no_key.twig RENAMED
File without changes
vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/ics_value.twig RENAMED
File without changes
vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/lcs_value.twig RENAMED
File without changes
vendor/{asm89/twig-cache-extension → twig/cache-extension}/test/bootstrap.php RENAMED
File without changes
vendor/upstatement/routes/.travis.yml CHANGED
@@ -1,14 +1,24 @@
 
 
 
 
 
 
1
  language: php
2
 
3
  php:
4
  - 5.6.30
5
- - 7.1
6
 
7
  env:
8
  - WP_VERSION=latest WP_MULTISITE=0
9
  - WP_VERSION=latest WP_MULTISITE=1
10
  - WP_VERSION=4.7.3 WP_MULTISITE=0
11
- - WP_VERSION=4.7.3 WP_MULTISITE=1
 
 
 
 
12
 
13
  before_script:
14
  - bash bin/install-wp-tests.sh wordpress_test root '' localhost $WP_VERSION
@@ -16,7 +26,7 @@ before_script:
16
 
17
  script:
18
  - mkdir -p build/logs
19
- - phpunit --coverage-clover build/logs/clover.xml
20
 
21
  after_script:
22
  - php vendor/bin/coveralls -v
1
+ sudo: false
2
+
3
+ dist: xenial
4
+
5
+ services: mysql
6
+
7
  language: php
8
 
9
  php:
10
  - 5.6.30
11
+ - 7.3
12
 
13
  env:
14
  - WP_VERSION=latest WP_MULTISITE=0
15
  - WP_VERSION=latest WP_MULTISITE=1
16
  - WP_VERSION=4.7.3 WP_MULTISITE=0
17
+
18
+ matrix:
19
+ exclude:
20
+ - php: 7.3
21
+ env: WP_VERSION=4.7.3 WP_MULTISITE=0
22
 
23
  before_script:
24
  - bash bin/install-wp-tests.sh wordpress_test root '' localhost $WP_VERSION
26
 
27
  script:
28
  - mkdir -p build/logs
29
+ - php vendor/bin/phpunit --coverage-clover build/logs/clover.xml
30
 
31
  after_script:
32
  - php vendor/bin/coveralls -v
vendor/upstatement/routes/Routes.php CHANGED
@@ -63,6 +63,8 @@ class Routes {
63
  } else {
64
  $base_path = '/' . $base_path . '/';
65
  }
 
 
66
  $upstatement_routes->router->setBasePath($base_path);
67
  }
68
  $route = self::convert_route($route);
@@ -90,7 +92,7 @@ class Routes {
90
  }
91
 
92
  /**
93
- * @param array $template A php file to load (ex: 'single.php')
94
  * @param array|bool $tparams An array of data to send to the php file. Inside the php file
95
  * this data can be accessed via:
96
  * global $params;
63
  } else {
64
  $base_path = '/' . $base_path . '/';
65
  }
66
+ // Clean any double slashes that have resulted
67
+ $base_path = str_replace( "//", "/", $base_path );
68
  $upstatement_routes->router->setBasePath($base_path);
69
  }
70
  $route = self::convert_route($route);
92
  }
93
 
94
  /**
95
+ * @param string $template A php file to load (ex: 'single.php')
96
  * @param array|bool $tparams An array of data to send to the php file. Inside the php file
97
  * this data can be accessed via:
98
  * global $params;
vendor/upstatement/routes/composer.json CHANGED
@@ -1,34 +1,39 @@
1
  {
2
- "name" : "upstatement/routes",
3
  "description": "Manage rewrites and routes in WordPress with this dead-simple plugin",
4
- "keywords" : ["routes", "routing", "rewrite", "redirects"],
5
- "homepage" : "http://routes.upstatement.com",
6
- "license" : "MIT",
7
- "authors" : [
 
 
 
 
 
8
  {
9
- "name" : "Jared Novack",
10
- "email" : "jared@upstatement.com",
11
  "homepage": "http://upstatement.com"
12
  }
13
  ],
14
- "support" : {
15
  "issues": "https://github.com/jarednova/routes/issues",
16
- "wiki" : "https://github.com/jarednova/routes/wiki",
17
  "source": "https://github.com/jarednova/routes"
18
  },
19
- "require" : {
20
- "php" : ">=5.3.0",
21
- "altorouter/altorouter" : "^1.1.0",
22
- "composer/installers" : "~1.0"
23
  },
24
  "require-dev": {
25
- "phpunit/phpunit": "3.7.*",
26
- "wp-cli/wp-cli" : "*",
27
- "satooshi/php-coveralls": "dev-master"
28
  },
29
  "autoload": {
30
- "psr-0" : {
31
- "Routes" : ""
32
  }
33
  }
34
  }
1
  {
2
+ "name": "upstatement/routes",
3
  "description": "Manage rewrites and routes in WordPress with this dead-simple plugin",
4
+ "keywords": [
5
+ "routes",
6
+ "routing",
7
+ "rewrite",
8
+ "redirects"
9
+ ],
10
+ "homepage": "http://routes.upstatement.com",
11
+ "license": "MIT",
12
+ "authors": [
13
  {
14
+ "name": "Jared Novack",
15
+ "email": "jared@upstatement.com",
16
  "homepage": "http://upstatement.com"
17
  }
18
  ],
19
+ "support": {
20
  "issues": "https://github.com/jarednova/routes/issues",
21
+ "wiki": "https://github.com/jarednova/routes/wiki",
22
  "source": "https://github.com/jarednova/routes"
23
  },
24
+ "require": {
25
+ "php": ">=5.6.0",
26
+ "altorouter/altorouter": "^2.0",
27
+ "composer/installers": "~1.0"
28
  },
29
  "require-dev": {
30
+ "phpunit/phpunit": "5.7.16",
31
+ "wp-cli/wp-cli": "*",
32
+ "satooshi/php-coveralls": "*"
33
  },
34
  "autoload": {
35
+ "psr-0": {
36
+ "Routes": ""
37
  }
38
  }
39
  }
vendor/upstatement/routes/composer.lock DELETED
@@ -1,1374 +0,0 @@
1
- {
2
- "_readme": [
3
- "This file locks the dependencies of your project to a known state",
4
- "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
- "This file is @generated automatically"
6
- ],
7
- "hash": "75d030ab793ba313e61990602d982498",
8
- "packages": [
9
- {
10
- "name": "altorouter/altorouter",
11
- "version": "v1.1.0",
12
- "source": {
13
- "type": "git",
14
- "url": "https://github.com/dannyvankooten/AltoRouter.git",
15
- "reference": "09d9d946c546bae6d22a7654cdb3b825ffda54b4"
16
- },
17
- "dist": {
18
- "type": "zip",
19
- "url": "https://api.github.com/repos/dannyvankooten/AltoRouter/zipball/09d9d946c546bae6d22a7654cdb3b825ffda54b4",
20
- "reference": "09d9d946c546bae6d22a7654cdb3b825ffda54b4",
21
- "shasum": ""
22
- },
23
- "require": {
24
- "php": ">=5.3.0"
25
- },
26
- "type": "library",
27
- "autoload": {
28
- "classmap": [
29
- "AltoRouter.php"
30
- ]
31
- },
32
- "notification-url": "https://packagist.org/downloads/",
33
- "license": [
34
- "MIT"
35
- ],
36
- "authors": [
37
- {
38
- "name": "Danny van Kooten",
39
- "email": "dannyvankooten@gmail.com",
40
- "homepage": "http://dannyvankooten.com/"
41
- },
42
- {
43
- "name": "Koen Punt",
44
- "homepage": "https://github.com/koenpunt"
45
- },
46
- {
47
- "name": "niahoo",
48
- "homepage": "https://github.com/niahoo"
49
- }
50
- ],
51
- "description": "A lightning fast router for PHP",
52
- "homepage": "https://github.com/dannyvankooten/AltoRouter",
53
- "keywords": [
54
- "lightweight",
55
- "router",
56
- "routing"
57
- ],
58
- "time": "2014-04-16 09:44:40"
59
- },
60
- {
61
- "name": "composer/installers",
62
- "version": "v1.0.21",
63
- "source": {
64
- "type": "git",
65
- "url": "https://github.com/composer/installers.git",
66
- "reference": "d64e23fce42a4063d63262b19b8e7c0f3b5e4c45"
67
- },
68
- "dist": {
69
- "type": "zip",
70
- "url": "https://api.github.com/repos/composer/installers/zipball/d64e23fce42a4063d63262b19b8e7c0f3b5e4c45",
71
- "reference": "d64e23fce42a4063d63262b19b8e7c0f3b5e4c45",
72
- "shasum": ""
73
- },
74
- "replace": {
75
- "roundcube/plugin-installer": "*",
76
- "shama/baton": "*"
77
- },
78
- "require-dev": {
79
- "composer/composer": "1.0.*@dev",
80
- "phpunit/phpunit": "4.1.*"
81
- },
82
- "type": "composer-installer",
83
- "extra": {
84
- "class": "Composer\\Installers\\Installer",
85
- "branch-alias": {
86
- "dev-master": "1.0-dev"
87
- }
88
- },
89
- "autoload": {
90
- "psr-0": {
91
- "Composer\\Installers\\": "src/"
92
- }
93
- },
94
- "notification-url": "https://packagist.org/downloads/",
95
- "license": [
96
- "MIT"
97
- ],
98
- "authors": [
99
- {
100
- "name": "Kyle Robinson Young",
101
- "email": "kyle@dontkry.com",
102
- "homepage": "https://github.com/shama"
103
- }
104
- ],
105
- "description": "A multi-framework Composer library installer",
106
- "homepage": "http://composer.github.com/installers/",
107
- "keywords": [
108
- "Craft",
109
- "Dolibarr",
110
- "Hurad",
111
- "MODX Evo",
112
- "OXID",
113
- "SMF",
114
- "Thelia",
115
- "WolfCMS",
116
- "agl",
117
- "aimeos",
118
- "annotatecms",
119
- "bitrix",
120
- "cakephp",
121
- "chef",
122
- "codeigniter",
123
- "concrete5",
124
- "croogo",
125
- "dokuwiki",
126
- "drupal",
127
- "elgg",
128
- "fuelphp",
129
- "grav",
130
- "installer",
131
- "joomla",
132
- "kohana",
133
- "laravel",
134
- "lithium",
135
- "magento",
136
- "mako",
137
- "mediawiki",
138
- "modulework",
139
- "moodle",
140
- "phpbb",
141
- "piwik",
142
- "ppi",
143
- "puppet",
144
- "roundcube",
145
- "shopware",
146
- "silverstripe",
147
- "symfony",
148
- "typo3",
149
- "wordpress",
150
- "zend",
151
- "zikula"
152
- ],
153
- "time": "2015-02-18 17:17:01"
154
- }
155
- ],
156
- "packages-dev": [
157
- {
158
- "name": "guzzle/guzzle",
159
- "version": "v3.9.2",
160
- "source": {
161
- "type": "git",
162
- "url": "https://github.com/guzzle/guzzle3.git",
163
- "reference": "54991459675c1a2924122afbb0e5609ade581155"
164
- },
165
- "dist": {
166
- "type": "zip",
167
- "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/54991459675c1a2924122afbb0e5609ade581155",
168
- "reference": "54991459675c1a2924122afbb0e5609ade581155",
169
- "shasum": ""
170
- },
171
- "require": {
172
- "ext-curl": "*",
173
- "php": ">=5.3.3",
174
- "symfony/event-dispatcher": "~2.1"
175
- },
176
- "replace": {
177
- "guzzle/batch": "self.version",
178
- "guzzle/cache": "self.version",
179
- "guzzle/common": "self.version",
180
- "guzzle/http": "self.version",
181
- "guzzle/inflection": "self.version",
182
- "guzzle/iterator": "self.version",
183
- "guzzle/log": "self.version",
184
- "guzzle/parser": "self.version",
185
- "guzzle/plugin": "self.version",
186
- "guzzle/plugin-async": "self.version",
187
- "guzzle/plugin-backoff": "self.version",
188
- "guzzle/plugin-cache": "self.version",
189
- "guzzle/plugin-cookie": "self.version",
190
- "guzzle/plugin-curlauth": "self.version",
191
- "guzzle/plugin-error-response": "self.version",
192
- "guzzle/plugin-history": "self.version",
193
- "guzzle/plugin-log": "self.version",
194
- "guzzle/plugin-md5": "self.version",
195
- "guzzle/plugin-mock": "self.version",
196
- "guzzle/plugin-oauth": "self.version",
197
- "guzzle/service": "self.version",
198
- "guzzle/stream": "self.version"
199
- },
200
- "require-dev": {
201
- "doctrine/cache": "~1.3",
202
- "monolog/monolog": "~1.0",
203
- "phpunit/phpunit": "3.7.*",
204
- "psr/log": "~1.0",
205
- "symfony/class-loader": "~2.1",
206
- "zendframework/zend-cache": "2.*,<2.3",
207
- "zendframework/zend-log": "2.*,<2.3"
208
- },
209
- "type": "library",
210
- "extra": {
211
- "branch-alias": {
212
- "dev-master": "3.9-dev"
213
- }
214
- },
215
- "autoload": {
216
- "psr-0": {
217
- "Guzzle": "src/",
218
- "Guzzle\\Tests": "tests/"
219
- }
220
- },
221
- "notification-url": "https://packagist.org/downloads/",
222
- "license": [
223
- "MIT"
224
- ],
225
- "authors": [
226
- {
227
- "name": "Michael Dowling",
228
- "email": "mtdowling@gmail.com",
229
- "homepage": "https://github.com/mtdowling"
230
- },
231
- {
232
- "name": "Guzzle Community",
233
- "homepage": "https://github.com/guzzle/guzzle/contributors"
234
- }
235
- ],
236
- "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients",
237
- "homepage": "http://guzzlephp.org/",
238
- "keywords": [
239
- "client",
240
- "curl",
241
- "framework",
242
- "http",
243
- "http client",
244
- "rest",
245
- "web service"
246
- ],
247
- "time": "2014-08-11 04:32:36"
248
- },
249
- {
250
- "name": "mustache/mustache",
251
- "version": "v2.7.0",
252
- "source": {
253
- "type": "git",
254
- "url": "https://github.com/bobthecow/mustache.php.git",
255
- "reference": "fdf41dd673dc99b41d60992470dbae94ae0b6ba1"
256
- },
257
- "dist": {
258
- "type": "zip",
259
- "url": "https://api.github.com/repos/bobthecow/mustache.php/zipball/fdf41dd673dc99b41d60992470dbae94ae0b6ba1",
260
- "reference": "fdf41dd673dc99b41d60992470dbae94ae0b6ba1",
261
- "shasum": ""
262
- },
263
- "require": {
264
- "php": ">=5.2.4"
265
- },
266
- "require-dev": {
267
- "phpunit/phpunit": "*"
268
- },
269
- "type": "library",
270
- "autoload": {
271
- "psr-0": {
272
- "Mustache": "src/"
273
- }
274
- },
275
- "notification-url": "https://packagist.org/downloads/",
276
- "license": [
277
- "MIT"
278
- ],
279
- "authors": [
280
- {
281
- "name": "Justin Hileman",
282
- "email": "justin@justinhileman.info",
283
- "homepage": "http://justinhileman.com"
284
- }
285
- ],
286
- "description": "A Mustache implementation in PHP.",
287
- "homepage": "https://github.com/bobthecow/mustache.php",
288
- "keywords": [
289
- "mustache",
290
- "templating"
291
- ],
292
- "time": "2014-08-26 19:50:10"
293
- },
294
- {
295
- "name": "nb/oxymel",
296
- "version": "v0.1.0",
297
- "source": {
298
- "type": "git",
299
- "url": "https://github.com/nb/oxymel.git",
300
- "reference": "cbe626ef55d5c4cc9b5e6e3904b395861ea76e3c"
301
- },
302
- "dist": {
303
- "type": "zip",
304
- "url": "https://api.github.com/repos/nb/oxymel/zipball/cbe626ef55d5c4cc9b5e6e3904b395861ea76e3c",
305
- "reference": "cbe626ef55d5c4cc9b5e6e3904b395861ea76e3c",
306
- "shasum": ""
307
- },
308
- "require": {
309
- "php": ">=5.2.4"
310
- },
311
- "type": "library",
312
- "autoload": {
313
- "psr-0": {
314
- "Oxymel": ""
315
- }
316
- },
317
- "notification-url": "https://packagist.org/downloads/",
318
- "license": [
319
- "MIT"
320
- ],
321
- "authors": [
322
- {
323
- "name": "Nikolay Bachiyski",
324
- "email": "nb@nikolay.bg",
325
- "homepage": "http://extrapolate.me/"
326
- }
327
- ],
328
- "description": "A sweet XML builder",
329
- "homepage": "https://github.com/nb/oxymel",
330
- "keywords": [
331
- "xml"
332
- ],
333
- "time": "2013-02-24 15:01:54"
334
- },
335
- {
336
- "name": "phpunit/php-code-coverage",
337
- "version": "1.2.18",
338
- "source": {
339
- "type": "git",
340
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
341
- "reference": "fe2466802556d3fe4e4d1d58ffd3ccfd0a19be0b"
342
- },
343
- "dist": {
344
- "type": "zip",
345
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/fe2466802556d3fe4e4d1d58ffd3ccfd0a19be0b",
346
- "reference": "fe2466802556d3fe4e4d1d58ffd3ccfd0a19be0b",
347
- "shasum": ""
348
- },
349
- "require": {
350
- "php": ">=5.3.3",
351
- "phpunit/php-file-iterator": ">=1.3.0@stable",
352
- "phpunit/php-text-template": ">=1.2.0@stable",
353
- "phpunit/php-token-stream": ">=1.1.3,<1.3.0"
354
- },
355
- "require-dev": {
356
- "phpunit/phpunit": "3.7.*@dev"
357
- },
358
- "suggest": {
359
- "ext-dom": "*",
360
- "ext-xdebug": ">=2.0.5"
361
- },
362
- "type": "library",
363
- "extra": {
364
- "branch-alias": {
365
- "dev-master": "1.2.x-dev"
366
- }
367
- },
368
- "autoload": {
369
- "classmap": [
370
- "PHP/"
371
- ]
372
- },
373
- "notification-url": "https://packagist.org/downloads/",
374
- "include-path": [
375
- ""
376
- ],
377
- "license": [
378
- "BSD-3-Clause"
379
- ],
380
- "authors": [
381
- {
382
- "name": "Sebastian Bergmann",
383
- "email": "sb@sebastian-bergmann.de",
384
- "role": "lead"
385
- }
386
- ],
387
- "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
388
- "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
389
- "keywords": [
390
- "coverage",
391
- "testing",
392
- "xunit"
393
- ],
394
- "time": "2014-09-02 10:13:14"
395
- },
396
- {
397
- "name": "phpunit/php-file-iterator",
398
- "version": "1.3.4",
399
- "source": {
400
- "type": "git",
401
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
402
- "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb"
403
- },
404
- "dist": {
405
- "type": "zip",
406
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb",
407
- "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb",
408
- "shasum": ""
409
- },
410
- "require": {
411
- "php": ">=5.3.3"
412
- },
413
- "type": "library",
414
- "autoload": {
415
- "classmap": [
416
- "File/"
417
- ]
418
- },
419
- "notification-url": "https://packagist.org/downloads/",
420
- "include-path": [
421
- ""
422
- ],
423
- "license": [
424
- "BSD-3-Clause"
425
- ],
426
- "authors": [
427
- {
428
- "name": "Sebastian Bergmann",
429
- "email": "sb@sebastian-bergmann.de",
430
- "role": "lead"
431
- }
432
- ],
433
- "description": "FilterIterator implementation that filters files based on a list of suffixes.",
434
- "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
435
- "keywords": [
436
- "filesystem",
437
- "iterator"
438
- ],
439
- "time": "2013-10-10 15:34:57"
440
- },
441
- {
442
- "name": "phpunit/php-text-template",
443
- "version": "1.2.0",
444
- "source": {
445
- "type": "git",
446
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
447
- "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a"
448
- },
449
- "dist": {
450
- "type": "zip",
451
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a",
452
- "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a",
453
- "shasum": ""
454
- },
455
- "require": {
456
- "php": ">=5.3.3"
457
- },
458
- "type": "library",
459
- "autoload": {
460
- "classmap": [
461
- "Text/"
462
- ]
463
- },
464
- "notification-url": "https://packagist.org/downloads/",
465
- "include-path": [
466
- ""
467
- ],
468
- "license": [
469
- "BSD-3-Clause"
470
- ],
471
- "authors": [
472
- {
473
- "name": "Sebastian Bergmann",
474
- "email": "sb@sebastian-bergmann.de",
475
- "role": "lead"
476
- }
477
- ],
478
- "description": "Simple template engine.",
479
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
480
- "keywords": [
481
- "template"
482
- ],
483
- "time": "2014-01-30 17:20:04"
484
- },
485
- {
486
- "name": "phpunit/php-timer",
487
- "version": "1.0.5",
488
- "source": {
489
- "type": "git",
490
- "url": "https://github.com/sebastianbergmann/php-timer.git",
491
- "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c"
492
- },
493
- "dist": {
494
- "type": "zip",
495
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/19689d4354b295ee3d8c54b4f42c3efb69cbc17c",
496
- "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c",
497
- "shasum": ""
498
- },
499
- "require": {
500
- "php": ">=5.3.3"
501
- },
502
- "type": "library",
503
- "autoload": {
504
- "classmap": [
505
- "PHP/"
506
- ]
507
- },
508
- "notification-url": "https://packagist.org/downloads/",
509
- "include-path": [
510
- ""
511
- ],
512
- "license": [
513
- "BSD-3-Clause"
514
- ],
515
- "authors": [
516
- {
517
- "name": "Sebastian Bergmann",
518
- "email": "sb@sebastian-bergmann.de",
519
- "role": "lead"
520
- }
521
- ],
522
- "description": "Utility class for timing",
523
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
524
- "keywords": [
525
- "timer"
526
- ],
527
- "time": "2013-08-02 07:42:54"
528
- },
529
- {
530
- "name": "phpunit/php-token-stream",
531
- "version": "1.2.2",
532
- "source": {
533
- "type": "git",
534
- "url": "https://github.com/sebastianbergmann/php-token-stream.git",
535
- "reference": "ad4e1e23ae01b483c16f600ff1bebec184588e32"
536
- },
537
- "dist": {
538
- "type": "zip",
539
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/ad4e1e23ae01b483c16f600ff1bebec184588e32",
540
- "reference": "ad4e1e23ae01b483c16f600ff1bebec184588e32",
541
- "shasum": ""
542
- },
543
- "require": {
544
- "ext-tokenizer": "*",
545
- "php": ">=5.3.3"
546
- },
547
- "type": "library",
548
- "extra": {
549
- "branch-alias": {
550
- "dev-master": "1.2-dev"
551
- }
552
- },
553
- "autoload": {
554
- "classmap": [
555
- "PHP/"
556
- ]
557
- },
558
- "notification-url": "https://packagist.org/downloads/",
559
- "include-path": [
560
- ""
561
- ],
562
- "license": [
563
- "BSD-3-Clause"
564
- ],
565
- "authors": [
566
- {
567
- "name": "Sebastian Bergmann",
568
- "email": "sb@sebastian-bergmann.de",
569
- "role": "lead"
570
- }
571
- ],
572
- "description": "Wrapper around PHP's tokenizer extension.",
573
- "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
574
- "keywords": [
575
- "tokenizer"
576
- ],
577
- "time": "2014-03-03 05:10:30"
578
- },
579
- {
580
- "name": "phpunit/phpunit",
581
- "version": "3.7.38",
582
- "source": {
583
- "type": "git",
584
- "url": "https://github.com/sebastianbergmann/phpunit.git",
585
- "reference": "38709dc22d519a3d1be46849868aa2ddf822bcf6"
586
- },
587
- "dist": {
588
- "type": "zip",
589
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/38709dc22d519a3d1be46849868aa2ddf822bcf6",
590
- "reference": "38709dc22d519a3d1be46849868aa2ddf822bcf6",
591
- "shasum": ""
592
- },
593
- "require": {
594
- "ext-ctype": "*",
595
- "ext-dom": "*",
596
- "ext-json": "*",
597
- "ext-pcre": "*",
598
- "ext-reflection": "*",
599
- "ext-spl": "*",
600
- "php": ">=5.3.3",
601
- "phpunit/php-code-coverage": "~1.2",
602
- "phpunit/php-file-iterator": "~1.3",
603
- "phpunit/php-text-template": "~1.1",
604
- "phpunit/php-timer": "~1.0",
605
- "phpunit/phpunit-mock-objects": "~1.2",
606
- "symfony/yaml": "~2.0"
607
- },
608
- "require-dev": {
609
- "pear-pear.php.net/pear": "1.9.4"
610
- },
611
- "suggest": {
612
- "phpunit/php-invoker": "~1.1"
613
- },
614
- "bin": [
615
- "composer/bin/phpunit"
616
- ],
617
- "type": "library",
618
- "extra": {
619
- "branch-alias": {
620
- "dev-master": "3.7.x-dev"
621
- }
622
- },
623
- "autoload": {
624
- "classmap": [
625
- "PHPUnit/"
626
- ]
627
- },
628
- "notification-url": "https://packagist.org/downloads/",
629
- "include-path": [
630
- "",
631
- "../../symfony/yaml/"
632
- ],
633
- "license": [
634
- "BSD-3-Clause"
635
- ],
636
- "authors": [
637
- {
638
- "name": "Sebastian Bergmann",
639
- "email": "sebastian@phpunit.de",
640
- "role": "lead"
641
- }
642
- ],
643
- "description": "The PHP Unit Testing framework.",
644
- "homepage": "http://www.phpunit.de/",
645
- "keywords": [
646
- "phpunit",
647
- "testing",
648
- "xunit"
649
- ],
650
- "time": "2014-10-17 09:04:17"
651
- },
652
- {
653
- "name": "phpunit/phpunit-mock-objects",
654
- "version": "1.2.3",
655
- "source": {
656
- "type": "git",
657
- "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
658
- "reference": "5794e3c5c5ba0fb037b11d8151add2a07fa82875"
659
- },
660
- "dist": {
661
- "type": "zip",
662
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/5794e3c5c5ba0fb037b11d8151add2a07fa82875",
663
- "reference": "5794e3c5c5ba0fb037b11d8151add2a07fa82875",
664
- "shasum": ""
665
- },
666
- "require": {
667
- "php": ">=5.3.3",
668
- "phpunit/php-text-template": ">=1.1.1@stable"
669
- },
670
- "suggest": {
671
- "ext-soap": "*"
672
- },
673
- "type": "library",
674
- "autoload": {
675
- "classmap": [
676
- "PHPUnit/"
677
- ]
678
- },
679
- "notification-url": "https://packagist.org/downloads/",
680
- "include-path": [
681
- ""
682
- ],
683
- "license": [
684
- "BSD-3-Clause"
685
- ],
686
- "authors": [
687
- {
688
- "name": "Sebastian Bergmann",
689
- "email": "sb@sebastian-bergmann.de",
690
- "role": "lead"
691
- }
692
- ],
693
- "description": "Mock Object library for PHPUnit",
694
- "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
695
- "keywords": [
696
- "mock",
697
- "xunit"
698
- ],
699
- "time": "2013-01-13 10:24:48"
700
- },
701
- {
702
- "name": "psr/log",
703
- "version": "1.0.0",
704
- "source": {
705
- "type": "git",
706
- "url": "https://github.com/php-fig/log.git",
707
- "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
708
- },
709
- "dist": {
710
- "type": "zip",
711
- "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
712
- "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
713
- "shasum": ""
714
- },
715
- "type": "library",
716
- "autoload": {
717
- "psr-0": {
718
- "Psr\\Log\\": ""
719
- }
720
- },
721
- "notification-url": "https://packagist.org/downloads/",
722
- "license": [
723
- "MIT"
724
- ],
725
- "authors": [
726
- {
727
- "name": "PHP-FIG",
728
- "homepage": "http://www.php-fig.org/"
729
- }
730
- ],
731
- "description": "Common interface for logging libraries",
732
- "keywords": [
733
- "log",
734
- "psr",
735
- "psr-3"
736
- ],
737
- "time": "2012-12-21 11:40:51"
738
- },
739
- {
740
- "name": "rhumsaa/array_column",
741
- "version": "1.1.2",
742
- "source": {
743
- "type": "git",
744
- "url": "https://github.com/ramsey/array_column.git",
745
- "reference": "c09744baae0e023d1021055f9c65755b88a9721f"
746
- },
747
- "dist": {
748
- "type": "zip",
749
- "url": "https://api.github.com/repos/ramsey/array_column/zipball/c09744baae0e023d1021055f9c65755b88a9721f",
750
- "reference": "c09744baae0e023d1021055f9c65755b88a9721f",
751
- "shasum": ""
752
- },
753
- "type": "library",
754
- "autoload": {
755
- "files": [
756
- "src/array_column.php"
757
- ]
758
- },
759
- "notification-url": "https://packagist.org/downloads/",
760
- "license": [
761
- "MIT"
762
- ],
763
- "authors": [
764
- {
765
- "name": "Ben Ramsey",
766
- "homepage": "http://benramsey.com",
767
- "role": "Developer"
768
- }
769
- ],
770
- "description": "Provides functionality for array_column() to projects using PHP earlier than version 5.5.",
771
- "homepage": "https://github.com/ramsey/array_column",
772
- "keywords": [
773
- "array",
774
- "array_column",
775
- "column"
776
- ],
777
- "time": "2013-07-22 16:12:38"
778
- },
779
- {
780
- "name": "rmccue/requests",
781
- "version": "v1.6.1",
782
- "source": {
783
- "type": "git",
784
- "url": "https://github.com/rmccue/Requests.git",
785
- "reference": "6aac485666c2955077d77b796bbdd25f0013a4ea"
786
- },
787
- "dist": {
788
- "type": "zip",
789
- "url": "https://api.github.com/repos/rmccue/Requests/zipball/6aac485666c2955077d77b796bbdd25f0013a4ea",
790
- "reference": "6aac485666c2955077d77b796bbdd25f0013a4ea",
791
- "shasum": ""
792
- },
793
- "require": {
794
- "php": ">=5.2"
795
- },
796
- "require-dev": {
797
- "satooshi/php-coveralls": "dev-master"
798
- },
799
- "type": "library",
800
- "autoload": {
801
- "psr-0": {
802
- "Requests": "library/"
803
- }
804
- },
805
- "notification-url": "https://packagist.org/downloads/",
806
- "license": [
807
- "ISC"
808
- ],
809
- "authors": [
810
- {
811
- "name": "Ryan McCue",
812
- "homepage": "http://ryanmccue.info"
813
- }
814
- ],
815
- "description": "A HTTP library written in PHP, for human beings.",
816
- "homepage": "http://github.com/rmccue/Requests",
817
- "keywords": [
818
- "curl",
819
- "fsockopen",
820
- "http",
821
- "idna",
822
- "ipv6",
823
- "iri",
824
- "sockets"
825
- ],
826
- "time": "2014-05-18 04:59:02"
827
- },
828
- {
829
- "name": "satooshi/php-coveralls",
830
- "version": "dev-master",
831
- "source": {
832
- "type": "git",
833
- "url": "https://github.com/satooshi/php-coveralls.git",
834
- "reference": "2fbf803803d179ab1082807308a67bbd5a760c70"
835
- },
836
- "dist": {
837
- "type": "zip",
838
- "url": "https://api.github.com/repos/satooshi/php-coveralls/zipball/2fbf803803d179ab1082807308a67bbd5a760c70",
839
- "reference": "2fbf803803d179ab1082807308a67bbd5a760c70",
840
- "shasum": ""
841
- },
842
- "require": {
843
- "ext-json": "*",
844
- "ext-simplexml": "*",
845
- "guzzle/guzzle": ">=2.7",
846
- "php": ">=5.3",
847
- "psr/log": "1.0.0",
848
- "symfony/config": ">=2.0",
849
- "symfony/console": ">=2.0",
850
- "symfony/stopwatch": ">=2.2",
851
- "symfony/yaml": ">=2.0"
852
- },
853
- "require-dev": {
854
- "apigen/apigen": "2.8.*@stable",
855
- "pdepend/pdepend": "dev-master as 2.0.0",
856
- "phpmd/phpmd": "dev-master",
857
- "phpunit/php-invoker": ">=1.1.0,<1.2.0",
858
- "phpunit/phpunit": "3.7.*@stable",
859
- "sebastian/finder-facade": "dev-master",
860
- "sebastian/phpcpd": "1.4.*@stable",
861
- "squizlabs/php_codesniffer": "1.4.*@stable",
862
- "theseer/fdomdocument": "dev-master"
863
- },
864
- "suggest": {
865
- "symfony/http-kernel": "Allows Symfony integration"
866
- },
867
- "bin": [
868
- "composer/bin/coveralls"
869
- ],
870
- "type": "library",
871
- "extra": {
872
- "branch-alias": {
873
- "dev-master": "0.7-dev"
874
- }
875
- },
876
- "autoload": {
877
- "psr-0": {
878
- "Satooshi\\Component": "src/",
879
- "Satooshi\\Bundle": "src/"
880
- }
881
- },
882
- "notification-url": "https://packagist.org/downloads/",
883
- "license": [
884
- "MIT"
885
- ],
886
- "authors": [
887
- {
888
- "name": "Kitamura Satoshi",
889
- "email": "with.no.parachute@gmail.com",
890
- "homepage": "https://www.facebook.com/satooshi.jp"
891
- }
892
- ],
893
- "description": "PHP client library for Coveralls API",
894
- "homepage": "https://github.com/satooshi/php-coveralls",
895
- "keywords": [
896
- "ci",
897
- "coverage",
898
- "github",
899
- "test"
900
- ],
901
- "time": "2014-11-11 15:35:34"
902
- },
903
- {
904
- "name": "symfony/config",
905
- "version": "v2.6.4",
906
- "target-dir": "Symfony/Component/Config",
907
- "source": {
908
- "type": "git",
909
- "url": "https://github.com/symfony/Config.git",
910
- "reference": "a9f781ba1221067d1f07c8cec0bc50f81b8d7408"
911
- },
912
- "dist": {
913
- "type": "zip",
914
- "url": "https://api.github.com/repos/symfony/Config/zipball/a9f781ba1221067d1f07c8cec0bc50f81b8d7408",
915
- "reference": "a9f781ba1221067d1f07c8cec0bc50f81b8d7408",
916
- "shasum": ""
917
- },
918
- "require": {
919
- "php": ">=5.3.3",
920
- "symfony/filesystem": "~2.3"
921
- },
922
- "type": "library",
923
- "extra": {
924
- "branch-alias": {
925
- "dev-master": "2.6-dev"
926
- }
927
- },
928
- "autoload": {
929
- "psr-0": {
930
- "Symfony\\Component\\Config\\": ""
931
- }
932
- },
933
- "notification-url": "https://packagist.org/downloads/",
934
- "license": [
935
- "MIT"
936
- ],
937
- "authors": [
938
- {
939
- "name": "Symfony Community",
940
- "homepage": "http://symfony.com/contributors"
941
- },
942
- {
943
- "name": "Fabien Potencier",
944
- "email": "fabien@symfony.com"
945
- }
946
- ],
947
- "description": "Symfony Config Component",
948
- "homepage": "http://symfony.com",
949
- "time": "2015-01-21 20:57:55"
950
- },
951
- {
952
- "name": "symfony/console",
953
- "version": "v2.6.4",
954
- "target-dir": "Symfony/Component/Console",
955
- "source": {
956
- "type": "git",
957
- "url": "https://github.com/symfony/Console.git",
958
- "reference": "e44154bfe3e41e8267d7a3794cd9da9a51cfac34"
959
- },
960
- "dist": {
961
- "type": "zip",
962
- "url": "https://api.github.com/repos/symfony/Console/zipball/e44154bfe3e41e8267d7a3794cd9da9a51cfac34",
963
- "reference": "e44154bfe3e41e8267d7a3794cd9da9a51cfac34",
964
- "shasum": ""
965
- },
966
- "require": {
967
- "php": ">=5.3.3"
968
- },
969
- "require-dev": {
970
- "psr/log": "~1.0",
971
- "symfony/event-dispatcher": "~2.1",
972
- "symfony/process": "~2.1"
973
- },
974
- "suggest": {
975
- "psr/log": "For using the console logger",
976
- "symfony/event-dispatcher": "",
977
- "symfony/process": ""
978
- },
979
- "type": "library",
980
- "extra": {
981
- "branch-alias": {
982
- "dev-master": "2.6-dev"
983
- }
984
- },
985
- "autoload": {
986
- "psr-0": {
987
- "Symfony\\Component\\Console\\": ""
988
- }
989
- },
990
- "notification-url": "https://packagist.org/downloads/",
991
- "license": [
992
- "MIT"
993
- ],
994
- "authors": [
995
- {
996
- "name": "Symfony Community",
997
- "homepage": "http://symfony.com/contributors"
998
- },
999
- {
1000
- "name": "Fabien Potencier",
1001
- "email": "fabien@symfony.com"
1002
- }
1003
- ],
1004
- "description": "Symfony Console Component",
1005
- "homepage": "http://symfony.com",
1006
- "time": "2015-01-25 04:39:26"
1007
- },
1008
- {
1009
- "name": "symfony/event-dispatcher",
1010
- "version": "v2.6.4",
1011
- "target-dir": "Symfony/Component/EventDispatcher",
1012
- "source": {
1013
- "type": "git",
1014
- "url": "https://github.com/symfony/EventDispatcher.git",
1015
- "reference": "f75989f3ab2743a82fe0b03ded2598a2b1546813"
1016
- },
1017
- "dist": {
1018
- "type": "zip",
1019
- "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/f75989f3ab2743a82fe0b03ded2598a2b1546813",
1020
- "reference": "f75989f3ab2743a82fe0b03ded2598a2b1546813",
1021
- "shasum": ""
1022
- },
1023
- "require": {
1024
- "php": ">=5.3.3"
1025
- },
1026
- "require-dev": {
1027
- "psr/log": "~1.0",
1028
- "symfony/config": "~2.0,>=2.0.5",
1029
- "symfony/dependency-injection": "~2.6",
1030
- "symfony/expression-language": "~2.6",
1031
- "symfony/stopwatch": "~2.3"
1032
- },
1033
- "suggest": {
1034
- "symfony/dependency-injection": "",
1035
- "symfony/http-kernel": ""
1036
- },
1037
- "type": "library",
1038
- "extra": {
1039
- "branch-alias": {
1040
- "dev-master": "2.6-dev"
1041
- }
1042
- },
1043
- "autoload": {
1044
- "psr-0": {
1045
- "Symfony\\Component\\EventDispatcher\\": ""
1046
- }
1047
- },
1048
- "notification-url": "https://packagist.org/downloads/",
1049
- "license": [
1050
- "MIT"
1051
- ],
1052
- "authors": [
1053
- {
1054
- "name": "Symfony Community",
1055
- "homepage": "http://symfony.com/contributors"
1056
- },
1057
- {
1058
- "name": "Fabien Potencier",
1059
- "email": "fabien@symfony.com"
1060
- }
1061
- ],
1062
- "description": "Symfony EventDispatcher Component",
1063
- "homepage": "http://symfony.com",
1064
- "time": "2015-02-01 16:10:57"
1065
- },
1066
- {
1067
- "name": "symfony/filesystem",
1068
- "version": "v2.6.4",
1069
- "target-dir": "Symfony/Component/Filesystem",
1070
- "source": {
1071
- "type": "git",
1072
- "url": "https://github.com/symfony/Filesystem.git",
1073
- "reference": "a1f566d1f92e142fa1593f4555d6d89e3044a9b7"
1074
- },
1075
- "dist": {
1076
- "type": "zip",
1077
- "url": "https://api.github.com/repos/symfony/Filesystem/zipball/a1f566d1f92e142fa1593f4555d6d89e3044a9b7",
1078
- "reference": "a1f566d1f92e142fa1593f4555d6d89e3044a9b7",
1079
- "shasum": ""
1080
- },
1081
- "require": {
1082
- "php": ">=5.3.3"
1083
- },
1084
- "type": "library",
1085
- "extra": {
1086
- "branch-alias": {
1087
- "dev-master": "2.6-dev"
1088
- }
1089
- },
1090
- "autoload": {
1091
- "psr-0": {
1092
- "Symfony\\Component\\Filesystem\\": ""
1093
- }
1094
- },
1095
- "notification-url": "https://packagist.org/downloads/",
1096
- "license": [
1097
- "MIT"
1098
- ],
1099
- "authors": [
1100
- {
1101
- "name": "Symfony Community",
1102
- "homepage": "http://symfony.com/contributors"
1103
- },
1104
- {
1105
- "name": "Fabien Potencier",
1106
- "email": "fabien@symfony.com"
1107
- }
1108
- ],
1109
- "description": "Symfony Filesystem Component",
1110
- "homepage": "http://symfony.com",
1111
- "time": "2015-01-03 21:13:09"
1112
- },
1113
- {
1114
- "name": "symfony/finder",
1115
- "version": "v2.6.4",
1116
- "target-dir": "Symfony/Component/Finder",
1117
- "source": {
1118
- "type": "git",
1119
- "url": "https://github.com/symfony/Finder.git",
1120
- "reference": "16513333bca64186c01609961a2bb1b95b5e1355"
1121
- },
1122
- "dist": {
1123
- "type": "zip",
1124
- "url": "https://api.github.com/repos/symfony/Finder/zipball/16513333bca64186c01609961a2bb1b95b5e1355",
1125
- "reference": "16513333bca64186c01609961a2bb1b95b5e1355",
1126
- "shasum": ""
1127
- },
1128
- "require": {
1129
- "php": ">=5.3.3"
1130
- },
1131
- "type": "library",
1132
- "extra": {
1133
- "branch-alias": {
1134
- "dev-master": "2.6-dev"
1135
- }
1136
- },
1137
- "autoload": {
1138
- "psr-0": {
1139
- "Symfony\\Component\\Finder\\": ""
1140
- }
1141
- },
1142
- "notification-url": "https://packagist.org/downloads/",
1143
- "license": [
1144
- "MIT"
1145
- ],
1146
- "authors": [
1147
- {
1148
- "name": "Symfony Community",
1149
- "homepage": "http://symfony.com/contributors"
1150
- },
1151
- {
1152
- "name": "Fabien Potencier",
1153
- "email": "fabien@symfony.com"
1154
- }
1155
- ],
1156
- "description": "Symfony Finder Component",
1157
- "homepage": "http://symfony.com",
1158
- "time": "2015-01-03 08:01:59"
1159
- },
1160
- {
1161
- "name": "symfony/stopwatch",
1162
- "version": "v2.6.4",
1163
- "target-dir": "Symfony/Component/Stopwatch",
1164
- "source": {
1165
- "type": "git",
1166
- "url": "https://github.com/symfony/Stopwatch.git",
1167
- "reference": "e8da5286132ba75ce4b4275fbf0f4cd369bfd71c"
1168
- },
1169
- "dist": {
1170
- "type": "zip",
1171
- "url": "https://api.github.com/repos/symfony/Stopwatch/zipball/e8da5286132ba75ce4b4275fbf0f4cd369bfd71c",
1172
- "reference": "e8da5286132ba75ce4b4275fbf0f4cd369bfd71c",
1173
- "shasum": ""
1174
- },
1175
- "require": {
1176
- "php": ">=5.3.3"
1177
- },
1178
- "type": "library",
1179
- "extra": {
1180
- "branch-alias": {
1181
- "dev-master": "2.6-dev"
1182
- }
1183
- },
1184
- "autoload": {
1185
- "psr-0": {
1186
- "Symfony\\Component\\Stopwatch\\": ""
1187
- }
1188
- },
1189
- "notification-url": "https://packagist.org/downloads/",
1190
- "license": [
1191
- "MIT"
1192
- ],
1193
- "authors": [
1194
- {
1195
- "name": "Symfony Community",
1196
- "homepage": "http://symfony.com/contributors"
1197
- },
1198
- {
1199
- "name": "Fabien Potencier",
1200
- "email": "fabien@symfony.com"
1201
- }
1202
- ],
1203
- "description": "Symfony Stopwatch Component",
1204
- "homepage": "http://symfony.com",
1205
- "time": "2015-01-03 08:01:59"
1206
- },
1207
- {
1208
- "name": "symfony/yaml",
1209
- "version": "v2.6.4",
1210
- "target-dir": "Symfony/Component/Yaml",
1211
- "source": {
1212
- "type": "git",
1213
- "url": "https://github.com/symfony/Yaml.git",
1214
- "reference": "60ed7751671113cf1ee7d7778e691642c2e9acd8"
1215
- },
1216
- "dist": {
1217
- "type": "zip",
1218
- "url": "https://api.github.com/repos/symfony/Yaml/zipball/60ed7751671113cf1ee7d7778e691642c2e9acd8",
1219
- "reference": "60ed7751671113cf1ee7d7778e691642c2e9acd8",
1220
- "shasum": ""
1221
- },
1222
- "require": {
1223
- "php": ">=5.3.3"
1224
- },
1225
- "type": "library",
1226
- "extra": {
1227
- "branch-alias": {
1228
- "dev-master": "2.6-dev"
1229
- }
1230
- },
1231
- "autoload": {
1232
- "psr-0": {
1233
- "Symfony\\Component\\Yaml\\": ""
1234
- }
1235
- },
1236
- "notification-url": "https://packagist.org/downloads/",
1237
- "license": [
1238
- "MIT"
1239
- ],
1240
- "authors": [
1241
- {
1242
- "name": "Symfony Community",
1243
- "homepage": "http://symfony.com/contributors"
1244
- },
1245
- {
1246
- "name": "Fabien Potencier",
1247
- "email": "fabien@symfony.com"
1248
- }
1249
- ],
1250
- "description": "Symfony Yaml Component",
1251
- "homepage": "http://symfony.com",
1252
- "time": "2015-01-25 04:39:26"
1253
- },
1254
- {
1255
- "name": "wp-cli/php-cli-tools",
1256
- "version": "v0.10.3",
1257
- "source": {
1258
- "type": "git",
1259
- "url": "https://github.com/wp-cli/php-cli-tools.git",
1260
- "reference": "edead860cb60e95ebdad965ab21e4a1dad7e6b6e"
1261
- },
1262
- "dist": {
1263
- "type": "zip",
1264
- "url": "https://api.github.com/repos/wp-cli/php-cli-tools/zipball/edead860cb60e95ebdad965ab21e4a1dad7e6b6e",
1265
- "reference": "edead860cb60e95ebdad965ab21e4a1dad7e6b6e",
1266
- "shasum": ""
1267
- },
1268
- "require": {
1269
- "php": ">= 5.3.0"
1270
- },
1271
- "type": "library",
1272
- "autoload": {
1273
- "psr-0": {
1274
- "cli": "lib/"
1275
- },
1276
- "files": [
1277
- "lib/cli/cli.php"
1278
- ]
1279
- },
1280
- "notification-url": "https://packagist.org/downloads/",
1281
- "license": [
1282
- "MIT"
1283
- ],
1284
- "authors": [
1285
- {
1286
- "name": "James Logsdon",
1287
- "email": "jlogsdon@php.net",
1288
- "role": "Developer"
1289
- },
1290
- {
1291
- "name": "Daniel Bachhuber",
1292
- "email": "daniel@handbuilt.co",
1293
- "role": "Maintainer"
1294
- }
1295
- ],
1296
- "description": "Console utilities for PHP",
1297
- "homepage": "http://github.com/wp-cli/php-cli-tools",
1298
- "keywords": [
1299
- "cli",
1300
- "console"
1301
- ],
1302
- "time": "2014-12-03 15:45:28"
1303
- },
1304
- {
1305
- "name": "wp-cli/wp-cli",
1306
- "version": "v0.18.0",
1307
- "source": {
1308
- "type": "git",
1309
- "url": "https://github.com/wp-cli/wp-cli.git",
1310
- "reference": "d3ea18a17965f94d1498a607087e02594fc826f7"
1311
- },
1312
- "dist": {
1313
- "type": "zip",
1314
- "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/d3ea18a17965f94d1498a607087e02594fc826f7",
1315
- "reference": "d3ea18a17965f94d1498a607087e02594fc826f7",
1316
- "shasum": ""
1317
- },
1318
- "require": {
1319
- "mustache/mustache": "~2.4",
1320
- "nb/oxymel": "0.1.0",
1321
- "php": ">=5.3.2",
1322
- "rhumsaa/array_column": "~1.1",
1323
- "rmccue/requests": "~1.6",
1324
- "symfony/finder": "~2.3",
1325
- "wp-cli/php-cli-tools": "0.10.3"
1326
- },
1327
- "require-dev": {
1328
- "behat/behat": "2.5.*",
1329
- "phpunit/phpunit": "3.7.*"
1330
- },
1331
- "suggest": {
1332
- "psy/psysh": "Enhanced `wp shell` functionality"
1333
- },
1334
- "bin": [
1335
- "bin/wp.bat",
1336
- "bin/wp"
1337
- ],
1338
- "type": "library",
1339
- "autoload": {
1340
- "psr-0": {
1341
- "WP_CLI": "php"
1342
- },
1343
- "files": [
1344
- "php/Spyc.php"
1345
- ],
1346
- "classmap": [
1347
- "php/export"
1348
- ]
1349
- },
1350
- "notification-url": "https://packagist.org/downloads/",
1351
- "license": [
1352
- "MIT"
1353
- ],
1354
- "description": "A command line interface for WordPress",
1355
- "homepage": "http://wp-cli.org",
1356
- "keywords": [
1357
- "cli",
1358
- "wordpress"
1359
- ],
1360
- "time": "2015-01-14 14:10:29"
1361
- }
1362
- ],
1363
- "aliases": [],
1364
- "minimum-stability": "stable",
1365
- "stability-flags": {
1366
- "satooshi/php-coveralls": 20
1367
- },
1368
- "prefer-stable": false,
1369
- "prefer-lowest": false,
1370
- "platform": {
1371
- "php": ">=5.3.0"
1372
- },
1373
- "platform-dev": []
1374
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/upstatement/routes/tests/single.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php
vendor/upstatement/routes/tests/test-routes.php CHANGED
@@ -3,7 +3,7 @@
3
  class TestRoutes extends WP_UnitTestCase {
4
 
5
  function testThemeRoute(){
6
- $template = Routes::load('single.php');
7
  $this->assertTrue($template);
8
  }
9
 
@@ -225,7 +225,7 @@ class TestRoutes extends WP_UnitTestCase {
225
  }
226
 
227
  function testRouteWithClassCallback() {
228
- Routes::map('classroute', array('TestRoutes', 'testCallback'));
229
  $this->go_to(home_url('classroute'));
230
  $this->matchRoutes();
231
  global $matches;
@@ -237,7 +237,7 @@ class TestRoutes extends WP_UnitTestCase {
237
  $upstatement_routes->match_current_request();
238
  }
239
 
240
- static function testCallback() {
241
  global $matches;
242
  $matches[] = true;
243
  }
3
  class TestRoutes extends WP_UnitTestCase {
4
 
5
  function testThemeRoute(){
6
+ $template = Routes::load(__DIR__.'/single.php');
7
  $this->assertTrue($template);
8
  }
9
 
225
  }
226
 
227
  function testRouteWithClassCallback() {
228
+ Routes::map('classroute', array('TestRoutes', '_testCallback'));
229
  $this->go_to(home_url('classroute'));
230
  $this->matchRoutes();
231
  global $matches;
237
  $upstatement_routes->match_current_request();
238
  }
239
 
240
+ static function _testCallback() {
241
  global $matches;
242
  $matches[] = true;
243
  }