Timber - Version 1.8.1

Version Description

Fixes and improvements - Fixed how mime_type was figured out in some PHP installs #1798

Download this release

Release Info

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

Code changes from version 1.8.0 to 1.8.1

LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012-2013 Jared Novack
2
 
3
  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:
4
 
1
+ Copyright (c) 2012-2018 Jared Novack
2
 
3
  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:
4
 
README.md CHANGED
@@ -2,7 +2,7 @@
2
  <a href="https://upstatement.com/timber/"><img src="http://i.imgur.com/PbEwvZ9.png" style="display:block; margin:auto; width:100%; max-width:100%"/></a>
3
  </div>
4
 
5
- By [Jared Novack](https://github.com/jarednova) ([@jarednova](https://twitter.com/jarednova)), [Lukas Gächter](https://github.com/gchtr) ([@lgaechter](https://twitter.com/lgaechter)), [Linda Gorman](https://github.com/lggorman) ([@lggorman](https://twitter.com/lggorman)), [Upstatement](https://twitter.com/upstatement) and [hundreds of other GitHub contributors](https://github.com/timber/timber/graphs/contributors)
6
 
7
 
8
  [![Build Status](https://img.shields.io/travis/timber/timber/master.svg?style=flat-square)](https://travis-ci.org/timber/timber)
2
  <a href="https://upstatement.com/timber/"><img src="http://i.imgur.com/PbEwvZ9.png" style="display:block; margin:auto; width:100%; max-width:100%"/></a>
3
  </div>
4
 
5
+ By [Jared Novack](https://github.com/jarednova) ([@jarednova](https://twitter.com/jarednova)), [Lukas Gächter](https://github.com/gchtr) ([@lgaechter](https://twitter.com/lgaechter)), [Pascal Knecht](https://github.com/pascalknecht) ([@pascalknecht](https://twitter.com/revenwo)), [Upstatement](https://twitter.com/upstatement) and [hundreds of other GitHub contributors](https://github.com/timber/timber/graphs/contributors)
6
 
7
 
8
  [![Build Status](https://img.shields.io/travis/timber/timber/master.svg?style=flat-square)](https://travis-ci.org/timber/timber)
lib/Helper.php CHANGED
@@ -456,6 +456,8 @@ class Helper {
456
  * @return string
457
  */
458
  public static function get_comment_form( $post_id = null, $args = array() ) {
 
 
459
  return self::ob_function('comment_form', array($args, $post_id));
460
  }
461
 
456
  * @return string
457
  */
458
  public static function get_comment_form( $post_id = null, $args = array() ) {
459
+ global $post;
460
+ $post = get_post($post_id);
461
  return self::ob_function('comment_form', array($args, $post_id));
462
  }
463
 
lib/ImageHelper.php CHANGED
@@ -151,12 +151,33 @@ class ImageHelper {
151
  public static function is_svg( $file_path ) {
152
  $ret = false;
153
  if ( isset($file_path) && '' !== $file_path && file_exists($file_path) ) {
154
- $mime = mime_content_type($file_path);
155
- $ret = in_array($mime, ['image/svg+xml', 'text/html', 'text/plain']);
156
  }
157
  return $ret;
158
  }
159
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160
  /**
161
  * Generate a new image with the specified dimensions.
162
  * New dimensions are achieved by adding colored bands to maintain ratio.
151
  public static function is_svg( $file_path ) {
152
  $ret = false;
153
  if ( isset($file_path) && '' !== $file_path && file_exists($file_path) ) {
154
+ $mime = self::_mime_content_type($file_path);
155
+ $ret = in_array($mime, ['image/svg+xml', 'text/html', 'text/plain', 'image/svg']);
156
  }
157
  return $ret;
158
  }
159
 
160
+ /**
161
+ *
162
+ * Reads a file's mime type. This is a hack b/c some installs of PHP don't enable this function
163
+ * by default. See #1798 for more info
164
+ * @since 1.8.1
165
+ * @param string $filename to test.
166
+ * @return string|boolean mime type if found (eg. `image/svg` or `text/plain`) false if not
167
+ */
168
+ static function _mime_content_type( $filename ) {
169
+ if ( function_exists( 'mime_content_type' ) ) {
170
+ return mime_content_type( $filename );
171
+ }
172
+ $result = new \finfo();
173
+
174
+ if ( file_exists( $filename ) === true ) {
175
+ return $result->file( $filename, FILEINFO_MIME_TYPE );
176
+ }
177
+
178
+ return false;
179
+ }
180
+
181
  /**
182
  * Generate a new image with the specified dimensions.
183
  * New dimensions are achieved by adding colored bands to maintain ratio.
lib/Timber.php CHANGED
@@ -35,7 +35,7 @@ use Timber\Loader;
35
  */
36
  class Timber {
37
 
38
- public static $version = '1.8.0';
39
  public static $locations;
40
  public static $dirname = 'views';
41
  public static $twig_cache = false;
35
  */
36
  class Timber {
37
 
38
+ public static $version = '1.8.1';
39
  public static $locations;
40
  public static $dirname = 'views';
41
  public static $twig_cache = false;
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: jarednova, connorjburton, lggorman
3
  Tags: template engine, templates, twig
4
  Requires at least: 4.7.9
5
  Tested up to: 4.9.6
6
- Stable tag: 1.8.0
7
  PHP version: 5.3.0 or greater
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -36,7 +36,11 @@ _Twig is the template language powering Timber; if you need a little background
36
  **Changes for Theme Developers**
37
  - Please add any usage changes here so theme developers are informed of changes.
38
 
39
- = 1.8.0=
 
 
 
 
40
  **Changes for Theme Developers**
41
  - Webp is now supported as a conversion format ( `{{ post.thumbnail.src | towebp }}` ) @mhz-tamb @pascalknecht #1638 #1777 #1780
42
  - Timber now recognizes that SVGs shouldn't be resized as if they are rasters (for retina, etc.) @palmiak #1726 #1736
3
  Tags: template engine, templates, twig
4
  Requires at least: 4.7.9
5
  Tested up to: 4.9.6
6
+ Stable tag: 1.8.1
7
  PHP version: 5.3.0 or greater
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
36
  **Changes for Theme Developers**
37
  - Please add any usage changes here so theme developers are informed of changes.
38
 
39
+ = 1.8.1 =
40
+ **Fixes and improvements**
41
+ - Fixed how mime_type was figured out in some PHP installs #1798
42
+
43
+ = 1.8.0 =
44
  **Changes for Theme Developers**
45
  - Webp is now supported as a conversion format ( `{{ post.thumbnail.src | towebp }}` ) @mhz-tamb @pascalknecht #1638 #1777 #1780
46
  - Timber now recognizes that SVGs shouldn't be resized as if they are rasters (for retina, etc.) @palmiak #1726 #1736
timber-starter-theme/functions.php CHANGED
@@ -26,7 +26,7 @@ if ( ! class_exists( 'Timber' ) ) {
26
  Timber::$dirname = array( 'templates', 'views' );
27
 
28
  /**
29
- * By default, Timber does NOT autoescape values. Want to enable Twig's autoescape?
30
  * No prob! Just set this value to true
31
  */
32
  Timber::$autoescape = false;
@@ -39,11 +39,7 @@ Timber::$autoescape = false;
39
  class StarterSite extends Timber\Site {
40
  /** Add timber support. */
41
  public function __construct() {
42
- add_theme_support( 'post-formats' );
43
- add_theme_support( 'post-thumbnails' );
44
- add_theme_support( 'title-tag' );
45
- add_theme_support( 'menus' );
46
- add_theme_support( 'html5', array( 'comment-list', 'comment-form', 'search-form', 'gallery', 'caption' ) );
47
  add_filter( 'timber_context', array( $this, 'add_to_context' ) );
48
  add_filter( 'get_twig', array( $this, 'add_to_twig' ) );
49
  add_action( 'init', array( $this, 'register_post_types' ) );
@@ -72,6 +68,58 @@ class StarterSite extends Timber\Site {
72
  return $context;
73
  }
74
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  /** This Would return 'foo bar!'.
76
  *
77
  * @param string $text being 'foo', then returned 'foo bar!'.
26
  Timber::$dirname = array( 'templates', 'views' );
27
 
28
  /**
29
+ * By default, Timber does NOT autoescape values. Want to enable Twig's autoescape?
30
  * No prob! Just set this value to true
31
  */
32
  Timber::$autoescape = false;
39
  class StarterSite extends Timber\Site {
40
  /** Add timber support. */
41
  public function __construct() {
42
+ add_action( 'after_setup_theme', array( $this, 'theme_supports' ) );
 
 
 
 
43
  add_filter( 'timber_context', array( $this, 'add_to_context' ) );
44
  add_filter( 'get_twig', array( $this, 'add_to_twig' ) );
45
  add_action( 'init', array( $this, 'register_post_types' ) );
68
  return $context;
69
  }
70
 
71
+ public function theme_supports() {
72
+ // Add default posts and comments RSS feed links to head.
73
+ add_theme_support( 'automatic-feed-links' );
74
+
75
+ /*
76
+ * Let WordPress manage the document title.
77
+ * By adding theme support, we declare that this theme does not use a
78
+ * hard-coded <title> tag in the document head, and expect WordPress to
79
+ * provide it for us.
80
+ */
81
+ add_theme_support( 'title-tag' );
82
+
83
+ /*
84
+ * Enable support for Post Thumbnails on posts and pages.
85
+ *
86
+ * @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
87
+ */
88
+ add_theme_support( 'post-thumbnails' );
89
+
90
+ /*
91
+ * Switch default core markup for search form, comment form, and comments
92
+ * to output valid HTML5.
93
+ */
94
+ add_theme_support(
95
+ 'html5', array(
96
+ 'comment-form',
97
+ 'comment-list',
98
+ 'gallery',
99
+ 'caption',
100
+ )
101
+ );
102
+
103
+ /*
104
+ * Enable support for Post Formats.
105
+ *
106
+ * See: https://codex.wordpress.org/Post_Formats
107
+ */
108
+ add_theme_support(
109
+ 'post-formats', array(
110
+ 'aside',
111
+ 'image',
112
+ 'video',
113
+ 'quote',
114
+ 'link',
115
+ 'gallery',
116
+ 'audio',
117
+ )
118
+ );
119
+
120
+ add_theme_support( 'menus' );
121
+ }
122
+
123
  /** This Would return 'foo bar!'.
124
  *
125
  * @param string $text being 'foo', then returned 'foo bar!'.
timber-starter-theme/templates/archive.twig ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ {# This file demonstrates using most of the index.twig template and modifying
2
+ just a small part. See `search.twig` for an example of another approach #}
3
+
4
+ {% extends "index.twig" %}
5
+
6
+ {% block content %}
7
+ <h3>This is my archive</h3>
8
+ {{ parent() }}
9
+ {% endblock %}
timber-starter-theme/templates/base.twig CHANGED
@@ -7,6 +7,7 @@
7
  {% endblock %}
8
 
9
  <body class="{{body_class}}" data-template="base.twig">
 
10
  <header class="header" >
11
  {% block header %}
12
  <div class="wrapper">
7
  {% endblock %}
8
 
9
  <body class="{{body_class}}" data-template="base.twig">
10
+ <a class="skip-link screen-reader-text" href="#content">{{ _e( 'Skip to content') }}</a>
11
  <header class="header" >
12
  {% block header %}
13
  <div class="wrapper">
timber-starter-theme/templates/comment-form.twig CHANGED
@@ -1,36 +1,28 @@
1
  <div class="comment-form">
2
- <h3> add comment </h3>
3
-
4
- <form id="form" class="comment-form" method="post" action="{{ site.site_url~'/wp-comments-post.php' }}">
5
  {% if user %}
6
  <input type="hidden" name="email" value="{{ user.email }}">
7
  <input type="hidden" name="author" value="{{ user.name }}">
8
  <input type="hidden" name="url" value="{{ user.link }}">
9
  {% else %}
10
- <div>
11
- <label for="email"> email </label>
12
- <input required name="email" type="text" id="email"/>
13
-
14
- <label for="author"> username </label>
15
- <input required name="author" type="text" id="author"/>
16
-
17
- <label for="url"> url </label>
18
- <input name="url" id="url" type="text"/>
19
- </div>
20
  {% endif %}
21
-
22
- <div>
23
- <label for="comment"> comment </label>
24
- <textarea placeholder="comment text" name="comment" cols="60" rows="3" id="comment"></textarea>
25
- </div>
26
-
27
- <input name="comment_post_ID" value="{{ post.id }}" id="comment_post_ID" type="hidden">
28
- <input name="comment_parent" id="comment_parent" value="{{ comment.ID|default('0') }}" type="hidden">
29
-
30
- <div>
31
- <button type="submit" name="Submit" class="btn"> send </button>
32
- <button type="reset"> cancel </button>
33
- <p> Your comment will be revised by the site if needed. </p>
34
- </div>
35
  </form>
36
  </div>
1
  <div class="comment-form">
2
+ <h3>Add comment</h3>
3
+ <form class="comment-form" method="post" action="{{ site.site_url~'/wp-comments-post.php' }}">
 
4
  {% if user %}
5
  <input type="hidden" name="email" value="{{ user.email }}">
6
  <input type="hidden" name="author" value="{{ user.name }}">
7
  <input type="hidden" name="url" value="{{ user.link }}">
8
  {% else %}
9
+ <label>Email<br>
10
+ <input required name="email" type="email" id="email">
11
+ </label>
12
+ <label>Name<br>
13
+ <input required name="author" type="text">
14
+ </label>
15
+ <label>Website<br>
16
+ <input name="url" type="url">
17
+ </label>
 
18
  {% endif %}
19
+ <label>Comment<br>
20
+ <textarea placeholder="Leave a comment..." name="comment" cols="60" rows="3"></textarea>
21
+ </label>
22
+ <input name="comment_post_ID" value="{{ post.id }}" type="hidden">
23
+ <input name="comment_parent" value="{{ comment.ID|default('0') }}" type="hidden">
24
+ <button type="submit" name="Submit" class="btn">Send</button>
25
+ <button type="reset">Cancel</button>
26
+ <p>Your comment will be revised by the site if needed.</p>
 
 
 
 
 
 
27
  </form>
28
  </div>
timber-starter-theme/templates/html-header.twig CHANGED
@@ -1,15 +1,16 @@
1
  <!doctype html>
2
- <!--[if lt IE 7]><html class="no-js ie ie6 lt-ie9 lt-ie8 lt-ie7" {{ site.language_attributes }}> <![endif]-->
3
- <!--[if IE 7]><html class="no-js ie ie7 lt-ie9 lt-ie8" {{ site.language_attributes }}> <![endif]-->
4
- <!--[if IE 8]><html class="no-js ie ie8 lt-ie9" {{ site.language_attributes }}> <![endif]-->
5
- <!--[if gt IE 8]><!--><html class="no-js" {{ site.language_attributes }}> <!--<![endif]-->
6
  <head>
7
  <meta charset="{{ site.charset }}" />
8
  <meta name="description" content="{{ site.description }}">
9
  <link rel="stylesheet" href="{{ site.theme.link }}/style.css" type="text/css" media="screen" />
10
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
11
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
12
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
13
  <link rel="author" href="{{ site.theme.link }}/humans.txt" />
14
  <link rel="pingback" href="{{ site.pingback_url }}" />
 
15
  {{function('wp_head')}}
1
  <!doctype html>
2
+ <!--[if lt IE 7]><html class="no-js no-svg ie ie6 lt-ie9 lt-ie8 lt-ie7" {{ site.language_attributes }}> <![endif]-->
3
+ <!--[if IE 7]><html class="no-js no-svg ie ie7 lt-ie9 lt-ie8" {{ site.language_attributes }}> <![endif]-->
4
+ <!--[if IE 8]><html class="no-js no-svg ie ie8 lt-ie9" {{ site.language_attributes }}> <![endif]-->
5
+ <!--[if gt IE 8]><!--><html class="no-js no-svg" {{ site.language_attributes }}> <!--<![endif]-->
6
  <head>
7
  <meta charset="{{ site.charset }}" />
8
  <meta name="description" content="{{ site.description }}">
9
  <link rel="stylesheet" href="{{ site.theme.link }}/style.css" type="text/css" media="screen" />
10
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
11
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
12
+ <meta name="viewport" content="width=device-width, initial-scale=1">
13
  <link rel="author" href="{{ site.theme.link }}/humans.txt" />
14
  <link rel="pingback" href="{{ site.pingback_url }}" />
15
+ <link rel="profile" href="http://gmpg.org/xfn/11">
16
  {{function('wp_head')}}
timber-starter-theme/templates/partial/pagination.twig CHANGED
@@ -1,5 +1,5 @@
1
  {% if posts.pagination.pages is not empty %}
2
- <div class="pagination-block">
3
  <ul class="pagination">
4
  {% if pagination.pages|first and pagination.pages|first.current != true %}
5
  <li class="first btn">
@@ -7,7 +7,7 @@
7
  </li>
8
  {% else %}
9
  <li class="first btn disabled">
10
- <a>First</a>
11
  </li>
12
  {% endif %}
13
 
@@ -17,7 +17,7 @@
17
  </li>
18
  {% else %}
19
  <li class="prev btn disabled">
20
- <a>Previous</a>
21
  </li>
22
  {% endif %}
23
 
@@ -28,7 +28,7 @@
28
  </li>
29
  {% else %}
30
  <li class="current">
31
- <a class="{{ page.class }}">{{ page.title }}</a>
32
  </li>
33
  {% endif %}
34
  {% endfor %}
@@ -41,9 +41,9 @@
41
  </li>
42
  {% else %}
43
  <li class="next btn disabled">
44
- <a>
45
  Next
46
- </a>
47
  </li>
48
  {% endif %}
49
  {% if pagination.pages|last and pagination.pages|last.current != true %}
@@ -52,9 +52,9 @@
52
  </li>
53
  {% else %}
54
  <li class="last btn disabled">
55
- <a>Last</a>
56
  </li>
57
  {% endif %}
58
  </ul>
59
- </div>
60
  {% endif %}
1
  {% if posts.pagination.pages is not empty %}
2
+ <nav class="pagination-block">
3
  <ul class="pagination">
4
  {% if pagination.pages|first and pagination.pages|first.current != true %}
5
  <li class="first btn">
7
  </li>
8
  {% else %}
9
  <li class="first btn disabled">
10
+ <button disabled>First</button>
11
  </li>
12
  {% endif %}
13
 
17
  </li>
18
  {% else %}
19
  <li class="prev btn disabled">
20
+ <button disabled>Previous</button>
21
  </li>
22
  {% endif %}
23
 
28
  </li>
29
  {% else %}
30
  <li class="current">
31
+ <span class="{{ page.class }}">{{ page.title }}</span>
32
  </li>
33
  {% endif %}
34
  {% endfor %}
41
  </li>
42
  {% else %}
43
  <li class="next btn disabled">
44
+ <button disabled>
45
  Next
46
+ </button>
47
  </li>
48
  {% endif %}
49
  {% if pagination.pages|last and pagination.pages|last.current != true %}
52
  </li>
53
  {% else %}
54
  <li class="last btn disabled">
55
+ <button disabled>Last</button>
56
  </li>
57
  {% endif %}
58
  </ul>
59
+ </nav>
60
  {% endif %}
timber-starter-theme/templates/search.twig ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {# see `archive.twig` for an alternative strategy of extending templates #}
2
+ {% extends "base.twig" %}
3
+
4
+ {% block content %}
5
+ {# see `base.twig:27` for where this block's content will be inserted #}
6
+ <div class="content-wrapper">
7
+ {% for post in posts %}
8
+ {% include ['tease-'~post.post_type~'.twig', 'tease.twig'] %}
9
+ {% endfor %}
10
+
11
+ {% include 'partial/pagination.twig' with { pagination: posts.pagination({show_all: false, mid_size: 3, end_size: 2}) } %}
12
+ </div>
13
+ {% endblock %}
timber-starter-theme/templates/single.twig CHANGED
@@ -6,6 +6,7 @@
6
  <img src="{{ post.thumbnail.src|resize(1200, 300) }}">
7
  <section class="article-content">
8
  <h1 class="article-h1">{{ post.title }}</h1>
 
9
  <p class="blog-author">
10
  <span>By</span><a href="{{post.author.path}}"> {{ post.author.name }} </a><span>&bull;</span> {{ post.date }}
11
  </p>
6
  <img src="{{ post.thumbnail.src|resize(1200, 300) }}">
7
  <section class="article-content">
8
  <h1 class="article-h1">{{ post.title }}</h1>
9
+ <a href="{{ post.link }}">{{ _e('edit') }}</a>
10
  <p class="blog-author">
11
  <span>By</span><a href="{{post.author.path}}"> {{ post.author.name }} </a><span>&bull;</span> {{ post.date }}
12
  </p>
timber.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Timber
4
  Description: The WordPress Timber Library allows you to write themes using the power of Twig templates.
5
  Plugin URI: http://timber.upstatement.com
6
  Author: Jared Novack + Upstatement
7
- Version: 1.8.0
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: http://timber.upstatement.com
6
  Author: Jared Novack + Upstatement
7
+ Version: 1.8.1
8
  Author URI: http://upstatement.com/
9
  */
10
  // we look for Composer files first in the plugins dir.
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit77fa4599d331e2be6457346ebbccd4da::getLoader();
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit6fa8f4c34559c8e21a30db28ddb43132::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit77fa4599d331e2be6457346ebbccd4da
6
  {
7
  private static $loader;
8
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit77fa4599d331e2be6457346ebbccd4da
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit77fa4599d331e2be6457346ebbccd4da', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit77fa4599d331e2be6457346ebbccd4da', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit6fa8f4c34559c8e21a30db28ddb43132
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit6fa8f4c34559c8e21a30db28ddb43132', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit6fa8f4c34559c8e21a30db28ddb43132', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {