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)
Release Info
Developer | jarednova |
Plugin | Timber |
Version | 1.19.0 |
Comparing to | |
See all releases |
Code changes from version 1.18.2 to 1.19.0
- README.md +11 -7
- lib/Cache/KeyGenerator.php +1 -1
- lib/Cache/WPObjectCacheAdapter.php +1 -1
- lib/Image.php +41 -4
- lib/ImageHelper.php +3 -1
- lib/Integrations/WPML.php +1 -0
- lib/Loader.php +4 -4
- lib/Post.php +9 -9
- lib/Site.php +1 -1
- lib/Timber.php +2 -2
- lib/URLHelper.php +1 -1
- readme.txt +18 -1
- timber-starter-theme/README.md +1 -1
- timber.php +1 -1
- vendor/altorouter/altorouter/AltoRouter.php +300 -292
- vendor/altorouter/altorouter/LICENSE.md +9 -0
- vendor/altorouter/altorouter/README.md +11 -8
- vendor/altorouter/altorouter/composer.json +4 -3
- vendor/altorouter/altorouter/phpcs.xml +10 -0
- vendor/asm89/twig-cache-extension/lib/Asm89/Twig/CacheExtension/Node/CacheNode.php +0 -71
- vendor/autoload.php +1 -1
- vendor/composer/autoload_classmap.php +23 -17
- vendor/composer/autoload_psr4.php +1 -1
- vendor/composer/autoload_real.php +7 -7
- vendor/composer/autoload_static.php +30 -24
- vendor/composer/installed.json +117 -94
- vendor/composer/installers/.github/workflows/continuous-integration.yml +76 -0
- vendor/composer/installers/.github/workflows/lint.yml +30 -0
- vendor/composer/installers/.github/workflows/phpstan.yml +51 -0
- vendor/composer/installers/composer.json +17 -7
- vendor/composer/installers/phpstan.neon.dist +10 -0
- vendor/composer/installers/src/Composer/Installers/BaseInstaller.php +6 -6
- vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php +3 -9
- vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php +1 -3
- vendor/composer/installers/src/Composer/Installers/Installer.php +28 -10
- vendor/composer/installers/src/Composer/Installers/MauticInstaller.php +29 -6
- vendor/composer/installers/src/Composer/Installers/MiaoxingInstaller.php +10 -0
- vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php +1 -0
- vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php +2 -1
- vendor/composer/installers/src/Composer/Installers/OxidInstaller.php +1 -1
- vendor/composer/installers/src/Composer/Installers/PantheonInstaller.php +12 -0
- vendor/composer/installers/src/Composer/Installers/ProcessWireInstaller.php +22 -0
- vendor/composer/installers/src/Composer/Installers/StarbugInstaller.php +12 -0
- vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php +1 -3
- vendor/composer/installers/src/Composer/Installers/TaoInstaller.php +18 -0
- vendor/composer/installers/src/Composer/Installers/TastyIgniterInstaller.php +32 -0
- vendor/composer/installers/src/Composer/Installers/WinterInstaller.php +58 -0
- vendor/symfony/polyfill-ctype/bootstrap.php +11 -11
- vendor/symfony/polyfill-ctype/composer.json +1 -1
- vendor/{asm89/twig-cache-extension → twig/cache-extension}/.gitignore +0 -0
- vendor/{asm89/twig-cache-extension → twig/cache-extension}/.travis.yml +0 -0
- vendor/{asm89/twig-cache-extension → twig/cache-extension}/LICENSE +0 -0
- vendor/{asm89/twig-cache-extension → twig/cache-extension}/README.md +14 -14
- vendor/{asm89/twig-cache-extension → twig/cache-extension}/composer.json +8 -6
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheProvider/DoctrineCacheAdapter.php +2 -2
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheProvider/PsrCacheAdapter.php +2 -2
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheProviderInterface.php +1 -1
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategy/BlackholeCacheStrategy.php +4 -4
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategy/GenerationalCacheStrategy.php +4 -4
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategy/IndexedChainingCacheStrategy.php +4 -4
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategy/KeyGeneratorInterface.php +1 -1
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategy/LifetimeCacheStrategy.php +4 -4
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/CacheStrategyInterface.php +1 -1
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Exception/BaseException.php +1 -1
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Exception/InvalidCacheKeyException.php +1 -1
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Exception/InvalidCacheLifetimeException.php +1 -1
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Exception/NonExistingStrategyException.php +1 -1
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Exception/NonExistingStrategyKeyException.php +1 -1
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/Extension.php +5 -13
- vendor/twig/cache-extension/lib/Twig/CacheExtension/Node/CacheNode.php +71 -0
- vendor/{asm89/twig-cache-extension/lib/Asm89 → twig/cache-extension/lib}/Twig/CacheExtension/TokenParser/Cache.php +10 -8
- vendor/{asm89/twig-cache-extension → twig/cache-extension}/phpunit.xml.dist +1 -1
- vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/CacheProvider/DoctrineCacheAdapterTest.php +3 -3
- vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/CacheStrategy/GenerationCacheStrategyTest.php +5 -5
- vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/CacheStrategy/IndexedChainingCacheStrategyTest.php +5 -5
- vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/CacheStrategy/LifetimeCacheStrategyTest.php +4 -4
- vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/FunctionalExtensionTest.php +13 -13
- vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/annotation_expression.twig +0 -0
- vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/annotation_not_string.twig +0 -0
- vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/gcs_value.twig +0 -0
- vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/gcs_value_v2.twig +0 -0
- vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/ics_no_key.twig +0 -0
- vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/ics_value.twig +0 -0
- vendor/{asm89/twig-cache-extension/test/Asm89 → twig/cache-extension/test}/Twig/CacheExtension/Tests/fixtures/lcs_value.twig +0 -0
- vendor/{asm89/twig-cache-extension → twig/cache-extension}/test/bootstrap.php +0 -0
- vendor/upstatement/routes/.travis.yml +13 -3
- vendor/upstatement/routes/Routes.php +3 -1
- vendor/upstatement/routes/composer.json +23 -18
- vendor/upstatement/routes/composer.lock +0 -1374
- vendor/upstatement/routes/tests/single.php +1 -0
- vendor/upstatement/routes/tests/test-routes.php +3 -3
@@ -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
|
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](
|
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 |
-
|
|
|
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 |
-
* [**
|
|
|
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 |
|
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
namespace Timber\Cache;
|
4 |
|
5 |
-
use
|
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 |
|
@@ -1,6 +1,6 @@
|
|
1 |
<?php namespace Timber\Cache;
|
2 |
|
3 |
-
use
|
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 {
|
@@ -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 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
@@ -502,7 +502,9 @@ class ImageHelper {
|
|
502 |
}
|
503 |
$url = untrailingslashit($url).'/'.$filename;
|
504 |
if ( !$absolute ) {
|
505 |
-
$
|
|
|
|
|
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 |
}
|
@@ -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 |
|
@@ -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 \
|
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 \
|
283 |
-
$cache_extension = new \
|
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 |
}
|
@@ -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('<!--
|
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 |
/**
|
@@ -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 =
|
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 |
}
|
@@ -35,7 +35,7 @@ use Timber\Loader;
|
|
35 |
*/
|
36 |
class Timber {
|
37 |
|
38 |
-
public static $version = '1.
|
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();
|
@@ -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 =
|
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 |
}
|
@@ -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.
|
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**
|
@@ -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.
|
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 |
|
@@ -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.
|
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.
|
@@ -1,294 +1,302 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
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 |
}
|
@@ -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.
|
@@ -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
|
3 |
|
4 |
```php
|
5 |
$router = new AltoRouter();
|
6 |
|
7 |
// map homepage
|
8 |
-
$router->map(
|
9 |
require __DIR__ . '/views/home.php';
|
10 |
});
|
11 |
|
12 |
-
//
|
13 |
-
$router->map(
|
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.
|
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 |
-
|
46 |
|
47 |
-
Copyright (c) 2012
|
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 |
|
@@ -20,11 +20,12 @@
|
|
20 |
}
|
21 |
],
|
22 |
"require": {
|
23 |
-
"php": ">=5.
|
24 |
},
|
25 |
"require-dev": {
|
26 |
-
"phpunit/phpunit": "
|
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"]
|
@@ -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>
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit6083f74763027d293cf808f57b917514::getLoader();
|
@@ -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',
|
@@ -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 . '/
|
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 |
);
|
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -22,15 +22,15 @@ class ComposerAutoloaderInit98e2addbab75aec03cd32e9c811af941
|
|
22 |
return self::$loader;
|
23 |
}
|
24 |
|
25 |
-
spl_autoload_register(array('
|
26 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
27 |
-
spl_autoload_unregister(array('
|
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\
|
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\
|
55 |
} else {
|
56 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
57 |
}
|
58 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
59 |
-
|
60 |
}
|
61 |
|
62 |
return $loader;
|
63 |
}
|
64 |
}
|
65 |
|
66 |
-
function
|
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;
|
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
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__ . '/..' . '/
|
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 =
|
622 |
-
$loader->prefixDirsPsr4 =
|
623 |
-
$loader->fallbackDirsPsr4 =
|
624 |
-
$loader->prefixesPsr0 =
|
625 |
-
$loader->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 |
}
|
@@ -1,27 +1,28 @@
|
|
1 |
[
|
2 |
{
|
3 |
"name": "altorouter/altorouter",
|
4 |
-
"version": "
|
5 |
-
"version_normalized": "
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/dannyvankooten/AltoRouter.git",
|
9 |
-
"reference": "
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
-
"url": "https://api.github.com/repos/dannyvankooten/AltoRouter/zipball/
|
14 |
-
"reference": "
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require": {
|
18 |
-
"php": ">=5.
|
19 |
},
|
20 |
"require-dev": {
|
21 |
"codeclimate/php-test-reporter": "dev-master",
|
22 |
-
"phpunit/phpunit": "
|
|
|
23 |
},
|
24 |
-
"time": "
|
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.
|
120 |
-
"version_normalized": "1.
|
121 |
"source": {
|
122 |
"type": "git",
|
123 |
"url": "https://github.com/composer/installers.git",
|
124 |
-
"reference": "
|
125 |
},
|
126 |
"dist": {
|
127 |
"type": "zip",
|
128 |
-
"url": "https://api.github.com/repos/composer/installers/zipball/
|
129 |
-
"reference": "
|
130 |
"shasum": ""
|
131 |
},
|
132 |
"require": {
|
@@ -137,18 +80,19 @@
|
|
137 |
"shama/baton": "*"
|
138 |
},
|
139 |
"require-dev": {
|
140 |
-
"composer/composer": "1.6.* || 2.0
|
141 |
-
"composer/semver": "1
|
142 |
-
"
|
143 |
-
"
|
|
|
144 |
"symfony/process": "^2.3"
|
145 |
},
|
146 |
-
"time": "
|
147 |
"type": "composer-plugin",
|
148 |
"extra": {
|
149 |
"class": "Composer\\Installers\\Plugin",
|
150 |
"branch-alias": {
|
151 |
-
"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.
|
259 |
-
"version_normalized": "1.
|
260 |
"source": {
|
261 |
"type": "git",
|
262 |
"url": "https://github.com/symfony/polyfill-ctype.git",
|
263 |
-
"reference": "
|
264 |
},
|
265 |
"dist": {
|
266 |
"type": "zip",
|
267 |
-
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/
|
268 |
-
"reference": "
|
269 |
"shasum": ""
|
270 |
},
|
271 |
"require": {
|
@@ -274,11 +227,11 @@
|
|
274 |
"suggest": {
|
275 |
"ext-ctype": "For best performance"
|
276 |
},
|
277 |
-
"time": "2020-
|
278 |
"type": "library",
|
279 |
"extra": {
|
280 |
"branch-alias": {
|
281 |
-
"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.
|
403 |
-
"version_normalized": "0.
|
404 |
"source": {
|
405 |
"type": "git",
|
406 |
"url": "https://github.com/Upstatement/routes.git",
|
407 |
-
"reference": "
|
408 |
},
|
409 |
"dist": {
|
410 |
"type": "zip",
|
411 |
-
"url": "https://api.github.com/repos/Upstatement/routes/zipball/
|
412 |
-
"reference": "
|
413 |
"shasum": ""
|
414 |
},
|
415 |
"require": {
|
416 |
-
"altorouter/altorouter": "^
|
417 |
"composer/installers": "~1.0",
|
418 |
-
"php": ">=5.
|
419 |
},
|
420 |
"require-dev": {
|
421 |
-
"phpunit/phpunit": "
|
422 |
-
"satooshi/php-coveralls": "
|
423 |
"wp-cli/wp-cli": "*"
|
424 |
},
|
425 |
-
"time": "
|
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": {
|
@@ -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"
|
@@ -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"
|
@@ -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
|
@@ -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-
|
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
|
104 |
-
"composer/semver": "1
|
105 |
-
"
|
106 |
-
"
|
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 |
}
|
@@ -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
|
@@ -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
|
99 |
-
* @param array
|
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 |
{
|
@@ -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
|
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 |
}
|
@@ -12,9 +12,7 @@ class CockpitInstaller extends BaseInstaller
|
|
12 |
*
|
13 |
* Strip `module-` prefix from package name.
|
14 |
*
|
15 |
-
* @
|
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 |
{
|
@@ -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'
|
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 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
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 |
-
|
199 |
-
break;
|
200 |
}
|
201 |
}
|
202 |
|
203 |
-
return
|
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 |
/**
|
@@ -1,22 +1,45 @@
|
|
1 |
<?php
|
2 |
namespace Composer\Installers;
|
3 |
|
|
|
|
|
4 |
class MauticInstaller extends BaseInstaller
|
5 |
{
|
6 |
protected $locations = array(
|
7 |
-
'plugin'
|
8 |
-
'theme'
|
|
|
9 |
);
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
/**
|
12 |
* Format package name of mautic-plugins to CamelCase
|
13 |
*/
|
14 |
public function inflectPackageVars($vars)
|
15 |
{
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
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;
|
@@ -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 |
+
}
|
@@ -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}/',
|
@@ -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 |
}
|
@@ -18,7 +18,7 @@ class OxidInstaller extends BaseInstaller
|
|
18 |
*
|
19 |
* @param PackageInterface $package
|
20 |
* @param string $frameworkType
|
21 |
-
* @return
|
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 |
{
|
@@ -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 |
+
}
|
@@ -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 |
+
}
|
@@ -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 |
+
}
|
@@ -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 |
-
* @
|
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 |
{
|
@@ -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 |
}
|
@@ -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 |
+
}
|
@@ -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 |
+
}
|
@@ -12,35 +12,35 @@
|
|
12 |
use Symfony\Polyfill\Ctype as p;
|
13 |
|
14 |
if (!function_exists('ctype_alnum')) {
|
15 |
-
function ctype_alnum($
|
16 |
}
|
17 |
if (!function_exists('ctype_alpha')) {
|
18 |
-
function ctype_alpha($
|
19 |
}
|
20 |
if (!function_exists('ctype_cntrl')) {
|
21 |
-
function ctype_cntrl($
|
22 |
}
|
23 |
if (!function_exists('ctype_digit')) {
|
24 |
-
function ctype_digit($
|
25 |
}
|
26 |
if (!function_exists('ctype_graph')) {
|
27 |
-
function ctype_graph($
|
28 |
}
|
29 |
if (!function_exists('ctype_lower')) {
|
30 |
-
function ctype_lower($
|
31 |
}
|
32 |
if (!function_exists('ctype_print')) {
|
33 |
-
function ctype_print($
|
34 |
}
|
35 |
if (!function_exists('ctype_punct')) {
|
36 |
-
function ctype_punct($
|
37 |
}
|
38 |
if (!function_exists('ctype_space')) {
|
39 |
-
function ctype_space($
|
40 |
}
|
41 |
if (!function_exists('ctype_upper')) {
|
42 |
-
function ctype_upper($
|
43 |
}
|
44 |
if (!function_exists('ctype_xdigit')) {
|
45 |
-
function ctype_xdigit($
|
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 |
}
|
@@ -28,7 +28,7 @@
|
|
28 |
"minimum-stability": "dev",
|
29 |
"extra": {
|
30 |
"branch-alias": {
|
31 |
-
"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",
|
File without changes
|
File without changes
|
File without changes
|
@@ -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/
|
8 |
|
9 |
## Installation
|
10 |
|
@@ -13,7 +13,7 @@ The extension is installable via composer:
|
|
13 |
```json
|
14 |
{
|
15 |
"require": {
|
16 |
-
"
|
17 |
}
|
18 |
}
|
19 |
```
|
@@ -29,9 +29,9 @@ doctrine array cache is as following:
|
|
29 |
<?php
|
30 |
|
31 |
use Doctrine\Common\Cache\ArrayCache;
|
32 |
-
use
|
33 |
-
use
|
34 |
-
use
|
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
|
59 |
-
use
|
60 |
-
use
|
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
|
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
|
162 |
-
use
|
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
|
196 |
-
use
|
197 |
|
198 |
$cacheStrategy = new IndexedChainingCacheStrategy(array(
|
199 |
'time' => $lifetimeCacheStrategy,
|
@@ -235,4 +235,4 @@ Alexander <iam.asm89@gmail.com>
|
|
235 |
|
236 |
## License
|
237 |
|
238 |
-
twig
|
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
|
@@ -1,8 +1,8 @@
|
|
1 |
{
|
2 |
-
"name": "
|
3 |
"description": "Cache fragments of templates directly within Twig.",
|
4 |
"keywords": ["twig", "cache", "extension"],
|
5 |
-
"homepage": "https://github.com/
|
6 |
"type": "library",
|
7 |
"license": "MIT",
|
8 |
"authors": [
|
@@ -12,11 +12,13 @@
|
|
12 |
}
|
13 |
],
|
14 |
"require": {
|
15 |
-
"php":
|
16 |
-
"twig/twig": "^1.
|
17 |
},
|
18 |
"require-dev": {
|
19 |
-
"
|
|
|
|
|
20 |
"doctrine/cache": "~1.0"
|
21 |
},
|
22 |
"scripts": {
|
@@ -37,7 +39,7 @@
|
|
37 |
},
|
38 |
"extra": {
|
39 |
"branch-alias": {
|
40 |
-
"dev-master": "1.
|
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 |
}
|
@@ -9,9 +9,9 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
13 |
|
14 |
-
use
|
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 |
/**
|
@@ -9,9 +9,9 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
13 |
|
14 |
-
use
|
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 |
/**
|
@@ -9,7 +9,7 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
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.
|
@@ -9,9 +9,9 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
13 |
|
14 |
-
use
|
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
|
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 |
+
}
|
@@ -9,11 +9,11 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
13 |
|
14 |
-
use
|
15 |
-
use
|
16 |
-
use
|
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.
|
@@ -9,11 +9,11 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
13 |
|
14 |
-
use
|
15 |
-
use
|
16 |
-
use
|
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.
|
@@ -9,7 +9,7 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
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.
|
@@ -9,11 +9,11 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
13 |
|
14 |
-
use
|
15 |
-
use
|
16 |
-
use
|
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.
|
@@ -9,7 +9,7 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
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.
|
@@ -9,7 +9,7 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
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
|
@@ -9,7 +9,7 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
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 |
{
|
@@ -9,7 +9,7 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
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 |
{
|
@@ -9,7 +9,7 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
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 |
{
|
@@ -9,7 +9,7 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
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 |
{
|
@@ -9,14 +9,17 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
|
|
|
|
|
|
13 |
|
14 |
/**
|
15 |
* Extension for caching template blocks with twig.
|
16 |
*
|
17 |
* @author Alexander <iam.asm89@gmail.com>
|
18 |
*/
|
19 |
-
class Extension extends
|
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 |
*/
|
@@ -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 |
+
}
|
@@ -9,23 +9,25 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
13 |
|
14 |
-
use
|
|
|
|
|
15 |
|
16 |
/**
|
17 |
* Parser for cache/endcache blocks.
|
18 |
*
|
19 |
* @author Alexander <iam.asm89@gmail.com>
|
20 |
*/
|
21 |
-
class Cache extends
|
22 |
{
|
23 |
/**
|
24 |
-
* @param
|
25 |
*
|
26 |
* @return boolean
|
27 |
*/
|
28 |
-
public function decideCacheEnd(
|
29 |
{
|
30 |
return $token->test('endcache');
|
31 |
}
|
@@ -41,7 +43,7 @@ class Cache extends \Twig_TokenParser
|
|
41 |
/**
|
42 |
* {@inheritDoc}
|
43 |
*/
|
44 |
-
public function parse(
|
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(
|
54 |
$body = $this->parser->subparse(array($this, 'decideCacheEnd'), true);
|
55 |
-
$stream->expect(
|
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 |
}
|
@@ -13,7 +13,7 @@
|
|
13 |
>
|
14 |
<testsuites>
|
15 |
<testsuite name="Twig Cache Extension Test Suite">
|
16 |
-
<directory>./test/
|
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 |
|
@@ -9,9 +9,9 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
13 |
|
14 |
-
use
|
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->
|
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 |
}
|
@@ -9,9 +9,9 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
13 |
|
14 |
-
use
|
15 |
|
16 |
class GenerationalCacheStrategyTest extends \PHPUnit_Framework_TestCase
|
17 |
{
|
@@ -37,7 +37,7 @@ class GenerationalCacheStrategyTest extends \PHPUnit_Framework_TestCase
|
|
37 |
}
|
38 |
|
39 |
/**
|
40 |
-
* @expectedException \
|
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->
|
74 |
}
|
75 |
|
76 |
public function createCacheProviderMock()
|
77 |
{
|
78 |
-
return $this->
|
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 |
}
|
@@ -9,9 +9,9 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
13 |
|
14 |
-
use
|
15 |
|
16 |
class IndexedChainingCacheStrategyTest extends \PHPUnit_Framework_TestCase
|
17 |
{
|
@@ -47,7 +47,7 @@ class IndexedChainingCacheStrategyTest extends \PHPUnit_Framework_TestCase
|
|
47 |
}
|
48 |
|
49 |
/**
|
50 |
-
* @expectedException \
|
51 |
*/
|
52 |
public function testGenerateKeyThrowsExceptionOnMissingKey()
|
53 |
{
|
@@ -56,7 +56,7 @@ class IndexedChainingCacheStrategyTest extends \PHPUnit_Framework_TestCase
|
|
56 |
}
|
57 |
|
58 |
/**
|
59 |
-
* @expectedException \
|
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->
|
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 |
}
|
@@ -9,9 +9,9 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
13 |
|
14 |
-
use
|
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 \
|
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->
|
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 |
}
|
@@ -9,17 +9,17 @@
|
|
9 |
* file that was distributed with this source code.
|
10 |
*/
|
11 |
|
12 |
-
namespace
|
13 |
-
|
14 |
-
use
|
15 |
-
use
|
16 |
-
use
|
17 |
-
use
|
18 |
-
use
|
19 |
-
use
|
20 |
use Doctrine\Common\Cache\ArrayCache;
|
21 |
-
use
|
22 |
-
use
|
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
|
62 |
-
$twig = new
|
63 |
|
64 |
$cacheExtension = new Extension($this->createCacheStrategy($cacheStrategyName));
|
65 |
|
@@ -131,7 +131,7 @@ class FunctionalExtensionTest extends \PHPUnit_Framework_TestCase
|
|
131 |
}
|
132 |
|
133 |
/**
|
134 |
-
* @expectedException
|
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()
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,14 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
language: php
|
2 |
|
3 |
php:
|
4 |
- 5.6.30
|
5 |
-
- 7.
|
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 |
-
|
|
|
|
|
|
|
|
|
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
|
@@ -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
|
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;
|
@@ -1,34 +1,39 @@
|
|
1 |
{
|
2 |
-
"name"
|
3 |
"description": "Manage rewrites and routes in WordPress with this dead-simple plugin",
|
4 |
-
"keywords"
|
5 |
-
|
6 |
-
|
7 |
-
|
|
|
|
|
|
|
|
|
|
|
8 |
{
|
9 |
-
"name"
|
10 |
-
"email"
|
11 |
"homepage": "http://upstatement.com"
|
12 |
}
|
13 |
],
|
14 |
-
"support"
|
15 |
"issues": "https://github.com/jarednova/routes/issues",
|
16 |
-
"wiki"
|
17 |
"source": "https://github.com/jarednova/routes"
|
18 |
},
|
19 |
-
"require"
|
20 |
-
"php"
|
21 |
-
"altorouter/altorouter"
|
22 |
-
"composer/installers"
|
23 |
},
|
24 |
"require-dev": {
|
25 |
-
"phpunit/phpunit": "
|
26 |
-
"wp-cli/wp-cli"
|
27 |
-
"satooshi/php-coveralls": "
|
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 |
}
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php
|
@@ -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', '
|
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
|
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 |
}
|