Commit Graph

3235 Commits

Author SHA1 Message Date
Fabien Potencier f4adaef9f1 fixed tests 2017-05-11 13:24:58 -07:00
Fabien Potencier 537db199c2 bug #2462 Prepare for php 7.2 (hboomsma)
This PR was merged into the 1.x branch.

Discussion
----------

Prepare for php 7.2

* allow `|length` of `null`
* allow `|length` of objects not implementing `\Countable`

*To get no errors when running with PHP 7.2 You need to use phpunit
^6.1, otherwise the `each` function, used by phpunit, triggers errors.
You can do so by running phpunit like:
`SYMFONY_PHPUNIT_VERSION=6.1 phpnightly vendor/bin/simple-phpunit`*

Commits
-------

d2b7a01a Prepare for php 7.2
2017-05-11 13:23:40 -07:00
Fabien Potencier cf93147901 bug #2465 Fix generating template name in createTemplate() method (pulzarraider)
This PR was merged into the 1.x branch.

Discussion
----------

Fix generating template name in createTemplate() method

Before this change the name for the template was generated randomly based on uniqid(mt_rand()). It generated new file whenever the template was loaded as string using the `template_from_string` function even the template was the same. The generated file wasn't used anymore.

Now the cache file is generated by the content of template so using the `template_from_string` is much faster and doesn't pollute the cache folder with unneeded files.

Commits
-------

a7c8b082 Fix generating template name in createTemplate() method
2017-05-11 07:50:20 -07:00
Andrej Hudec a7c8b08270 Fix generating template name in createTemplate() method
Before this change the name for the template was generated randomly based on uniqid(mt_rand()). It generated new file whenever the  template was loaded as string using the `template_from_string`  even the template was the same. The generated file wasn't used anymore.
Now the cache file is generated by the content of template so using the `template_from_string` is faster and doesn't pollute the cache folder with unneeded files.
2017-05-11 12:36:01 +02:00
Hidde Boomsma d2b7a01a18 Prepare for php 7.2
* allow `|length` of `null`
* allow `|length` of objects not implementing `\Countable`

