Commit Graph

680 Commits

Author SHA1 Message Date
Fabien Potencier d2afbc95fb updated CHANGELOG 2011-04-29 10:18:57 +02:00
Fabien Potencier 3930ba0f4e added some tests for the use tag 2011-04-29 09:43:23 +02:00
Fabien Potencier 5ea7020aa0 added documentation for traits 2011-04-29 08:27:03 +02:00
Fabien Potencier 4a7aaad594 added support for block renaming when importing traits
{% use 'TwigBundle:Form:div_layout.html.twig' with text_widget as foo_text_widget %}
2011-04-29 00:07:00 +02:00
Fabien Potencier 221eb48ea8 added support for traits (experimental)
Traits are "special" templates that define blocks that you can "include" in
other templates.

Let's take an example:

    {# 'foo' template defines the 'foo' block #}
    {% block 'foo' %}
        FOO
    {% endblock %}

    {# 'main' template defines the 'bar' block and include the 'foo' block from the 'foo' template #}
    {% extends 'base' %}

    {% use 'foo' %}

    {% block 'bar' %}
        BAR
    {% endblock %}

In the previous example, the 'main' template use the 'foo' one. It means that
the 'foo' block defined in the 'foo' template is available as if it were
defined in the 'main' template.

You can use as many 'use' statements as you want in a template:

    {% extends 'base' %}

    {% use 'foo' %}
    {% use 'bar' %}
    {% use 'foobar' %}

If two templates define the same block, the latest one wins. The template can
also overrides any block.

The 'use' tag also supports "dynamic" names:

    {% set foo = 'foo' %}

    {% use foo %}

The 'use' tag only imports a template if it does not extend another template,
if it does not define macros, and if the body is empty. But it can 'use' other
templates:

    {# 'foo' template #}
    {% block 'foo' %}
        FOO
    {% endblock %}

    {# 'bar' template #}
    {% use 'foo' %}

    {% block 'bar' %}
        BAR
    {% endblock %}

    {# 'main' template #}
    {% extends 'base' %}

    {% use 'bar' %}

In this example, the 'main' template has access to both 'foo' and 'bar'.

Traits are mainly useful when you consider blocks as reusable "functions";
like we do in Symfony2 forms or if you use Twig for code generation.
2011-04-28 16:22:09 +02:00
Fabien Potencier e70cc161a3 added a unit test 2011-04-28 16:21:27 +02:00
Fabien Potencier a302b02cd0 Merge remote branch 'nikic/fixIncorrectGetAttrDefinedSoftCheck'
* nikic/fixIncorrectGetAttrDefinedSoftCheck:
  Use a type strict null check for GetAttr defined tests. Fixes #305
2011-04-28 16:20:15 +02:00
Fabien Potencier 2a3365a36b Revert "refactored some tests"
This reverts commit d45c980a41.

Tests should work on PHP 5.2
2011-04-28 13:18:02 +02:00
nikic 17af31b5b4 Use a type strict null check for GetAttr defined tests. Fixes #305 2011-04-28 13:17:49 +02:00
lenar 04fcc0ca76 fixes performance regression
The regression was introduced by 1e09c7b660.
2011-04-28 11:27:40 +03:00
Joseph Bielawski 2f5e0cacd4 Simplify fix. 2011-04-27 08:50:08 -07:00
Joseph Bielawski db50167f5f Additional tests for issue #307 2011-04-27 08:01:08 -07:00
Joseph Bielawski 36143a6b6c Fix for issue #307 2011-04-27 07:57:39 -07:00
Fabien Potencier 1e09c7b660 added template file information when an error occurs during compilation 2011-04-22 16:08:43 +02:00
Fabien Potencier 9d88081c94 tweaked Twig_Error to keep the passed line or template when passed in the constructor and findTemplateInfo() was not able to guess it better 2011-04-22 16:06:50 +02:00
Fabien Potencier 3a31463707 added PhpStorm as IDE that supports Twig out of the box 2011-04-22 09:53:49 +02:00
Fabien Potencier 42bcb19338 added a unit test 2011-04-15 16:21:45 +02:00
Fabien Potencier 58206d816b fixed typos in the doc 2011-04-14 10:03:43 +02:00
Fabien Potencier 91750f37e9 tweaked doc 2011-04-14 07:42:28 +02:00
Fabien Potencier ef55950c13 fixed typo in doc 2011-04-14 07:39:48 +02:00
Fabien Potencier f782f1ec06 updated CHANGELOG 2011-04-14 07:37:17 +02:00
Fabien Potencier 76205f1eaa added null as an alias to none and made TRUE, FALSE, and NONE equivalent to true, false, and none 2011-04-14 07:35:58 +02:00
Fabien Potencier 385dc39689 Merge remote branch 'markstory/whitespace'
* markstory/whitespace:
  Updating documentation for whitespace trim tags.
  Making trim tags consume all whitespace, both horizontal and vertical.
  Adding additional test suggested by nikic.
  Making a capturing group non capturing, as the group isn't used.
  Moving newline trimming into the regexp used to match end of tags.
  Applying changes suggested by nikic to simplify how end of comments are processed.
  Fixing some whitespace.
  Fixing typo.
  Adding a bit of documentation for whitespace trimming.
  Adding whitespace trimming support to other tag types (comments, variables) Refactoring how whitespace trimming is done, and moving it into a separate option that is combined with other tag types. Adding more tests. Refs #284
  Fixing use of non-existent method name.
  Adding a test case for mixing {%- and %} tags together.
  Adding a test that uses tabs. Added a test for trailing tabs and -%} Refs #284
  Implementing {%- which trims non-newline whitespace preceding it. Refs
2011-04-14 07:22:57 +02:00
Mark Story 485213a22b Updating documentation for whitespace trim tags. 2011-04-13 22:15:32 -04:00
Mark Story 99e3246c49 Making trim tags consume all whitespace, both horizontal and vertical. 2011-04-13 22:10:57 -04:00
Fabien Potencier d96dbb442f removed empty if 2011-04-12 16:04:26 +02:00
Fabien Potencier fbadd66852 tweaked error message when wrapping an external exception 2011-04-12 15:40:26 +02:00
Fabien Potencier 4d2727f004 made Twig_Error::findTemplateInfo() more robust 2011-04-12 14:42:00 +02:00
Fabien Potencier d45c980a41 refactored some tests 2011-04-12 10:21:00 +02:00
Fabien Potencier d84b978e1a fixed some tests 2011-04-12 09:58:10 +02:00
Fabien Potencier 34ff3b4a76 tweaked error wrapping 2011-04-12 09:32:38 +02:00
Fabien Potencier 945b0bce9e refactored some tests 2011-04-12 09:31:35 +02:00
Fabien Potencier 96f2261112 removed line parameter from Twig_Template::getAttribute() and getContext() as the information is now gathered by Twig_Error_Wrapped 2011-04-12 08:12:27 +02:00
Fabien Potencier ad427be36e added a Twig_Error_Wrapped exception to try to add template name and line when a problem occurs at runtime 2011-04-12 07:59:36 +02:00
Fabien Potencier 4f37cdd08d Revert "deleted abstract method doDisplay (maintain BC)"
This reverts commit 70d90bedce.
2011-04-12 07:54:05 +02:00
Fabien Potencier 9c17a51fe4 Merge remote branch 'hason/template'
* hason/template:
  deleted abstract method doDisplay (maintain BC)
  added possibility to customize "display" in the base template class
2011-04-12 07:53:48 +02:00
Fabien Potencier 27f44bfe54 Merge remote branch 'nikic/fixWrongMethodCallInTest'
* nikic/fixWrongMethodCallInTest:
  $e->setFilename to $e->setTemplateFile in integrationTest
2011-04-11 18:51:49 +02:00
Hugo Hamon 599a508d89 [doc] added the link to the Twig Netbeans plugin. 2011-04-07 00:31:51 +02:00
Mark Story ec052b3ae0 Adding additional test suggested by nikic. 2011-04-05 21:36:44 -04:00
Mark Story 86bc75bfe4 Making a capturing group non capturing, as the group isn't used. 2011-04-05 21:06:58 -04:00
Mark Story 650d0f2948 Moving newline trimming into the regexp used to match end of tags. 2011-04-02 10:11:44 -04:00
Mark Story d0b40aff67 Applying changes suggested by nikic to simplify how end of comments are processed. 2011-04-02 10:08:51 -04:00
Mark Story 86b11197c0 Fixing some whitespace. 2011-04-02 10:05:55 -04:00
Mark Story 08959ab5da Fixing typo. 2011-03-31 21:24:00 -04:00
Mark Story 8f158bdda9 Adding a bit of documentation for whitespace trimming. 2011-03-30 21:55:15 -04:00
nikic 9a79078dd2 $e->setFilename to $e->setTemplateFile in integrationTest 2011-03-30 17:37:23 +02:00
Mark Story d9749fcb31 Adding whitespace trimming support to other tag types (comments, variables)
Refactoring how whitespace trimming is done, and moving it into a separate option that is combined with other tag types.
Adding more tests.
Refs #284
2011-03-30 07:33:04 -04:00
Mark Story bc4d8b32cd Fixing use of non-existent method name. 2011-03-30 07:32:06 -04:00
Mark Story 36516f67f2 Adding a test case for mixing {%- and %} tags together. 2011-03-28 22:12:59 -04:00
Mark Story a615a3cc88 Adding a test that uses tabs.
Added a test for trailing tabs and -%}
Refs #284
2011-03-28 22:12:59 -04:00