web/konrad/twig.git
12 years agoimprove test coverage and support negative int for random function
Tobias Schultze [Thu, 26 Jan 2012 13:52:41 +0000]
improve test coverage and support negative int for random function

12 years agotweaked doc
Fabien Potencier [Thu, 26 Jan 2012 12:25:31 +0000]
tweaked doc

12 years agomerged branch Tobion/patch-4 (PR #614)
Fabien Potencier [Thu, 26 Jan 2012 12:24:26 +0000]
merged branch Tobion/patch-4 (PR #614)

Commits
-------

a15e8f7 typo again
2561aa2 typo
faa90c9 updated doc for random function
fe66358 added tests for random function
6f5ceee Made the random function more versatile

Discussion
----------

Made the random function more versatile

The point is to meet user expectations and to make it more versatile, so it works under more circumstances.
At the moment the random function does only return the supplied parameter when it's not an array. That is not very useful. With this PR it will behave like

    random() => integer as with mt_rand()
    random(5) => integer between 0 and 5 as with mt_rand(0, 5)
    random('foobar') => random character from 'foobar'
    random(array(...)) => random element

I will add tests and documentation if you accept this PR.

---------------------------------------------------------------------------

by fabpot at 2012-01-26T07:29:35Z

Looks good to me. Can you update the docs and add some unit tests?

---------------------------------------------------------------------------

by Tobion at 2012-01-26T11:50:17Z

ready

12 years agotypo again
Tobias Schultze [Thu, 26 Jan 2012 11:48:56 +0000]
typo again

12 years agotypo
Tobias Schultze [Thu, 26 Jan 2012 11:48:04 +0000]
typo

12 years agoupdated doc for random function
Tobias Schultze [Thu, 26 Jan 2012 11:45:18 +0000]
updated doc for random function

12 years agoadded tests for random function
Tobias Schultze [Thu, 26 Jan 2012 11:19:51 +0000]
added tests for random function

12 years agoMade the random function more versatile
Tobias Schultze [Thu, 26 Jan 2012 01:32:02 +0000]
Made the random function more versatile

12 years agomerged branch Tobion/patch-3 (PR #613)
Fabien Potencier [Wed, 25 Jan 2012 15:02:48 +0000]
merged branch Tobion/patch-3 (PR #613)

Commits
-------

e81a9e2 Improved random function

Discussion
----------

Improved random function

- dealing with empty array (otherwise PHP warning is raised)
- using array_rand() and thus saving the $keys variable

---------------------------------------------------------------------------

by Tobion at 2012-01-25T12:41:32Z

How about allowing `mt_rand ( int $min , int $max )` with optional parameters to be used when the $values ist not an array?
This would solve use case #612

12 years agoImproved random function
Tobias Schultze [Wed, 25 Jan 2012 12:34:39 +0000]
Improved random function

12 years agotweaked previous merge (no need to duplicate visitors, handlers and the expression...
Fabien Potencier [Tue, 24 Jan 2012 18:12:39 +0000]
tweaked previous merge (no need to duplicate visitors, handlers and the expression parser when parsing a template inside another one)

12 years agoadd a unit test for previous merge
Fabien Potencier [Tue, 24 Jan 2012 18:09:28 +0000]
add a unit test for previous merge

12 years agomerged branch Seldaek/inception (PR #610)
Fabien Potencier [Tue, 24 Jan 2012 18:09:17 +0000]
merged branch Seldaek/inception (PR #610)

Commits
-------

0d656f5 Add comments
0255764 Updated CHANGELOG
b327a48 Protect the Parser against recursive parsing issues

Discussion
----------

Make the parser Inception-Proof

Spent half a day debugging before I realized what happened, but I'll try to keep a long story short:

When the cache is empty, and the first template containing an assetic `{% javascripts %}` or similar tag is parsed, it will build up the assetic "assets" or recipes cache, this in turn will tokenize and parse all your templates to find assetic tags and cache that information.

At this point the parser is parsing something else in the middle of a parse() call, and since there is a single instance in the environment, it means all the instance vars are messed up and contain incorrect references to the latest TokenStream that was parsed by assetic, etc.

This had two effects on my application, both appearing seemingly randomly because it highly depends on the order of things, the state of your cache and probably other factors:

- The first thing that happened is that a template was compiled using the wrong template filename, which means I had a `__TwigTemplate_abcd` in the file named `dcba.php`, and it would never find the right class.
- The second issue (could not reproduce but I assume it was caused by this as well) is that the parse tree is completely broken and you end up with a parse error because it thinks it's at the end when it's not, or similar problem.

The proposed fix basically pushes/pops all the vars into a stack whenever the parser starts/stops, which worked very effectively here and does not introduce much breakage or complexity.

---------------------------------------------------------------------------

by stof at 2012-01-24T17:28:06Z

@Seldaek are you able to create a reproducible testcase for this (which should be failing before this fix) ? It would avoid further regressions

---------------------------------------------------------------------------

by Seldaek at 2012-01-24T17:45:37Z

I'll try to improve on this according to feedback tomorrow. I saw this enough for today :)

---------------------------------------------------------------------------

by fabpot at 2012-01-24T17:45:49Z

I'm writing some unit tests

---------------------------------------------------------------------------

by Seldaek at 2012-01-24T17:47:02Z

Ok then I'll add @dzuelke's comments real quick.

12 years agoAdd comments
Jordi Boggiano [Tue, 24 Jan 2012 17:53:53 +0000]
Add comments

12 years agomerged branch Seldaek/typo (PR #609)
Fabien Potencier [Tue, 24 Jan 2012 16:59:21 +0000]
merged branch Seldaek/typo (PR #609)

Commits
-------

d8527fe Fix docblock

Discussion
----------

Fix docblock

12 years agoUpdated CHANGELOG
Jordi Boggiano [Tue, 24 Jan 2012 16:41:37 +0000]
Updated CHANGELOG

12 years agoProtect the Parser against recursive parsing issues
Jordi Boggiano [Tue, 24 Jan 2012 16:39:13 +0000]
Protect the Parser against recursive parsing issues

12 years agoFix docblock
Jordi Boggiano [Tue, 24 Jan 2012 16:38:16 +0000]
Fix docblock

12 years agoremoved duplicated tests
Fabien Potencier [Tue, 24 Jan 2012 12:11:53 +0000]
removed duplicated tests

12 years agoadded the possibility to skip some tests depending on the PHP version
Fabien Potencier [Tue, 24 Jan 2012 12:03:09 +0000]
added the possibility to skip some tests depending on the PHP version

12 years agofixed typo
Fabien Potencier [Mon, 23 Jan 2012 09:19:16 +0000]
fixed typo

12 years agomade a speed optimization to macro calls when imported via the from tag
Fabien Potencier [Mon, 23 Jan 2012 08:22:43 +0000]
made a speed optimization to macro calls when imported via the from tag

12 years agoupdated CHANGELOG
Fabien Potencier [Mon, 23 Jan 2012 07:58:03 +0000]
updated CHANGELOG

12 years agofixed the attribute function when passing arguments (closes #608)
Fabien Potencier [Mon, 23 Jan 2012 07:47:30 +0000]
fixed the attribute function when passing arguments (closes #608)

12 years agoadded some unit tests for macros
Fabien Potencier [Sat, 21 Jan 2012 20:40:17 +0000]
added some unit tests for macros

12 years agoRevert "made a speed optimization to macro calls when imported via the from tag"
Fabien Potencier [Sat, 21 Jan 2012 20:26:04 +0000]
Revert "made a speed optimization to macro calls when imported via the from tag"

This reverts commit 3b87da344ade9a719d3e105eb7ca20864b725875.

12 years agomade a speed optimization to macro calls when imported via the from tag
Fabien Potencier [Sat, 21 Jan 2012 20:16:34 +0000]
made a speed optimization to macro calls when imported via the from tag

12 years agomerged branch Tobion/patch-2 (PR #606)
Fabien Potencier [Sat, 21 Jan 2012 06:18:00 +0000]
merged branch Tobion/patch-2 (PR #606)

Commits
-------

83a3073 typo

Discussion
----------

typo

12 years agotypo
Tobias Schultze [Thu, 19 Jan 2012 10:11:49 +0000]
typo

12 years agofixed typo in doc (closes #604)
Fabien Potencier [Thu, 19 Jan 2012 09:31:26 +0000]
fixed typo in doc (closes #604)

12 years agomerged branch Seldaek/globals_fix (PR #600)
Fabien Potencier [Tue, 17 Jan 2012 06:17:24 +0000]
merged branch Seldaek/globals_fix (PR #600)

Commits
-------

43ebae1 Reset parsers, visitors, filters, tests, functions when a new one or new extension is added
3db62da Reset globals when a new global is added

Discussion
----------

Reset globals when a new global is added

if getGlobals() is called before adding a new global, it is never taken into account

---------------------------------------------------------------------------

by fabpot at 2012-01-16T14:27:02Z

Is it related to #594?

---------------------------------------------------------------------------

by Seldaek at 2012-01-16T14:30:08Z

Seems like it yes. It means that reading globals + writing + reading again will call getGlobals on all extensions again though.

A slight improvement would be to cache the extension globals in another var that can be re-applied at once over the staged globals.

The fastest would be to just set directly in ->globals if it's already initalized, but that means addGlobal can override extension globals. Not sure if that is a problem, but it creates a somewhat non-deterministic factor.

I can adjust as required.

---------------------------------------------------------------------------

by stof at 2012-01-16T14:45:49Z

@Seldaek shouldn't the same be done for other methods (filters, functions, tags, tests and operators) ?

---------------------------------------------------------------------------

by Seldaek at 2012-01-16T14:53:28Z

Indeed, I was just focused on my crazy issue here :) Once @fabpot decides which way he prefers I can apply it to everything.

---------------------------------------------------------------------------

by fabpot at 2012-01-16T21:05:19Z

+1 for the the approach in this PR. @Seldaek: Can you apply it to everything else as well? Thanks.

---------------------------------------------------------------------------

by Seldaek at 2012-01-17T00:54:08Z

Done, also did it for adding and removing extensions since they potentially override stuff.

12 years agoReset parsers, visitors, filters, tests, functions when a new one or new extension...
Jordi Boggiano [Tue, 17 Jan 2012 00:53:13 +0000]
Reset parsers, visitors, filters, tests, functions when a new one or new extension is added

12 years agoReset globals when a new global is added
Jordi Boggiano [Mon, 16 Jan 2012 14:22:29 +0000]
Reset globals when a new global is added

12 years agomerged branch Partugal/twig-ext (PR #598)
Fabien Potencier [Sun, 15 Jan 2012 07:30:41 +0000]
merged branch Partugal/twig-ext (PR #598)

Commits
-------

75bfb4e Syncing Twig extension with latest changes in Twig master

Discussion
----------

Syncing Twig extension with latest changes in Twig master

12 years agoSyncing Twig extension with latest changes in Twig master
Sergey Linnik [Sat, 14 Jan 2012 21:01:34 +0000]
Syncing Twig extension with latest changes in Twig master

12 years agomade a cosmetic change
Fabien Potencier [Sat, 14 Jan 2012 16:17:37 +0000]
made a cosmetic change

12 years agomerged branch lyrixx/patch-4 (PR #596)
Fabien Potencier [Sat, 14 Jan 2012 16:17:22 +0000]
merged branch lyrixx/patch-4 (PR #596)

Commits
-------

fa2501f Added a link to the documentation site

Discussion
----------

Added a link to the documentation site

Now, on the github project page, there is a link to http://twig.sensiolabs.org/documentation. (like silex)

12 years agomerged branch aerialls/patch-2 (PR #597)
Fabien Potencier [Sat, 14 Jan 2012 16:17:02 +0000]
merged branch aerialls/patch-2 (PR #597)

Commits
-------

924c8b3 fixed CS

Discussion
----------

fixed CS

12 years agofixed CS
Julien Brochet [Sat, 14 Jan 2012 14:56:01 +0000]
fixed CS

12 years agoAdded a link to the documentation site
Grégoire Pineau [Sat, 14 Jan 2012 14:12:39 +0000]
Added a link to the documentation site

12 years agoadded support for optional length in the slice [] notation
Fabien Potencier [Sat, 14 Jan 2012 08:27:35 +0000]
added support for optional length in the slice [] notation

12 years agoadded a slice filter
Fabien Potencier [Sat, 14 Jan 2012 07:48:59 +0000]
added a slice filter

12 years agofixed core filters phpdoc
Fabien Potencier [Sat, 14 Jan 2012 07:25:47 +0000]
fixed core filters phpdoc

12 years agoadded string support for the reverse filter
Fabien Potencier [Sat, 14 Jan 2012 07:24:24 +0000]
added string support for the reverse filter

12 years agotweaked doc for the merge filter
Fabien Potencier [Fri, 13 Jan 2012 12:14:08 +0000]
tweaked doc for the merge filter

12 years agotweaked documentation
Fabien Potencier [Fri, 13 Jan 2012 09:18:17 +0000]
tweaked documentation

12 years agofixed some phpdoc
Fabien Potencier [Wed, 11 Jan 2012 12:27:00 +0000]
fixed some phpdoc

12 years agofixed charset for previous commit
Fabien Potencier [Mon, 9 Jan 2012 19:48:27 +0000]
fixed charset for previous commit

12 years agofixed the empty test and the length filter for Twig_Markup instances (closes #589)
Fabien Potencier [Mon, 9 Jan 2012 19:32:34 +0000]
fixed the empty test and the length filter for Twig_Markup instances (closes #589)

12 years agoadded one more rule in the coding standards (closes #587)
Fabien Potencier [Mon, 9 Jan 2012 07:04:17 +0000]
added one more rule in the coding standards (closes #587)

12 years agoadded one more rule to the coding standards
Fabien Potencier [Sun, 8 Jan 2012 20:24:46 +0000]
added one more rule to the coding standards

12 years agore-added the version in composer.json (if not, the version on packagist is master...
Fabien Potencier [Sun, 8 Jan 2012 19:40:34 +0000]
re-added the version in composer.json (if not, the version on packagist is master-dev instead of the more desirable 1.6-dev)

12 years agomerged branch aerialls/patch-1 (PR #585)
Fabien Potencier [Sun, 8 Jan 2012 19:38:51 +0000]
merged branch aerialls/patch-1 (PR #585)

Commits
-------

3c934f4 Update doc/coding_standards.rst

Discussion
----------

Update doc/coding_standards.rst

12 years agoUpdate doc/coding_standards.rst
Julien Brochet [Sun, 8 Jan 2012 19:37:45 +0000]
Update doc/coding_standards.rst

12 years agofixed markup in doc
Fabien Potencier [Sun, 8 Jan 2012 19:24:02 +0000]
fixed markup in doc

12 years agoadded coding standards in the docs
Fabien Potencier [Sun, 8 Jan 2012 19:19:11 +0000]
added coding standards in the docs

12 years agomerged branch lyrixx/patch-dead-code (PR #584)
Fabien Potencier [Sun, 8 Jan 2012 16:57:34 +0000]
merged branch lyrixx/patch-dead-code (PR #584)

Commits
-------

6ca2ca6 [Tests] Removed dead code in core test

Discussion
----------

[Tests] Removed dead code in core test

$core is never used. Test keeps passing.

12 years ago[Tests] Removed dead code in core test
Grégoire Pineau [Sun, 8 Jan 2012 16:27:45 +0000]
[Tests] Removed dead code in core test

12 years agoadded a recipe for stateful node visitors
Fabien Potencier [Sat, 7 Jan 2012 08:53:33 +0000]
added a recipe for stateful node visitors

12 years agoadded missing phpdoc
Fabien Potencier [Fri, 6 Jan 2012 19:35:29 +0000]
added missing phpdoc

12 years agoadded a date function to ease date comparison (closes #571)
Fabien Potencier [Fri, 6 Jan 2012 19:31:06 +0000]
added a date function to ease date comparison (closes #571)

12 years agoupdated CHANGELOG
Fabien Potencier [Fri, 6 Jan 2012 18:48:27 +0000]
updated CHANGELOG

12 years agofixed unary operators precedence (closes #583)
Fabien Potencier [Fri, 6 Jan 2012 18:47:50 +0000]
fixed unary operators precedence (closes #583)

12 years agomerged branch vicb/doc/use (PR #581)
Fabien Potencier [Fri, 6 Jan 2012 11:47:43 +0000]
merged branch vicb/doc/use (PR #581)

Commits
-------

28b9b7b [Twig] Add a note about multiple inheritance (use tag)

Discussion
----------

[Twig] Add a note about multiple inheritance (use tag)

To add some visibility to this feature

12 years ago[Twig] Add a note about multiple inheritance (use tag)
Victor Berchet [Fri, 6 Jan 2012 08:18:08 +0000]
[Twig] Add a note about multiple inheritance (use tag)

12 years agobumped version to 1.6.0-DEV
Fabien Potencier [Thu, 5 Jan 2012 14:35:20 +0000]
bumped version to 1.6.0-DEV

12 years agoprepared the 1.5.1 release
Fabien Potencier [Thu, 5 Jan 2012 14:34:14 +0000]
prepared the 1.5.1 release

12 years agofixed regression in string parsing (closes #580)
Fabien Potencier [Thu, 5 Jan 2012 14:18:26 +0000]
fixed regression in string parsing (closes #580)

12 years agomerged branch lenar/patch-1 (PR #578)
Fabien Potencier [Wed, 4 Jan 2012 14:40:11 +0000]
merged branch lenar/patch-1 (PR #578)

Commits
-------

5214794 compiles -> compile

Discussion
----------

compiles -> compile

12 years agocompiles -> compile
Lenar Lõhmus [Wed, 4 Jan 2012 14:26:15 +0000]
compiles -> compile

12 years agoadded a note about the Twig extension DLL for Windows
Fabien Potencier [Wed, 4 Jan 2012 14:15:01 +0000]
added a note about the Twig extension DLL for Windows

12 years agobumped version to 1.6.0-DEV
Fabien Potencier [Wed, 4 Jan 2012 13:31:46 +0000]
bumped version to 1.6.0-DEV

12 years agoprepared the 1.5.0 release
Fabien Potencier [Wed, 4 Jan 2012 13:20:58 +0000]
prepared the 1.5.0 release

12 years agofixed doc (closes #577)
Fabien Potencier [Tue, 3 Jan 2012 20:52:22 +0000]
fixed doc (closes #577)

12 years agomerged branch lyrixx/patch-1 (PR #576)
Fabien Potencier [Tue, 3 Jan 2012 20:50:50 +0000]
merged branch lyrixx/patch-1 (PR #576)

Commits
-------

7e8df56 Fixed CS

Discussion
----------

Fixed CS

I just fixed the CS in the doc

12 years agoFixed CS
Grégoire Pineau [Tue, 3 Jan 2012 17:31:08 +0000]
Fixed CS

12 years agofixed the join filter when several items have the same key
Fabien Potencier [Mon, 2 Jan 2012 14:10:19 +0000]
fixed the join filter when several items have the same key

12 years agosimplified code
Fabien Potencier [Mon, 2 Jan 2012 13:20:16 +0000]
simplified code

12 years agoadded a unit test
Fabien Potencier [Mon, 2 Jan 2012 12:14:06 +0000]
added a unit test

12 years agoadded Traversable objects support for the join filter
Fabien Potencier [Mon, 2 Jan 2012 12:10:08 +0000]
added Traversable objects support for the join filter

13 years agoprepared the 1.5.0-RC2 release
Fabien Potencier [Fri, 30 Dec 2011 15:23:51 +0000]
prepared the 1.5.0-RC2 release

13 years agoupdated doc for the date filter
Fabien Potencier [Fri, 30 Dec 2011 08:21:01 +0000]
updated doc for the date filter

13 years agoadded a way to set the default global date interval format
Fabien Potencier [Fri, 30 Dec 2011 08:15:53 +0000]
added a way to set the default global date interval format

13 years agorefactored date filter code
Fabien Potencier [Fri, 30 Dec 2011 07:58:12 +0000]
refactored date filter code

13 years agomerged branch alefranz/patch-2 (PR #575)
Fabien Potencier [Fri, 30 Dec 2011 07:50:36 +0000]
merged branch alefranz/patch-2 (PR #575)

Commits
-------

b295274 fix Date Format filter: DateInterval does not provide setTimezone()

Discussion
----------

fix Date Format filter: DateInterval does not provide setTimezone()

13 years agofix Date Format filter: DateInterval does not provide setTimezone()
alefranz [Thu, 29 Dec 2011 18:46:53 +0000]
fix Date Format filter: DateInterval does not provide setTimezone()

13 years agorefactored Twig_Template::display() to ease its extension
Fabien Potencier [Wed, 28 Dec 2011 22:05:59 +0000]
refactored Twig_Template::display() to ease its extension

13 years agotweaked previous merge
Fabien Potencier [Wed, 28 Dec 2011 19:34:32 +0000]
tweaked previous merge

13 years agomerged branch markstory/number-format (PR #573)
Fabien Potencier [Wed, 28 Dec 2011 19:32:43 +0000]
merged branch markstory/number-format (PR #573)

Commits
-------

e3b81ad Add documentation page for number_format.
0edcfdd Add number_format filter.

Discussion
----------

Implement number_format filter

Implement a `number_format` filter that wraps the native PHP `number_format`.

Fixes #417

13 years agoAdd documentation page for number_format.
Mark Story [Wed, 28 Dec 2011 16:13:27 +0000]
Add documentation page for number_format.

13 years agoAdd number_format filter.
Mark Story [Wed, 28 Dec 2011 15:39:04 +0000]
Add number_format filter.

Refs #417

13 years agofixed Twig_Node_Expression_Array::hasElement()
Fabien Potencier [Mon, 26 Dec 2011 21:06:43 +0000]
fixed Twig_Node_Expression_Array::hasElement()

13 years agoprepared the 1.5.0-RC1 release
Fabien Potencier [Mon, 26 Dec 2011 10:40:36 +0000]
prepared the 1.5.0-RC1 release

13 years agofixed markup
Fabien Potencier [Mon, 26 Dec 2011 10:32:17 +0000]
fixed markup

13 years agoadded missing doc for the do tag
Fabien Potencier [Mon, 26 Dec 2011 10:21:22 +0000]
added missing doc for the do tag

13 years agofixed typo
Fabien Potencier [Mon, 26 Dec 2011 10:17:02 +0000]
fixed typo

13 years agochanged hash key expression support (expression must now be enclosed with parentheses...
Fabien Potencier [Mon, 26 Dec 2011 08:35:38 +0000]
changed hash key expression support (expression must now be enclosed with parentheses and hash keys can now be names)

13 years agomerged branch jeserkin/jeserkin (PR #570)
Fabien Potencier [Mon, 26 Dec 2011 08:08:00 +0000]
merged branch jeserkin/jeserkin (PR #570)

Commits
-------

fd78ec0 Fixed PhpDoc for Twig_TokenParserInterface and all other TokenParsers

Discussion
----------

Fixed PhpDoc for Twig_TokenParserInterface and all other TokenParsers

13 years agoFixed PhpDoc for Twig_TokenParserInterface and all other TokenParsers
Eugene Serkin [Sun, 25 Dec 2011 23:55:03 +0000]
Fixed PhpDoc for Twig_TokenParserInterface and all other TokenParsers

13 years agoadded convenience methods to manipulate an array node
Fabien Potencier [Sun, 25 Dec 2011 21:34:12 +0000]
added convenience methods to manipulate an array node