* To get no errors when running with PHP 7.2 You need to use phpunit
^6.1, otherwise the `each` function, used by phpunit, triggers errors.
You can do so by running phpunit like:
`SYMFONY_PHPUNIT_VERSION=6.1 phpnightly vendor/bin/simple-phpunit` *
2017-05-08 09:03:00 +02:00
Fabien Potencier 324ab87d2f minor #2461 Fix typo in advanced.rst file (fre5h)
This PR was submitted for the 2.x branch but it was merged into the 1.x branch instead (closes #2461).

Discussion
----------

Fix typo in `advanced.rst` file

Commits
-------

a264fc62 Fix typo in `advanced.rst` file
2017-05-05 06:59:56 -07:00
Artem Genvald a264fc62e5 Fix typo in advanced.rst file 2017-05-05 06:59:56 -07:00
Fabien Potencier a083db55c2 removed a @final tag 2017-04-26 14:47:34 -04:00
Fabien Potencier ef680be80e bumped version to 1.33.3-DEV 2017-04-20 11:41:13 -06:00
Fabien Potencier dd6ca96227 prepared the 1.33.2 release v1.33.2 2017-04-20 11:39:48 -06:00
Fabien Potencier 0db54be684 bug #2449 fixed edge case in the method cache for Twig attributes (fabpot)
This PR was merged into the 1.x branch.

Discussion
----------

fixed edge case in the method cache for Twig attributes

closes #2447

Commits
-------

413be416 fixed edge case in the method cache for Twig attributes
2017-04-20 11:37:13 -06:00
Fabien Potencier 413be4167b fixed edge case in the method cache for Twig attributes 2017-04-18 16:52:31 -06:00
Fabien Potencier 530be06a5a bumped version to 1.33.2-DEV 2017-04-18 15:44:30 -06:00
Fabien Potencier a87f959f4b prepared the 1.33.1 release v1.33.1 2017-04-18 15:43:11 -06:00
Fabien Potencier 9b417f4212 updated CHANGELOG 2017-04-18 15:38:12 -06:00
Fabien Potencier dab65824ec minor #2448 Wrong stdClass class name generates warning (chrisCheeseBurgames)
This PR was submitted for the master branch but it was merged into the 1.x branch instead (closes #2448).

Discussion
----------

Wrong stdClass class name generates warning

Commits
-------

38987c93 Wrong stdClass class name generates warning
2017-04-18 07:54:16 -06:00
Christophe SAUVEUR 38987c9349 Wrong stdClass class name generates warning 2017-04-18 07:53:53 -06:00
Fabien Potencier dc70f3e826 added more is_object() safegaruds 2017-04-05 16:23:01 -07:00
Fabien Potencier 4a722dd02f bug #2433 Fix #2431 (mpdude)
This PR was merged into the 1.x branch.

Discussion
----------

Fix #2431

See title

Commits
-------

a5c2da6d test if is_object before calling method_exists, fixes #2431
2017-04-05 16:21:29 -07:00
Fabien Potencier cede5f3fbf minor #2434 Autoescape test addition; collision fix in Array Loader. (dave-newson)
This PR was squashed before being merged into the 1.x branch (closes #2434).

Discussion
----------

Autoescape test addition; collision fix in Array Loader.

This PR makes two changes. It was created while testing a third issue that was discovered to be fixed in the latest version.

## Added JS to Autoescape: name test

This adds "index.js.html" to the autoescape:name test, proving the functionality of the JS escape system and the name guessing strategy.

## Fixed collision in Array Loader

While trying to run the above test, it was discovered that the Array Loader uses the content of the template file as the "key" for determining which compiled template to load.
As the above test uses identical content for both HTML and JS templates this led to the compiled HTML template always being loaded.

This change prepends the content with the filename, which vaguely follows the same mechanism as the "options" (which are appended after `getCacheKey` is called).

**This change might be a backwards-incompatible change** depending on your interpretation of how `Loader/Array` is intended to be used.
The class itself states:
> This loader should only be used for unit testing.

The assumption is it's OK for this to occur.

Test cases have been updated to take this key change into account, and an additional test has been added to confirm `Loader/Array` specifically has the capability to resolve two files with the same content to different keys.

Commits
-------

da82b41a Autoescape test addition; collision fix in Array Loader.
2017-04-05 16:19:31 -07:00
dave-newson da82b41ac2 Autoescape test addition; collision fix in Array Loader. 2017-04-05 16:19:30 -07:00
Matthias Pigulla a5c2da6de0 test if is_object before calling method_exists, fixes #2431 2017-03-24 15:59:34 +01:00
Fabien Potencier c622995d6d bumped version to 1.33.1-DEV 2017-03-22 08:40:48 -07:00
Fabien Potencier 05cf49921b prepared the 1.33.0 release v1.33.0 2017-03-22 08:40:09 -07:00
Fabien Potencier 755b101ff5 fixed PHP 5.2 compat 2017-03-22 08:24:38 -07:00
Fabien Potencier 82ff9d6bb4 updated CHANGELOG 2017-03-22 08:06:31 -07:00
Fabien Potencier eaf6a3000d bug #2262 Call clearstatcache() before calling is_dir(). (hanabokuro)
This PR was submitted for the master branch but it was merged into the 1.x branch instead (closes #2262).

Discussion
----------

Call clearstatcache() before calling is_dir().

The result of is_dir() is cached.
So call clearstatcache() before calling 2nd is_dir().

Commits
-------

96638c0d Call clearstatcache() before calling is_dir().
2017-03-22 08:05:13 -07:00
Shigeki Morimoto 96638c0da6 Call clearstatcache() before calling is_dir(). 2017-03-22 08:05:13 -07:00
Fabien Potencier 5040e38885 bumped version to 1.33 2017-03-22 07:48:20 -07:00
Fabien Potencier 8441aaab03 fixed CHANGELOG 2017-03-22 07:47:32 -07:00
Fabien Potencier f8d4c096ae feature #2420 Make "length" filter and "empty" test consider __toString [Twig 1.x] (mpdude)
This PR was squashed before being merged into the 1.x branch (closes #2420).

Discussion
----------

Make "length" filter and "empty" test consider __toString [Twig 1.x]

Use case: When you have variables in your views that are actually objects but implement `__toString`, they feel like strings: For example, `{{ something }}` will make use of that to-string-conversion.

What does *not* work is

**a)** `{{ something | length }}`, because that will only have a meaningful return value for objects implementing `\Countable`. This interface, however, may have a totally different semantic/purpose for the object in question.

**b)** `{% if something is empty %}`, because

> empty checks if a variable is an empty string, an empty array, an empty hash, exactly false, or exactly null  `[http://twig.sensiolabs.org/doc/2.x/tests/empty.html]`

... and obviously `something !== null` in this case.

For template designers, this may be surprising if they don't actually care about the object-or-string difference, they just "use" the variable.

This change tries to address this as it changes the behavior for  such objects that have a `__toString` method and are *not* `\Countable`.

*Yes*, it's a BC break in edge cases:

For a), objects that implement a `__toString` but not `\Countable` would previously yield `1` for `{{ object | length }}`, and now would return the length of the string returned by `__toString`.

For b), testing (defined) variables that are objects implementing  `__toString` and that return `''`,  the test now is `false`.

Commits
-------

f5193e92 Make "length" filter and "empty" test consider __toString [Twig 1.x]
2017-03-22 07:45:54 -07:00
Matthias Pigulla f5193e92c5 Make "length" filter and "empty" test consider __toString [Twig 1.x] 2017-03-22 07:33:03 -07:00
Fabien Potencier 98f0d2b128 minor #2429 fixed risky tests (fabpot)
This PR was merged into the 1.x branch.

Discussion
----------

fixed risky tests

Commits
-------

7259e52f fixed risky tests
2017-03-20 08:49:31 -07:00
Fabien Potencier 7259e52fa4 fixed risky tests 2017-03-20 08:35:32 -07:00
Fabien Potencier ae2d59da05 bug #2427 Fixed JS escaping for unicode characters with higher code points (mikealmond)
This PR was submitted for the 2.x branch but it was merged into the 1.x branch instead (closes #2427).

Discussion
----------

Fixed JS escaping for unicode characters with higher code points

Unicode characters with higher code points were being escaped incorrectly. When these characters are escaped, they should maintain their surrogate halves. Previously, Twig was dropping the first surrogate half.

https://mathiasbynens.be/notes/javascript-escapes#unicode-code-point
> The tetragram for centre symbol (𝌆) has code point U+1D306, so you could write it as \u{1D306}. For comparison, if you were to use simple Unicode escapes to represent this symbol, you’d have to write out the surrogate halves separately: '\uD834\uDF06'.

Commits
-------

7f913495 Fixed JS escaping for unicode characters with higher code points
2017-03-17 10:19:15 -07:00
Mike Almond 7f9134952d Fixed JS escaping for unicode characters with higher code points 2017-03-17 10:19:06 -07:00
Fabien Potencier c5ba65ca44 minor #2422 Updated the vim-twig link (InFog)
This PR was submitted for the 2.x branch but it was merged into the 1.x branch instead (closes #2422).

Discussion
----------

Updated the vim-twig link

The other project is not maintained anymore and the author recommends this fork.

Commits
-------

955d5abd Updated the vim-twig link
2017-03-12 08:19:55 -07:00
Evaldo Junior 955d5abd92 Updated the vim-twig link
The other project is not maintained anymore and the author recommends this fork.
2017-03-12 08:19:54 -07:00
Fabien Potencier 3fddfd41d0 minor #2423 PHPUnit 6 compatability (xabbuh)
This PR was merged into the 1.x branch.

Discussion
----------

PHPUnit 6 compatability

This should make builds on Traivs CI green again.

Commits
-------

0d791de6 PHPUnit 6 compatability
2017-03-12 08:17:33 -07:00
Christian Flothmann 0d791de63d PHPUnit 6 compatability 2017-03-11 20:03:13 +01:00
Fabien Potencier efb110d3d0 minor #2421 Fix codeblock in recipes documentation (aaa2000)
This PR was submitted for the 2.x branch but it was merged into the 1.x branch instead (closes #2421).

Discussion
----------

Fix codeblock in recipes documentation

Commits
-------

adba4c2a Fix codeblock
2017-03-10 08:51:30 -08:00
aaa2000 adba4c2a2b Fix codeblock 2017-03-10 08:51:30 -08:00
Fabien Potencier 4b2e9ef2a7 bug #2417 Compiler - setlocale must be a string (SpacePossum)
This PR was merged into the 1.x branch.

Discussion
----------

Compiler - setlocale must be a string

Following the docs of [setlocale](http://php.net/manual/en/function.setlocale.php) the second argument must be a `string`, `null` or an `array`. Special note about "0" is there as well.

closes https://github.com/twigphp/Twig/issues/2416

Commits
-------

9de41cfe Update Compiler.php
2017-03-08 09:45:58 -08:00
SpacePossum 9de41cfed9 Update Compiler.php 2017-03-08 18:10:11 +01:00
Fabien Potencier 27d7ea9675 bumped version to 1.32.1-DEV 2017-02-26 16:07:56 -08:00
Fabien Potencier 9935b662e2 prepared the 1.32.0 release v1.32.0 2017-02-26 16:07:03 -08:00
Fabien Potencier 48e17f7c63 udpated CHANGELOG 2017-02-26 15:19:41 -08:00
Fabien Potencier b0ec8390f8 improved some tests 2017-02-23 06:58:09 -08:00
Fabien Potencier 8ff73ca55b removed trailing space 2017-02-23 06:56:46 -08:00
Fabien Potencier af0d787c43 fixed CS 2017-02-23 06:54:27 -08:00