Commit Graph

847 Commits

Author SHA1 Message Date
Fabien Potencier
3719c70870 updated minimum PHP version to 5.3.3
5.3.3 has some interesting fixes and this is the version used by
Redhat 6 and Debian 6
2012-05-07 10:29:11 +02:00
Fabien Potencier
9fbf8555f0 Revert "merged branch Seldaek/master (PR #4133)"
This reverts commit 00e7a94a8c, reversing
changes made to a01dec00f4.
2012-04-27 19:55:40 +02:00
Jordi Boggiano
00c4267726 Update branch aliases 2012-04-27 12:47:50 +02:00
Fabien Potencier
5f50b944ee [TwigBundle] added CHANGELOG 2012-04-26 22:53:20 +02:00
Fabien Potencier
1e84f1eef1 [TwigBundle] implemented context auto-escaping in Twig templates based on the template extension 2012-04-25 12:25:06 +02:00
Fabien Potencier
14b3b05866 [TwigBundle] added missing entry in the XSD schema 2012-04-20 16:29:04 +02:00
Fabien Potencier
580c8fa875 fixed CS 2012-04-18 10:41:11 +02:00
Joseph Bielawski
bfc1aafff6 [Tests] Use proper assertions 2012-04-14 10:05:05 +02:00
Hugo Hamon
b4f0a04574 [TwigBundle] fixed twig:lint command description. 2012-04-11 08:58:25 +02:00
Fabien Potencier
d6948581ac [TwigBundle] simplified code 2012-04-08 12:56:21 +02:00
Fabien Potencier
a11ec3e71c [TwigBundle] added correct file name in twig:lint exception reporting 2012-04-08 12:53:40 +02:00
Fabien Potencier
57c6aaa397 [TwigBundle] tweaked previous merge 2012-04-08 12:41:50 +02:00
marc.weistroff
8726ade310 Adds more features to twig:lint command 2012-04-08 11:14:51 +02:00
marc.weistroff
1d7e9d9753 Adds a linter command for templates 2012-04-07 13:26:03 +02:00
Christophe Coevoet
dbab7e1ef6 [TwigBridge] Added a TwigEngine in the bridge
This TwigEngine implements the interface available in the component.
the TwigBridge in TwigBundle now extends this class and provides only
the additional methods for the FrameworkBundle interface.
2012-04-02 18:28:35 +02:00
Eriksen Costa
013f998bb8 updated license blocks 2012-03-31 18:00:32 -03:00
Anthon Pang
33382cd4f4 Add exception-controller attribute to xsd 2012-03-26 13:17:28 -03:00
Fabien Potencier
e28223773c merged branch lencioni/improve-exception-controller-documentation (PR #3669)
Commits
-------

1422133 [TwigBundle] Made docblock for findTemplate() more general and accurate
5910ac9 [TwigBundle] Added a use statement to shorten class name in a docblock
3e7eebd [TwigBundle] Improved ExceptionController docblocks

Discussion
----------

[TwigBundle] Improved ExceptionController docblocks

Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: [![Build Status](https://secure.travis-ci.org/lencioni/symfony.png)](http://travis-ci.org/lencioni/symfony)
Fixes the following tickets: -
Todo: -

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

by lencioni at 2012-03-21T20:47:16Z

I obviously don't know what I'm doing here. :/

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

by vicb at 2012-03-21T20:47:39Z

no pb just rebase on master and force push
2012-03-23 13:08:26 +01:00
Fabien Potencier
def4323dc8 fixed CS 2012-03-23 12:47:42 +01:00
Fabien Potencier
54ce7c75e8 merged 2.0 2012-03-22 20:34:27 +01:00
Joe Lencioni
1422133ad0 [TwigBundle] Made docblock for findTemplate() more general and accurate
Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: [![Build Status](https://secure.travis-ci.org/lencioni/symfony.png)](http://travis-ci.org/lencioni/symfony)
Fixes the following tickets: -
Todo: -
2012-03-22 07:58:46 -05:00
Joe Lencioni
5910ac91d7 [TwigBundle] Added a use statement to shorten class name in a docblock
Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: [![Build Status](https://secure.travis-ci.org/lencioni/symfony.png)](http://travis-ci.org/lencioni/symfony)
Fixes the following tickets: -
Todo: -
2012-03-21 16:57:29 -05:00
Joe Lencioni
3e7eebd91f [TwigBundle] Improved ExceptionController docblocks
Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: [![Build Status](https://secure.travis-ci.org/lencioni/symfony.png)](http://travis-ci.org/lencioni/symfony)
Fixes the following tickets: -
Todo: -
2012-03-21 15:50:32 -05:00
Joe Lencioni
068e859f3d [TwigBundle] Changed getAndCleanOutputBuffering() handling of systems where ob_get_level() never returns 0
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: [![Build Status](https://secure.travis-ci.org/lencioni/symfony.png)](http://travis-ci.org/lencioni/symfony)
Fixes the following tickets: -
Todo: -

Relying on decrementing a counter has two problems. First, and most importantly, if the output buffering nesting level is greater than the counter, the function does not perform the expected task. Secondly, on systems where the counter is needed, a lot of unnecessary extra loops would potentially occur.

This approach checks to see if the level has stayed the same from the previous iteration and if it has it stops looping.
2012-03-21 15:25:48 -05:00
Joseph Bielawski
6ad201f5ba [FrameworkBundle + WebProfilerBundle] Optimized images and icons with PunnyPNG 2012-03-14 23:31:48 +01:00
Victor Berchet
eee5065434 [TwigBundle] Workaround a flaw in the design of the configuration (normalization) 2012-03-09 21:13:44 +01:00
Jordi Boggiano
bafcaafbe6 Removed version field 2012-02-27 09:59:20 +01:00
Jordi Boggiano
f9d9dc7ce9 Add branch-alias for composer 2012-02-25 03:26:20 +01:00
Victor Berchet
4feba09aa9 [Config] implements feedback 2012-02-20 19:15:01 +01:00
Victor Berchet
675e5eb6e0 [Config] Take advantage of the new PrototypedArrayNode API in the core bundles 2012-02-20 11:20:39 +01:00
Victor Berchet
0a176ebc98 [FrameworkBundle] Fix configuration errors 2012-02-15 14:38:38 +01:00
Fabien Potencier
74ccf7062a reverted 5b7ef11650 (Simplify session
storage class names now we have a separate namespace for sessions)
2012-02-11 12:04:50 +01:00
Drak
5b7ef11650 [HttpFoundation] Simplify session storage class names now we have a separate namespace for sessions. 2012-02-11 11:24:35 +05:45
Drak
27530cbb1e [HttpFoundation] Moved session related classes to own sub-namespace. 2012-02-11 11:24:31 +05:45
Drak
f98f9ae8ff [HttpFoundation] Refactor for DRY code.
Rename ArraySessionStorage to make it clear the session is a mock for testing purposes only.
Has BC class for ArraySessionStorage
Added sanity check when starting the session.
Fixed typos and incorrect php extension test method
session_module_name() also sets session.save_handler, so must use extension_loaded() to check if module exist
or not.
Respect autostart settings.
2012-02-11 11:24:11 +05:45
kbond
58939f16f3 [TwigBundle] added configuration docs 2012-02-02 08:20:37 -05:00
Andreas Streichardt
b1777865f5 Make twig optimizations configurable 2012-01-24 18:20:00 +01:00
lsmith77
3a1699a420 handle disaled csrf protection in the Twig FormExtension 2012-01-23 18:05:48 +01:00
Fabien Potencier
8358cbf7a6 merged branch kriswallsmith/csrf-token-helper (PR #3080)
Commits
-------

753c067 [FrameworkBundle] added $view['form']->csrfToken() helper
e1aced8 [Twig] added {{ csrf_token() }} helper

Discussion
----------

[Twig] [FrameworkBundle] added CSRF token helper

I've added a templating helper and Twig function for generating a CSRF token without the overhead of creating a form.

```html+jinja
<form action="{{ path('user_delete', { 'id': user.id }) }}" method="post">
    <input type="hidden" name="_method" value="delete">
    <input type="hidden" name="_token" value="{{ csrf_token('delete_user_' ~ user.id) }}">
    <button type="submit">delete</button>
</form>
```

```php
<?php

class UserController extends Controller
{
    public function delete(User $user, Request $request)
    {
        $csrfProvider = $this->get('form.csrf_provider');
        if (!$csrfProvider->isCsrfTokenValid('delete_user_'.$user->getId(), $request->request->get('_token')) {
            throw new RuntimeException('CSRF attack detected.');
        }

        // etc...
    }
}
```

The test that is failing on Travis appears to be unrelated, but I may be wrong?

```
1) Symfony\Bundle\SecurityBundle\Tests\Functional\LocalizedRoutesAsPathTest::testLoginLogoutProcedure with data set #1 ('de')
RuntimeException: OUTPUT:
Catchable fatal error: Argument 3 passed to Symfony\Bundle\FrameworkBundle\Controller\TraceableControllerResolver::__construct() must be an instance of Symfony\Component\HttpKernel\Debug\Stopwatch, instance of Symfony\Bundle\FrameworkBundle\Controller\ControllerNameParser given, called in /tmp/2.1.0-DEV/StandardFormLogin/cache/securitybundletest/appSecuritybundletestDebugProjectContainer.php on line 94 and defined in /home/vagrant/builds/kriswallsmith/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/TraceableControllerResolver.php on line 37
```

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

by pablodip at 2012-01-10T14:18:45Z

As you don't need forms to use the csrf provider, how about putting its service without the form prefix? It could even make sense to put the CsrfProvider as a component since you can use it standalone and in more cases than only forms. It would be a small component though.

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

by Tobion at 2012-01-10T17:54:14Z

I think it would be more clear to generate the token in the controller. Doing so in the template will spread the CSRF intention across template and controller. So I don't think this extension is necessary.

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

by kriswallsmith at 2012-01-10T17:58:14Z

@pablodip I'm open to the idea of a Csrf component. This would be a good place for some nonce classes as well.

@Tobion I disagree. One use case is for a list of users, each with a delete form. Iterating over the users in the controller and generating a token for each, just to iterate over them again in the view is a waste and adds complexity.

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

by Tobion at 2012-01-10T18:05:14Z

I see. But I don't understand why the intention needs to be different for each user to delete. Usually the intention is the same for each form type. I thought this is enough.

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

by kriswallsmith at 2012-01-10T18:06:13Z

Yes, a static intention would suffice.

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

by Tobion at 2012-01-10T18:07:08Z

Then your use case is not valid anymore.

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

by Tobion at 2012-01-10T18:12:25Z

I would suggest to make a cookbook article out of it about how to create a simple form without the form component.
And include such things as validating the result using the validator component and checking the CSRF.

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

by kriswallsmith at 2012-01-10T21:32:50Z

This helper makes it easier to use CSRF protection without a form and we should make it as easy as possible. Spreading the intention across controller and template is not concerning to me. Either way, a cookbook entry is a great idea.

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

by Tobion at 2012-01-10T21:47:12Z

Well, it's just one line more without this helper. So I disagree it makes it really easier when you know how to use the CsrfProvider which is a pre-condition anyway since you must still validate its correctness by hand.

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

by kriswallsmith at 2012-01-13T13:24:15Z

Another use case is when rendering a page with a bunch of simple buttons with different intentions: delete user, delete comment, follow, unfollow... Creating all of these in the controller just leads to spaghetti.

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

by jwage at 2012-01-17T21:55:53Z

👍 lots of use cases for something like this @OpenSky
2012-01-22 10:31:29 +01:00
Fabien Potencier
5fa0f2d92b merged 2.0 2012-01-16 07:44:08 +01:00
Henrik Bjørnskov
348a3c61af [TwigBridge] Use reflection to get guess the file path for form resources fixes #3093 2012-01-12 12:23:44 +01:00
Kris Wallsmith
fe62401907 optimized string starts with checks
Doing this with strpos() is slightly faster than substr().
2012-01-11 11:33:56 -08:00
Fabien Potencier
fa1c946140 fixed some phpdoc 2012-01-11 15:52:51 +01:00
Kris Wallsmith
e1aced89fd [Twig] added {{ csrf_token() }} helper 2012-01-10 05:16:32 -08:00
Fabien Potencier
8ce034fae0 Revert "merged 2.0"
This reverts commit 7000e944fd, reversing
changes made to 9d9013d662.
2012-01-08 20:43:02 +01:00
Fabien Potencier
7000e944fd merged 2.0 2012-01-05 14:54:04 +01:00
Fabien Potencier
208c2e468c removed the version attribute in all composer.json files 2012-01-05 14:51:20 +01:00
Fabien Potencier
887c0e9c04 moved EngineInterface::stream() to a new StreamingEngineInterface to keep BC with 2.0 2011-12-31 08:11:20 +01:00
Fabien Potencier
0038d1bac4 [HttpFoundation] added support for streamed responses
To stream a Response, use the StreamedResponse class instead of the
standard Response class:

    $response = new StreamedResponse(function () {
        echo 'FOO';
    });

    $response = new StreamedResponse(function () {
        echo 'FOO';
    }, 200, array('Content-Type' => 'text/plain'));

As you can see, a StreamedResponse instance takes a PHP callback instead of
a string for the Response content. It's up to the developer to stream the
response content from the callback with standard PHP functions like echo.
You can also use flush() if needed.

From a controller, do something like this:

    $twig = $this->get('templating');

    return new StreamedResponse(function () use ($templating) {
        $templating->stream('BlogBundle:Annot:streamed.html.twig');
    }, 200, array('Content-Type' => 'text/html'));

If you are using the base controller, you can use the stream() method instead:

    return $this->stream('BlogBundle:Annot:streamed.html.twig');

You can stream an existing file by using the PHP built-in readfile() function:

    new StreamedResponse(function () use ($file) {
        readfile($file);
    }, 200, array('Content-Type' => 'image/png');

Read http://php.net/flush for more information about output buffering in PHP.

Note that you should do your best to move all expensive operations to
be "activated/evaluated/called" during template evaluation.

Templates
---------

If you are using Twig as a template engine, everything should work as
usual, even if are using template inheritance!

However, note that streaming is not supported for PHP templates. Support
is impossible by design (as the layout is rendered after the main content).

Exceptions
----------

Exceptions thrown during rendering will be rendered as usual except that
some content might have been rendered already.

Limitations
-----------

As the getContent() method always returns false for streamed Responses, some
event listeners won't work at all:

* Web debug toolbar is not available for such Responses (but the profiler works fine);
* ESI is not supported.

Also note that streamed responses cannot benefit from HTTP caching for obvious
reasons.
2011-12-21 14:34:26 +01:00
Fabien Potencier
e6e78f6a81 [TwigBundle] added Twig Debug extension support 2011-12-18 20:55:28 +01:00
Fabien Potencier
7b619e7b32 added nl2br use as it is now part of Twig core 2011-12-18 12:39:28 +01:00
Fabien Potencier
2750adb52d Merge branch '2.0'
* 2.0:
  [FrameworkBundle] Added functional tests.
  [Form] Added missing use statements (closes #2880)
  [Console] Improve input definition output for Boolean defaults
  [SecurityBundle] Changed environment to something unique.
  2879: missing space between catch and the brace
  #2688: Entities are generated in wrong folder (doctrine:generate:entities Namespace)
  [TwigBundle] Fix the exception message escaping
2011-12-15 18:17:38 +01:00
alexandresalome
f3e92c4cc1 [TwigBundle] Fix the exception message escaping 2011-12-14 00:31:21 +01:00
Fabien Potencier
142cef21bb merged 2.0 2011-12-13 16:12:53 +01:00
Kevin Bond
73ac77336b [Config] added ability to set info message and example to node definition 2011-12-13 06:04:53 -05:00
Fabien Potencier
e3421a0b1d [DoctrineBridge] fixed some CS 2011-12-13 10:22:12 +01:00
Jonathan Ingram
7827f72cf4 Fixes #2817: ensure that the base loader is correctly initialised 2011-12-13 08:44:35 +11:00
Jordi Boggiano
1aea0733c4 Adjust composer files to strictly require known to work packages 2011-12-08 15:17:20 +01:00
Jordi Boggiano
628cce17e4 Adjust composer files to strictly require known to work packages 2011-11-25 15:15:14 +01:00
Fabien Potencier
2b5d4b90d8 merged 2.0 2011-11-24 07:16:52 +01:00
Fabien Potencier
5878490b16 removed unused use statements 2011-11-24 07:16:14 +01:00
Fabien Potencier
a7f7be2309 merged 2.0 2011-11-23 23:28:22 +01:00
Jordi Boggiano
c76487ee04 Fix composer.json files to be stricter 2011-11-23 17:51:23 +01:00
Jordi Boggiano
e7215aeb40 Fix composer.json 2011-11-23 16:10:32 +01:00
Fabien Potencier
d1ae6c7cb6 bumped Symfony version in composer.json files to 2.0.7 2011-11-17 06:58:47 +01:00
Fabien Potencier
1340ea67a6 Merge branch '2.0'
* 2.0:
  [HttpKernel] fixed Content-Length header when using ESI tags (closes #2623)
  [HttpFoundation] added an exception to MimeTypeGuesser::guess() when no guesser are available (closes #2636)
  [Security] fixed HttpUtils::checkRequestPath() to not catch all exceptions (closes #2637)
  [DoctrineBundle] added missing default parameters, needed to setup and use DBAL without ORM
  [Transation] Fix grammar.
  [TwigBundle] Fix trace to not show 'in at line' when file/line are empty.
2011-11-14 14:32:22 +01:00
Danny Berger
4858fbe7e0 [TwigBundle] Fix trace to not show 'in at line' when file/line are empty. 2011-11-11 18:20:32 -06:00
Fabien Potencier
83b24c5e5b Merge branch '2.0'
* 2.0:
  changed the way we store the current ob level (refs #2617)
2011-11-11 23:36:46 +01:00
Fabien Potencier
bb5fb79c3d changed the way we store the current ob level (refs #2617) 2011-11-11 23:35:49 +01:00
Fabien Potencier
21cec043d7 Merge branch '2.0'
* 2.0:
  [Form] fixed previous merge
  [Form] simplified previous merge
  Also identify FirePHP by the X-FirePHP-Version header
  [TwigBundle] Extract output buffer cleaning to method
  [TwigBundle] Do not clean output buffering below initial level
  Fixed rendering of FileType (value is not a valid attribute for input[type=file])
  Added tests for string fix in DateTimeToArrayTransformer (8351a11286).
  Added check for array fields to be integers in reverseTransform method. This prevents checkdate from getting strings as arguments and throwing incorrect ErrorException when submitting form with malformed (string) data in, for example, Date field. #2609
  [Translation] removed unneeded methods
  [Translation] added detection for circular references when adding a fallback catalogue
  [DomCrawler] trim URI in getURI
  [Yaml][Tests] Fixed missing locale string for Windows platforms which caused test to fail
2011-11-11 22:52:07 +01:00
Igor Wiedler
29e12affb0 [TwigBundle] Extract output buffer cleaning to method 2011-11-11 14:54:44 +01:00
Igor Wiedler
ed1a6c2e45 [TwigBundle] Do not clean output buffering below initial level
This resulted in issues with PHPUnit 3.6, which will buffer all output and clean them in the end. Since
we cleaned their buffer, the subsequent clean would raise a warning. This is documented in issue 390 of
the PHPUnit tracker.

Closes #2531.
2011-11-11 12:09:57 +01:00
Fabien Potencier
0025673d15 Merge branch '2.0'
* 2.0:
  Added a class to the logs ol element to prevent hiding it when toggling an exception (fixes #2589).
  Remove only the security token instead of the session cookie.
  Clear session cookie if user was deleted, is disabled or locked to prevent infinite redirect loops to the login path (fixes #1798).
2011-11-10 10:55:16 +01:00
H. Westphal
932c144534 Added a class to the logs ol element to prevent hiding it when toggling an exception (fixes #2589). 2011-11-10 10:20:28 +01:00
Fabien Potencier
ae154c8ecd [TwigBundle] fixed exception class name 2011-11-07 21:15:36 +01:00
Fabien Potencier
47b888a957 added the real template name when an error occurs in a Twig template 2011-11-07 20:48:18 +01:00
Fabien Potencier
b957515a17 [TwigBundle] fixed inheritance in TimedTwigEngine 2011-11-07 19:12:33 +01:00
Fabien Potencier
f8f622b39c bumped Symfony version to 2.0.6-DEV 2011-11-02 14:18:45 +01:00
Fabien Potencier
7f21a5e979 bumped Symfony version in composer.json files to 2.0.5 2011-11-02 12:42:41 +01:00
Fabien Potencier
fd380e37a9 merged 2.0 2011-11-01 20:19:25 +01:00
Fabien Potencier
fc97472f64 updated composer.json files to contain information about autoloading and target dirs 2011-11-01 20:17:57 +01:00
Fabien Potencier
dec43f5539 merged 2.0 2011-10-29 12:01:39 +02:00
Fabien Potencier
851eb73778 removed unused use statements 2011-10-29 11:56:30 +02:00
Fabien Potencier
842ac36f33 added Stopwatch support in debug mode, added a timeline representing the stopwatch events in the web profiler
Enjoy!
2011-10-21 07:45:12 +02:00
Fabien Potencier
f1e9709742 updated composer.json files 2011-10-16 03:38:02 +02:00
Fabien Potencier
ae8efc4da9 merged 2.0 2011-10-16 03:34:55 +02:00
Igor Wiedler
03bdac04ae [composer] make twig-bundle require twig-bridge 2011-10-15 16:56:13 +02:00
Igor Wiedler
575771380b [composer] add doctrine and twig dependencies 2011-10-15 16:55:54 +02:00
Fabien Potencier
beda03ba96 updated all HttpKernel event listeners to implement EventSubscriberInterface 2011-10-10 14:54:49 +02:00
Fabien Potencier
245ff6d7a8 updated composer.json for 2.1 2011-09-29 17:40:43 +02:00
Fabien Potencier
f5ab6ec934 Merge branch '2.0'
* 2.0:
  [composer] add missing deps for FrameworkBundle
  [composer] change ext/intl to the new ext-intl syntax
  [composer] fix monolog-bridge composer.json, add more inter-component deps
  [composer] add composer.json
2011-09-29 17:29:32 +02:00
Igor Wiedler
9ade639bb4 [composer] add composer.json 2011-09-27 00:55:43 +02:00
Michel Salib
ef322f680d -- add command that extracts translation messages from templates
-- add missing files

-- tweak translation command files

-- dumpers are now responsive for writting the files

-- moved the twig extractor the bridge

-- clear temp files after unit tests
-- check the presence of dumper in translation writer

-- General cleaning of the code

-- clean phpDoc

-- fix PHPDoc

-- fixing class name in configuration

-- add unit tests for extractors (php and twig)

-- moved test to correct location

-- polish the code

-- polish the code
2011-09-09 10:23:54 +02:00
Fabien Potencier
5d9bd6da4f [TwigBundle] fixed XSS in the exception template 2011-07-22 13:42:59 +02:00
Fabien Potencier
3749ad43f4 moved the Exception listener from FrameworkBundle to TwigBundle as it relies on Twig being enabled
This commit also fixes exception pages when Twig is not enabled as a templating engine.
Instead of just displaying the raw Twig template as before, we now fallback to the default
exception handler introduced some time ago.
2011-07-21 19:24:04 +02:00
Fabien Potencier
c3a060e368 updated all core extensions to use the new shortcut method 2011-07-18 17:46:00 +02:00
Victor Berchet
39d9a8ad6e [TwigBundle] Fix configuration 2011-06-22 08:55:52 +02:00
Fabien Potencier
8c89da0004 [TwigBundle] fixed cache warmer when there is a template with a syntax error 2011-06-17 15:03:38 +02:00
Fabien Potencier
e24dce2ae7 merged branch stloyd/tests (PR #1318)
Commits
-------

edf4b87 Add missing "tearDown" functions, and some missing variable declaration (this saves for me almost 20MB when run all tests) Force AsseticBundle tests to use TestCase Fix test for DoctrineBundle to use TestCase
2b0c352 Increase code coverage for: YamlParser, Validators, PhpEngine + Helpers, HttpFoundation
b88a0a0 Remove tabs
99f9337 Additional tests for PhpEngine + Helpers More tests for UrlValidator
450ed85 Additional tests for DateTimeValidator, EmailValidator and UrlValidator

Discussion
----------

[Tests] Cleanup + make code coverage more happy

Hey,

this PR is a bit bigger than usually ;-) few infos what's inside:

- Fix `DoctrineBundle` test to use `TestCase`
- Mark tests as "incomplete" instead of commenting them out
- Increase code coverage for: `Validators`, `PhpEngine` + `Helpers`, `HttpFoundation` (`Session`, `Response` etc.)
- And my favourite ;-) added missing variables definition (also removed non-used) and `tearDown()` function (if needed) to tests which allowed me saved __~15MB__ when running all tests

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

by stloyd at 2011/06/16 05:58:21 -0700

@fabpot & @marcw It was rebased and cleanup up (I split up `AsseticBundle` symfony/AsseticBundle#1 change to new repo), and added few new tests.
2011-06-16 15:21:15 +02:00
Fabien Potencier
a7974ff43c renamed Form Twig templates to be more explicit 2011-06-16 15:20:12 +02:00
stloyd
edf4b87dcb Add missing "tearDown" functions, and some missing variable declaration (this saves for me almost 20MB when run all tests)
Force AsseticBundle tests to use TestCase
Fix test for DoctrineBundle to use TestCase
2011-06-16 15:06:36 +02:00
Victor Berchet
acd2cf11d8 [TwigBundle] Optimize the FilesystemLoader 2011-06-12 14:49:18 +02:00
Fabien Potencier
ca013311bd [TwigBundle] fixed XSD 2011-06-11 08:00:55 +02:00
Fabien Potencier
355f802546 [TwigBundle] fixed tests 2011-06-11 07:54:10 +02:00
Fabien Potencier
96045739b1 [TwigBundle] removed the extensions setting 2011-06-11 07:50:14 +02:00
Fabien Potencier
89f544afb6 moved Twig form templates to the Twig bridge 2011-06-07 16:38:23 +02:00
Fabien Potencier
6737bd36bd [TwigBundle] made table_layout.html.twig useable as a trait 2011-06-07 13:52:58 +02:00
Fabien Potencier
96fc666454 simplified cache warmers
Here are the new simplified rules:

 * Required cache warmers are *always* executed when the Kernel boots for the first time;
 * Optional cache warmers are *only* executed from the CLI via cache:warmup

These new rules means that all the configuration settings for the cache
warmers have been removed. So, if you want the best performance, remember to
warmup the cache when going to production.

This also fixed quite a few bugs.
2011-06-07 11:42:27 +02:00
Fabien Potencier
5be0bafe7f removed TemplateReferenceInterface::getSignature() (replaced by the existing getLogicalName() which already acts as a unique identifier) 2011-06-07 10:12:38 +02:00
Fabien Potencier
5af7c7fffd moved TemplateFinder to CacheWarmer as it is only useful in this context 2011-06-07 09:39:41 +02:00
Victor Berchet
ef8cb967f5 Merge branch 'master' into form-collection-rendering 2011-06-06 14:39:18 +02:00
Victor Berchet
bca17fe6a3 [Form] Fix collection rendering 2011-06-06 14:21:49 +02:00
Victor Berchet
6711a184fd [TwigBundle][Form] Simplify templates
The Repeated and Collection types extend the Form type so there is no need to explicitely render the parent section.
2011-06-06 12:53:19 +02:00
Victor Berchet
181fb56925 [Form][Twig] Reorganized the form template 2011-06-06 12:32:08 +02:00
stloyd
cb22ccc516 [Form] Added missing feature for adding attributes to an field label 2011-05-31 17:01:28 +02:00
Fabien Potencier
65200aa86a added missing license headers 2011-05-31 10:57:06 +02:00
Pascal Borreli
824e48efa7 [Various] Fixed phpdoc 2011-05-29 23:33:36 +00:00
Miha Vrhovnik
b8144c62ad DateType single-text should be single_text 2011-05-27 16:23:59 +02:00
Fabien Potencier
923c234160 fixed form_rest() for embedded forms (refs #1051, #1115) 2011-05-27 08:12:39 +02:00
Kris Wallsmith
4018040bbb [TwigBundle] reverted to lazy-loading of templating helpers (fixes #1066) 2011-05-24 09:09:47 -07:00
alexandresalome
b1a26b8829 [TwigBundle] Remove authoring 2011-05-24 10:56:45 +02:00
alexandresalome
98755bc8a5 [TwigBundle] Remove use ContainerInterface - not used 2011-05-24 10:56:45 +02:00
alexandresalome
dfdd26d6c4 [TwigBundle] Move all class names to parameters of DIC 2011-05-24 10:56:45 +02:00
alexandresalome
f13798fa5e [TwigBundle] Rename TemplatingExtension to AssetsExtension
This extension now only contains assets functions
2011-05-24 10:56:45 +02:00
alexandresalome
f83c1376a1 [TwigBundle] Move the code filters to a dedicated extensions
A dedicated extension now exists for the code-related filters for Twig.
The dependency to service_container was also removed, to use CodeHelper, instead
2011-05-24 10:56:45 +02:00
alexandresalome
73bd9c72af [TwigBundle] Change the dependency of ActionsExtension to the actions helper
The logical of moving $attributes to a value of $options is already present
in the PHP templating helper.
2011-05-24 10:56:45 +02:00
alexandresalome
3cdf371c2b [TwigBundle] Move the {% render ... %} node to a dedicated extension + Remove service container
The purpose of the TemplatingExtension is ambigous. This first step move the actions logical
to a dedicated extension and reduce the dependency to the HTTP Kernel.
2011-05-24 10:56:45 +02:00
Bernhard Schussek
dcc61a9a98 Merge remote branch 'shieldo/search_field' into shieldo_merge 2011-05-19 01:41:59 +02:00
Bernhard Schussek
216d7e415d Merge remote branch 'mweimerskirch/form_pattern_attribute' into mweimerskirch_merge
Conflicts:
	src/Symfony/Bundle/TwigBundle/Resources/views/Form/div_layout.html.twig
	src/Symfony/Component/Form/Extension/Core/Type/FieldType.php
	src/Symfony/Component/Form/Extension/Validator/ValidatorTypeGuesser.php
2011-05-18 22:49:27 +02:00
Bernhard Schussek
f467317bab [Form] Renamed view variable "name" to "full_name"
The variable "name" now contains the local, short name (equivalent to $form->getName()).
2011-05-18 22:16:16 +02:00
Fabien Potencier
7b4c12b7dc Merge remote branch 'ornicar/twigAssetsVersion'
* ornicar/twigAssetsVersion:
  Add `assets_version` twig function. Also add some phpDoc.
2011-05-17 18:48:53 +02:00
Fabien Potencier
3d85008141 Merge remote branch 'danielholmes/widget_templates'
* danielholmes/widget_templates:
  [TwigBundle] fixed form templates so divs won't have all the input attributes, some of which are invalid (such as required, maxlength, name, etc)
2011-05-17 09:19:03 +02:00
Douglas Greenshields
bf2f9d2a02 [Form] Added a search form field type 2011-05-15 18:31:36 +01:00
Bernhard Schussek
e0ff61949e [Form] Renamed the value "text" of the "widget" option of the "date" type to "single-text" 2011-05-13 19:17:28 +02:00
Daniel Holmes
b98f786d66 [TwigBundle] fixed form templates so divs won't have all the input attributes, some of which are invalid (such as required, maxlength, name, etc) 2011-05-05 11:20:08 +10:00
Michel Weimerskirch
476644a92c [Form] Support for the HTML5 "pattern" attribute, see http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#the-pattern-attribute
If you use the MinLength validator with your entities, the ValidatorTypeGuesser gets the value, stored as "minlength". Then, the FormFactory generates a "pattern" attribute out of minlength and maxlength.
Modern browsers such as Chrome use this attribute to validate the form before submitting.
a "pattern" attribute is generated that validates the
2011-05-04 23:16:41 +02:00
Bernhard Schussek
74cca63938 [Form] CSRF fields are not included in the children of a FormView anymore if the view is not the root 2011-05-04 18:27:20 +02:00
Bernhard Schussek
bf1dfbbe99 [Form] Added test for last commit by kriswallsmith and improved dealing with original names
The form component should now guarantee to always pass an UploadedFile object to your model. There you can call getOriginalName() to retrieve the original name of the uploaded file. For security reasons, the real file name is a generated hash value.
2011-05-04 17:04:44 +02:00
Fabien Potencier
d31c403bae Merge remote branch 'pborreli/tests-fix-typos'
* pborreli/tests-fix-typos:
  Various typos
  [WebProfilerBundle] Fixed typo
  [WebProfilerBundle] Adding unit tests
2011-04-30 21:53:15 +02:00
Pascal Borreli
391744719a Various typos 2011-04-30 19:40:15 +00:00
Igor Wiedler
aa8428632b [TwigBundle] Default $globals to null as in FrameworkBundle/PhpEngine 2011-04-29 22:53:45 +02:00
Igor Wiedler
e7c0aea587 make Templating Engine $globals optional 2011-04-29 22:36:24 +02:00
Fabien Potencier
a487c5200e Revert "[TwigBundle] removed the extends tags from the table layout (it's not needed anymore)"
This reverts commit 66a01855f7.
2011-04-29 11:03:45 +02:00
Fabien Potencier
66a01855f7 [TwigBundle] removed the extends tags from the table layout (it's not needed anymore) 2011-04-29 10:25:01 +02:00
Fabien Potencier
4bef9995c6 fixed typo 2011-04-26 16:02:24 +02:00
Fabien Potencier
e45d5fa857 merged vicb:template-factorization 2011-04-26 14:38:47 +02:00
Fabien Potencier
d6bdb7af88 Merge remote branch 'vicb/tweaks_110425'
* vicb/tweaks_110425:
  [AsseticBundle] Remove an unused property
  [Cache warmers] A few tweaks
2011-04-25 20:54:08 +02:00
Victor Berchet
829bc54392 [Cache warmers] A few tweaks 2011-04-25 11:57:41 +02:00
Pascal Borreli
8c0beea677 [Phpdoc] Cleaning/fixing 2011-04-23 15:18:47 +00:00
Victor Berchet
33dd89fd02 [Template cache warmers] Factorize common code 2011-04-23 11:24:28 +02:00
Fabien Potencier
b347aebee8 [TwigBundle] removed obsolete code 2011-04-23 11:00:54 +02:00
Fabien Potencier
55e6883a88 [TwigBundle] removed obsolete code 2011-04-23 10:55:52 +02:00
Pascal Borreli
325801b00a [TwigBundle] Removed useless code 2011-04-22 22:54:11 +00:00
Fabien Potencier
de8f10e236 Merge remote branch 'Infranology/framework-bundle-updated-method-call' into form
* Infranology/framework-bundle-updated-method-call: (91 commits)
  [FrameworkBundle] updated method call
  moved DoctrineMongoDBBundle to its own repository
  [AsseticBundle] fixed unit tests
  [FrameworkBundle] removed unneeded files in tests
  updated vendors
  [FrameworkBundle] removed the need to boot a Kernel in a unit test file
  [FrameworkBundle] removed the need to boot a Kernel in a unit test file
  [Routing] added getContext() accessor
  [HttpFoundation] fixed a potential security problem in Request
  updated vendors
  Added 201 to the possible status codes that indicate a response is a redirect.
  [FrameworkBundle] made ESI URL relative as allowed by the spec (no need to generate absolute URLs)
  [AsseticBundle] fixed router and controller
  [AsseticBundle] removed fake front controller from URL before creating route
  [AsseticBundle] updated twig integration to check debug mode at runtime rather than compile time since twig cannot vary its cache by debug mode
  [Routing] the global parameters must not be added in the QS when generating URLs
  removed the possibility to pass a message to the trans tag
  simplified exceptions as Twig is now smart enough to automatically add line information
  made the %count% variable automatically available when using the transchoice filter (similar to how the tag works)
  [Container] Added function array_unique on getServiceIds to return only one service name
  ...
2011-04-22 09:35:11 +02:00
Eriksen Costa
589b0ab4ed Merge branch 'master' into form-frameworkbundle-form-guessers-fix
Conflicts:
	src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddFormGuessersPass.php
	src/Symfony/Component/Form/MoneyField.php
2011-04-21 23:03:40 -03:00
Ryan Weaver
f98916dcc8 [TwigBundle] Removing dbug text in form template 2011-04-21 19:49:45 -05:00
Fabien Potencier
9694ac77a7 [Form] fixed translations escaping 2011-04-21 07:48:12 +02:00
Bernhard Schussek
273d72ef75 [Form] Changed separator for Twig blocks from double underscore to single underscore to match the PHP template separator 2011-04-18 14:28:01 +02:00
Miha Vrhovnik
50011fa344 Added html5 email input to the forms 2011-04-18 11:17:41 +02:00
Brikou CARRE
e898445b94 removed empty lines/trailing spaces 2011-04-15 21:12:02 +02:00
Bernhard Schussek
7b1bf621e1 [Form] Removed obsolete code from div_layout.html.twig 2011-04-15 16:40:28 +02:00
Bernhard Schussek
990bef8afb [Form][FrameworkBundle][TwigBundle] Fixed: CSRF fields are not rendered for nested forms anymore 2011-04-15 14:05:33 +02:00
Henrik Bjørnskov
fbb0ca5c4e [Form] Fixed tests for previous commit 2011-04-14 18:32:51 +02:00
Henrik Bjørnskov
5547243f53 [Form] Starting to bring back resouces as configurable 2011-04-14 18:32:34 +02:00
Fabien Potencier
44edd8fe96 [TwigBundle] renamed default widget files 2011-04-14 16:47:44 +02:00
Bernhard Schussek
c6fe6a750d [Form] Added functional test for the 'size' attribute in the select tags of a time field 2011-04-14 15:29:55 +02:00
Bernhard Schussek
72b17cd67c [Form] Renamed TemplateContext to FormView 2011-04-14 15:02:51 +02:00
Bernhard Schussek
4907c7d81d [Form] Added test coverage for expanded choice fields 2011-04-14 14:18:25 +02:00
Bernhard Schussek
4c0d53a7b6 [TwigBundle] Merged div_layout.html.twig and widget.html.twig 2011-04-14 13:46:11 +02:00
Bernhard Schussek
ce5f3073bd Fixed test suite and names of accessor methods in TemplateContext 2011-04-14 03:52:52 +02:00
Bernhard Schussek
602846f386 [Form] Added tests for table_layout.html.twig 2011-04-14 03:38:19 +02:00
Bernhard Schussek
96f040cec1 [Form] Added extensive test coverage for div_layout.html.twig 2011-04-14 03:15:56 +02:00
Bernhard Schussek
8031ad77c8 Merge remote branch 'fabpot/form' into fabpot_merge 2011-04-13 15:58:15 +02:00
Kris Wallsmith
672291087c removed a lot of special normalization logic in the configuration by using xml values instead of attributes 2011-04-13 05:59:46 -07:00
Bernhard Schussek
2a18be1c9f Merge remote branch 'symfony/master' into experimental 2011-04-13 13:53:20 +02:00
Fabien Potencier
0c93b6bbe4 Merge remote branch 'vicb/locate_template2'
* vicb/locate_template2:
  [FrameworkBundle] Enforce templates instances of TemplateReferenceInterface
  [FrameworkBundle] Add unit tests for the CacheTemplateLocator class
  [FrameworkBundle] Add unit tests for the TemplateLocator class
  [TwigBundle] Fix the cache warmer
  [TwigBundle] Tweak cache warmer configuration
  [FrameworkBundle] Fix resource inheritance in the template cache warmer
2011-04-13 13:38:11 +02:00
Fabien Potencier
7f2294395c [Form] reverted the templating part to be similar to what we have today 2011-04-11 16:42:51 +02:00
Victor Berchet
e254ff8cc6 Display template logical names in exception messages 2011-04-08 19:56:12 +02:00
Victor Berchet
87000a163b [TwigBundle] Fix the cache warmer 2011-04-08 18:54:19 +02:00
Victor Berchet
e1ab14ba08 [TwigBundle] Tweak cache warmer configuration 2011-04-08 18:54:19 +02:00
Fabien Potencier
a230090537 removed some json_encode() calls to use the new getLogicalName() method instead 2011-04-08 17:28:27 +02:00
Bernhard Schussek
67582c9a5c Merge remote branch 'symfony/master' into experimental
Conflicts:
	src/Symfony/Bundle/FrameworkBundle/Debug/TraceableEventDispatcher.php
2011-04-06 16:06:26 +02:00
Victor Berchet
b640fcb0f0 [Config] Introduction of an ConfigurationInterface 2011-04-05 11:26:28 +02:00
Ryan Weaver
22beeb2549 [TwigBundle] Cleaning up several portions of the exception message received when a template cannot be loaded
* The quotations are redundant when the template is a string - json_encode() adds the quotes
 * The exception should not end in a period, as the exception class may add a line number (not in this case, but generall)
 * Made the line number -1, so that no line number was displayed in the message (error at line 0 looks worse than nothing at all)
2011-04-04 21:35:00 -05:00
Fabien Potencier
dd150fc478 Merge remote branch 'vicb/twig_warmer'
* vicb/twig_warmer:
  [TwigBundle] Update the cache warmer
2011-04-04 18:52:56 +02:00
Bernhard Schussek
bfa3c71140 [Form] Added Bundle suffixes again 2011-04-04 15:33:21 +02:00
Bernhard Schussek
0cf8cc762a Merge remote branch 'symfony/master' into experimental
Conflicts:
	src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/money_field.html.php
	src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/percent_field.html.php
2011-04-04 15:16:08 +02:00
Fabien Potencier
f232b3cdda reverted Merge remote branch 'kriswallsmith/kernel/shorter-bundle-names' 2011-04-04 11:10:56 +02:00
Fabien Potencier
743592d81e Revert "fixed remaining Bundle suffixes"
This reverts commit 315147c6c8.
2011-04-04 11:08:56 +02:00
Bernhard Schussek
d3b7c4e8c1 [Form] Moved getLabel(), isChoiceSelected() and isChoiceGroup() from ChoiceListInterface to ThemeRenderer 2011-04-02 14:14:18 +02:00
Bernhard Schussek
37e8e1270c [Form][FrameworkBundle][TwigBundle] Renamed view variable 'disabled' to 'read_only' to match with the according FormInterface methods 2011-04-02 12:18:43 +02:00
Fabien Potencier
b219e92bf4 [Form] fixed Twig theme tests 2011-03-31 07:27:55 +02:00
ornicar
d72b1d4f61 Add assets_version twig function. Also add some phpDoc.
I need to get the assets version to pass it to JavaScript. As there is
no obvious way to get it from a twig template actually, I think this
new `assets_version` function makes sense.
2011-03-30 11:14:19 -07:00
Bernhard Schussek
544f763c2c [FrameworkBundle][TwigBundle] Adapted bundle references to latest symfony/master changes 2011-03-28 22:58:05 +02:00
Bernhard Schussek
53838abf3f Merge remote branch 'symfony/master' into experimental
Conflicts:
	src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/money_field.html.php
	src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/percent_field.html.php
	src/Symfony/Component/Form/Resources/config/validation.xml
2011-03-28 22:52:15 +02:00
Victor Berchet
95f5ba1ccd [TwigBundle] Update the cache warmer 2011-03-28 22:04:39 +02:00
Fabien Potencier
315147c6c8 fixed remaining Bundle suffixes 2011-03-28 19:04:02 +02:00
Fabien Potencier
49063a5314 Merge remote branch 'kriswallsmith/kernel/shorter-bundle-names'
* kriswallsmith/kernel/shorter-bundle-names:
  updated codebase to use shorter bundle names
  [HttpKernel] updated component to work with shorter bundle names
  [HttpKernel] updated Bundle::getName() to validate bundle class name and rtrim "Bundle"
2011-03-28 18:06:41 +02:00
Fabien Potencier
faf9782e6f renamed Twig TransExtension to TranslationExtension 2011-03-28 16:16:54 +02:00
Kris Wallsmith
ade83e2e80 updated codebase to use shorter bundle names
Controllers:
"BlogBundle:Post:show" is now "Blog:Post:show"

Templates:
"BlogBundle:Post:show.html.twig" is now "Blog:Post:show.html.twig"

Resources:
"@BlogBundle/Resources/config/blog.xml" is now "@Blog/Resources/config/blog.xml"

Doctrine:
"$em->find('BlogBundle:Post', $id)" is now "$em->find('Blog:Post', $id)"
2011-03-27 06:25:43 -07:00
Bernhard Schussek
b21929423e [Form] Completely removed the fields variable in the renderer. The renderer itself supports ArrayAccess and Traversable 2011-03-27 13:48:36 +02:00
Bernhard Schussek
fae319e77a [Form] Renderers are now created explicitely using FormFactory::createRenderer(). This improves performance on requests where a form does not need to be rendered 2011-03-26 16:03:34 +01:00
Bernhard Schussek
d84d167b71 [Form] Fixed display of enctype for file fields in Twig theme 2011-03-25 00:16:30 +01:00
Benjamin Eberlei
8d6dd2b9af [Form] Add Arbitrary Attribute Support to Form Rendering. 2011-03-24 22:08:08 +01:00
Bernhard Schussek
9839aafb7d Merge remote branch 'symfony/master' into experimental 2011-03-23 19:18:38 +01:00
Fabien Potencier
82dec51b30 moved integration between the Yaml component and Twig to a Symfony Bridge 2011-03-23 15:50:55 +01:00
Fabien Potencier
e912b347f0 moved integration between the Translation component and Twig to a Symfony Bridge 2011-03-23 15:23:52 +01:00
Fabien Potencier
3e5bd67dac moved integration between Routing and Twig to a Symfony Bridge 2011-03-23 15:16:57 +01:00
Bernhard Schussek
1c5bbb5426 Merge remote branch 'johnwards/experimental' into johnwards-merge 2011-03-21 22:14:59 +01:00
John Wards
31647d3662 [TwigBundle] Changed twig variable from 'this' to 'renderer' 2011-03-21 20:46:19 +00:00
Bernhard Schussek
61804bbd8b Merge remote branch 'symfony/master' into experimental 2011-03-21 20:27:39 +01:00
Miha Vrhovnik
e57075ea60 removed unused and undefined namespace and use statement 2011-03-21 10:50:13 +01:00
Benjamin Eberlei
32e1a7c8f9 Merge bschussek/experimental into branch forms. 2011-03-19 15:18:52 +01:00
Bernhard Schussek
3e17b26105 [Form] Moved CSRF protection into separate field 2011-03-19 15:06:54 +01:00
Bernhard Schussek
89215d167d Merge remote branch 'symfony/master' into experimental 2011-03-19 13:25:41 +01:00
Benjamin Eberlei
bb8c2a9b9d Rename this to renderer to be able to use it in Php Templating 2011-03-19 11:54:46 +01:00
Fabien Potencier
2d9ae36119 Merge remote branch 'vicb/one_more_thing' 2011-03-18 16:32:35 +01:00
Fabien Potencier
0c8ff92ecd made the controller name in the WDT clickable 2011-03-18 16:09:21 +01:00
Victor Berchet
d959a3ed4b [TwigBundle] Rename the cache warmer service 2011-03-18 15:48:34 +01:00
Fabien Potencier
c5a6c8432f Merge remote branch 'vicb/templating' 2011-03-18 11:54:20 +01:00
Victor Berchet
f89a5ff3b8 [TwigBundle] Fix some typos 2011-03-18 11:30:23 +01:00
Victor Berchet
7f523466f4 [TwigBundle] Fix the cache warmer 2011-03-18 11:23:23 +01:00
Christophe Coevoet
2743abc35d [DoctrineBundle] Fix some typos 2011-03-17 23:14:18 +01:00
Victor Berchet
0e84757d94 Tweak PHPDocs in the extension configuration files 2011-03-17 16:29:03 +01:00
Victor Berchet
1e0ed22c55 [Config] Component refactoring
The Config component API have changed and the extension configuration files must be updated accordingly:

1. Array nodes must enclosed their children definition in ->children() ... ->end() calls:

Before:

    $treeBuilder->root('zend', 'array')
        ->arrayNode('logger')
            ->scalarNode('priority')->defaultValue('INFO')->end()
            ->booleanNode('log_errors')->defaultFalse()->end()
        ->end();

After:

    $treeBuilder->root('zend', 'array')
        ->children()
            ->arrayNode('logger')
                ->children()
                    ->scalarNode('priority')->defaultValue('INFO')->end()
                    ->booleanNode('log_errors')->defaultFalse()->end()
                ->end()
            ->end()
        ->end();

2. The 'builder' method (in NodeBuilder) has been dropped in favor of an 'append' method (in ArrayNodeDefinition)

Before:

    $treeBuilder->root('doctrine', 'array')
        ->arrayNode('dbal')
            ->builder($this->getDbalConnectionsNode())
        ->end();

After:

    $treeBuilder->root('doctrine', 'array')
        ->children()
            ->arrayNode('dbal')
                ->append($this->getDbalConnectionsNode())
            ->end()
        ->end();

3. The root of a TreeBuilder is now an NodeDefinition (and most probably an ArrayNodeDefinition):

Before:

    $root = $treeBuilder->root('doctrine', 'array');
    $this->addDbalSection($root);

    public function addDbalSection(NodeBuilder $node)
    {
        ...
    }

After:

    $root = $treeBuilder->root('doctrine', 'array');
    $this->addDbalSection($root);

    public function addDbalSection(ArrayNodeDefinition $node)
    {
        ...
    }

4. The NodeBuilder API has changed (this is seldom used):

Before:

    $node = new NodeBuilder('connections', 'array');

After:

The recommended way is to use a tree builder:

    $treeBuilder = new TreeBuilder();
    $node = $treeBuilder->root('connections', 'array');

An other way would be:

    $builder = new NodeBuilder();
    $node = $builder->node('connections', 'array');

Some notes:

- Tree root nodes should most always be array nodes, so this as been made the default:

    $treeBuilder->root('doctrine', 'array') is equivalent to $treeBuilder->root('doctrine')

- There could be more than one ->children() ... ->end() sections. This could help with the readability:

    $treeBuilder->root('doctrine')
        ->children()
            ->scalarNode('default_connection')->end()
        ->end()
        ->fixXmlConfig('type')
        ->children()
            ->arrayNode('types')
                ....
            ->end()
        ->end()
2011-03-17 16:26:15 +01:00
Bernhard Schussek
1c9a00733f Merge branch 'event-manager' into experimental
Conflicts:
	src/Symfony/Component/Security/Http/Firewall/AbstractAuthenticationListener.php
	src/Symfony/Component/Security/Http/Firewall/AbstractPreAuthenticatedListener.php
2011-03-17 13:38:24 +01:00
Fabien Potencier
005287ac88 Merge remote branch 'kriswallsmith/templating/asset-packages' 2011-03-16 16:18:45 +01:00
Bernhard Schussek
f64f55002b Merge remote branch 'symfony/master' into experimental
Conflicts:
	src/Symfony/Component/Security/Http/Firewall/AbstractAuthenticationListener.php
	src/Symfony/Component/Security/Http/Firewall/AbstractPreAuthenticatedListener.php
2011-03-16 16:00:54 +01:00
Christophe Coevoet
61abc3d01f Added the global variable in PHP templates too 2011-03-16 13:11:29 +01:00
Fabien Potencier
539e0e4870 Merge remote branch 'mweimerskirch/master' 2011-03-14 14:38:00 +01:00
Bernhard Schussek
0bf566310c Merge branch 'event-manager' into experimental
Conflicts:
	src/Symfony/Component/Form/BirthdayField.php
	src/Symfony/Component/Form/CheckboxField.php
	src/Symfony/Component/Form/ChoiceField.php
	src/Symfony/Component/Form/ChoiceList/TimeZoneChoiceList.php
	src/Symfony/Component/Form/CollectionField.php
	src/Symfony/Component/Form/DateField.php
	src/Symfony/Component/Form/DateTimeField.php
	src/Symfony/Component/Form/EntityChoiceField.php
	src/Symfony/Component/Form/Events.php
	src/Symfony/Component/Form/FieldFactory/FieldFactory.php
	src/Symfony/Component/Form/FieldFactory/FieldFactoryInterface.php
	src/Symfony/Component/Form/FileField.php
	src/Symfony/Component/Form/Filters.php
	src/Symfony/Component/Form/FormContext.php
	src/Symfony/Component/Form/FormContextInterface.php
	src/Symfony/Component/Form/FormFactoryInterface.php
	src/Symfony/Component/Form/HybridField.php
	src/Symfony/Component/Form/IntegerField.php
	src/Symfony/Component/Form/LanguageField.php
	src/Symfony/Component/Form/LocaleField.php
	src/Symfony/Component/Form/MoneyField.php
	src/Symfony/Component/Form/NumberField.php
	src/Symfony/Component/Form/PasswordField.php
	src/Symfony/Component/Form/PercentField.php
	src/Symfony/Component/Form/RepeatedField.php
	src/Symfony/Component/Form/TextField.php
	src/Symfony/Component/Form/TimeField.php
	src/Symfony/Component/Form/ToggleField.php
	src/Symfony/Component/Form/UrlField.php
	src/Symfony/Component/HttpFoundation/File/UploadedFile.php
	tests/Symfony/Tests/Component/Form/FileFieldTest.php
	tests/Symfony/Tests/Component/Form/FormContextTest.php
	tests/Symfony/Tests/Component/Form/HiddenFieldTest.php
2011-03-13 21:04:24 +01:00
Don Pinkster
f8493842d3 [TwigBundle] Fixed PHPDoc 2011-03-11 22:44:32 +01:00
Don Pinkster
c4923fc57e [TwigBundle] Fixed typo 2011-03-11 22:39:47 +01:00
Kris Wallsmith
7d9ddb546e [TwigBundle] updated to support asset packages 2011-03-08 09:24:43 -08:00
Fabien Potencier
8c423edfef replaced symfony-project.org by symfony.com 2011-03-06 12:40:06 +01:00
Bernhard Schussek
e53c688a6b [Form] Fixed RepeatedField, improved structure of the Twig templates 2011-03-02 16:00:31 +01:00
Bernhard Schussek
68013f4db2 Merge remote branch 'symfony/master' into experimental 2011-03-02 12:27:30 +01:00
Pascal Borreli
19f931a231 [TwigBundle] Fixed Typo 2011-03-01 18:58:07 +01:00
Bernhard Schussek
c1edf116f2 [Form] Removed notion of "hidden" fields
Instead, hidden fields now override the "row" template to not include a label or errors.

The "rest" (former "hidden") helper has been adapted to output any fields that were not
rendered manually. It should usually be called at the end of a form.
2011-02-28 17:01:11 +01:00
Bernhard Schussek
02d2121dcd [Form] Improved rendering
Fields are not available in the templates anymore. Instead, all required information can be
accessed through view variables.

Example usage of helpers and variables in a form theme:

// use the label helper
{{ this.label('my label') }}

// use the label variable
{{ this.vars.label }}
{{ label }}

Example usage of helpers and variables in a normal template:

// use the label helper
{{ field.label('my label') }}

// use the label variable
{{ field.vars.label }}
2011-02-28 16:50:23 +01:00
Christophe Coevoet
92bfbf575c Fixed CS 2011-02-27 20:56:29 +01:00
Pascal Borreli
0c9951f676 [TwigBundle] Fixed typo 2011-02-26 20:02:05 +01:00
Bernhard Schussek
c6e9fd97b6 [Form] Fixed various bugs 2011-02-25 00:09:10 +01:00
Bernhard Schussek
eca2b87313 Merge branch 'master' into experimental 2011-02-24 21:28:09 +01:00
Michel Weimerskirch
6998e593e0 Added line number to TransChoiceTokenParser exception message (TwigBundle). 2011-02-24 06:47:45 -08:00
Fabien Potencier
79bc233344 [TwigBundle] fixed typo 2011-02-24 09:46:59 +01:00
Bernhard Schussek
c8275c5b27 [Form] Refactored PercentField to FormFactory 2011-02-23 15:26:01 +01:00
Bernhard Schussek
68bb3ff606 [Form] Used ValuePlugin to pass displayed data to template. The order of added renderer plugins and set renderer variables is now respected 2011-02-23 14:11:18 +01:00
Bernhard Schussek
ce432e939d [Form] Changed notion of 'parameter' to 'var' in the renderer. Merged vars and attributes into single array 2011-02-23 14:11:18 +01:00
Bernhard Schussek
2b8ca25d01 [Form] Refactored NumberField, IntegerField, HiddenField and MoneyField to FormFactory 2011-02-23 14:11:18 +01:00
Bernhard Schussek
9394ffdea1 [Form] Started to refactor TimeField to FormFactory::getTimeField(). Validation logic is still missing. 2011-02-23 14:11:18 +01:00
Bernhard Schussek
975b8ebe9b [Form] Started to refactor DateField to FormFactory::getDateField(). Validation logic is still missing. 2011-02-23 14:11:18 +01:00
Bernhard Schussek
b148a2a7ed [Form] Refactored ChoiceField to FormFactory::getChoiceField() 2011-02-23 14:11:18 +01:00
Bernhard Schussek
7a48c0a5c5 [Form] Refactored logic from ChoiceField into ChoicePlugin and SelectMultipleNamePlugin 2011-02-23 14:11:18 +01:00
Bernhard Schussek
f7dc71ef59 [Form] Refactored id and name generation to renderer plugins 2011-02-23 14:11:17 +01:00
Bernhard Schussek
861ff957e7 [Form] Refactored DateField pattern, fixed maxlength in TextField 2011-02-23 14:11:17 +01:00
Bernhard Schussek
ed68fd66a9 [Form] Improved the renderer implementation, added concepts of plugins and themes 2011-02-23 14:11:17 +01:00
Fabien Potencier
d94acd85f9 remove response as a service
The Response is not available in the DIC anymore.

When you need to create a response, create an instance of
Symfony\Component\HttpFoundation\Response instead.

As a side effect, the Controller::createResponse() and Controller::redirect()
methods have been removed and can easily be replaced as follows:

  return $this->createResponse('content', 200, array('foo' => 'bar'));
  return new Response('content', 200, array('foo' => 'bar'));

  return $this->redirect($url);
  return Response::createRedirect($url);
2011-02-21 17:36:04 +01:00
Fabien Potencier
23e9386a0e changed all extensions to use the default Extension::getAlias() impl 2011-02-20 08:58:37 +01:00
Jeremy Mikola
f4c0af76e7 [TwigBundle] Allow arbitrary variables to be accepted as values for globals
This fixes a regression introduced when TwigExtension was refactored to utilize the Config component.
2011-02-20 00:59:18 -05:00
Fabien Potencier
d6c277f5c4 Merge remote branch 'stof/escaping'
* stof/escaping:
  Fixed escaping for arguments
2011-02-19 18:50:32 +01:00
Fabien Potencier
f6e624b1e2 [TwigBundle] changed all Boolean to string in XSD as you might want to use a parameter %...% 2011-02-19 15:36:41 +01:00
Fabien Potencier
4833acf301 Merge remote branch 'opensky/TwigExtension-configuration'
* opensky/TwigExtension-configuration:
  [TwigBundle] Refactored TwigExtension class and implemented configuration tree
2011-02-19 15:35:09 +01:00
Fabien Potencier
946d3d9302 fixed previous commit 2011-02-19 13:02:23 +01:00
benjamindulau
f1dd3f22e3 [TwigBundle] adding two global variables : environment & debug + some doc blocks
Use case :
    {% if app.environment == 'prod' %}
        {# e.g google analytics scripts #}
    {% endif %}
2011-02-19 13:00:51 +01:00
Jeremy Mikola
f0d2ce7f32 [TwigBundle] Refactored TwigExtension class and implemented configuration tree
Added config fixtures in each format to demonstrate the possible styles of all of the extension options. These should all be covered by the updated tests. Made XSD slightly more restrictive, with regards to the "type" attribute on globals. This is coupled with validation in the configuration class.
2011-02-18 12:58:04 -05:00
Jordi Boggiano
38813c122e [TwigBundle] Resolve some TODOs in form templates 2011-02-17 16:00:28 +01:00
Bernhard Schussek
14c3518c6e [Form] Fixed: If a DateField or TimeField is displayed with select boxes, either all or no select box must have a value selected 2011-02-16 23:05:22 +01:00
Fabien Potencier
62e3053769 refactored previous commit, fixed tests
How to upgrade?

For XML configuration files:

 * All extensions should now use the config tag (this is just a convention as
   the YAML configurations files do not use it anymore):

 * The previous change means that the doctrine and security bundles now are
   wrapped under a main "config" tag:

        <doctrine:config>
            <doctrine:orm />
            <doctrine:dbal />
        </doctrine:config>

        <security:config>
            <security:acl />
            ...
        </security:config>

For YAML configuration files:

 * The main keys have been renamed as follows:

        * assetic:config -> assetic
        * app:config -> framework
        * webprofiler:config -> web_profiler
        * doctrine_odm.mongodb -> doctrine_mongo_db
        * doctrine:orm -> doctrine: { orm: ... }
        * doctrine:dbal -> doctrine: { dbal: ... }
        * security:config -> security
        * security:acl -> security: { acl: ... }
        * twig.config -> twig
        * zend.config -> zend
2011-02-15 22:22:28 +01:00
Lukas Kahwe Smith
7f182bd877 implicitly load all registered bundles, all loading is now handled by load(), disable loading of an extension explcitly via setting the extension config to false (for now only Yaml is implemented) 2011-02-15 22:11:08 +01:00
Fabien Potencier
14aa95ba21 added the concept of a main DIC extension for bundles
This allows for better conventions and better error messages if you
use the wrong configuration alias in a config file.

This is also the first step for a bigger refactoring of how the configuration
works (see next commits).

 * Bundle::registerExtensions() method has been renamed to Bundle::build()

 * The "main" DIC extension must be renamed to the new convention to be
   automatically registered:

      SensioBlogBundle -> DependencyInjection\SensioBlogExtension

 * The main DIC extension alias must follow the convention:

      sensio_blog for SensioBlogBundle

 * If you have more than one extension for a bundle (which should really
   never be the case), they must be registered manually by overriding the
   build() method

 * If you use YAML or PHP for your configuration, renamed the following
   configuration entry points in your configs:

      app -> framework
      webprofiler -> web_profiler
      doctrine_odm -> doctrine_mongo_db
2011-02-15 22:11:07 +01:00
Victor Berchet
af81bcabf0 [Templating] Refactor the component 2011-02-14 21:11:44 +01:00
Fabien Potencier
5c905beb13 moved common configuration classes to a new Config component 2011-02-13 22:31:50 +01:00
Johannes Schmitt
19bbafc441 [Security] Refactored security context, moved getUser() implementation to templating 2011-02-12 21:53:04 +01:00
Fabien Potencier
b91f082be5 Revert "moved Resource to the Config component"
This reverts commit f53080860a.

Revert "[Router] config fixes"

This reverts commit 51beecc6f2.

Revert "moved duplicated files to a new Config component"

This reverts commit a8ec9b27f0.
2011-02-10 16:14:12 +01:00
Fabien Potencier
a8ec9b27f0 moved duplicated files to a new Config component 2011-02-10 03:43:36 +01:00
Fabien Potencier
e58a84eb09 added a FileLocator to DIC so that we can load resources like @BundleName/Resources/... 2011-02-10 00:44:02 +01:00
Jeremy Mikola
9f77cabd2f [TwigBundle] Cast non-array resources argument to array in form_field() twig function
Methods within FormExtension later type-hint this parameter as an array, but it's convenient to allow a single string to be passed from Twig if we ensure it's wrapped in an array.
2011-02-09 06:53:10 +01:00
Fabien Potencier
7cb42d2a68 Revert "[TwigBundle] fixed error messages when an error occurs during template compilation"
This reverts commit c68b326665.
2011-02-06 21:05:37 +01:00
Fabien Potencier
e5403490e7 removed the need to define getNamespace() and getPath() in bundles 2011-02-05 22:40:30 +01:00
Fabien Potencier
2ae542748a [TwigBundle] made error message more explicit 2011-02-05 01:17:59 +01:00
Fabien Potencier
e2ea634df4 [TwigBundle] fixed inheritance problem 2011-02-04 22:14:25 +01:00
Fabien Potencier
67c9fdf412 [TwigBundle] fixed theme for forms 2011-02-04 21:19:38 +01:00
Fabien Potencier
7f6fc6f0fb [TwigBundle] fixed form template inheritance 2011-02-04 20:41:31 +01:00
Fabien Potencier
195c971da6 removed load() from EngineInterface 2011-02-04 19:28:14 +01:00
Fabien Potencier
710a1e56b0 [TwigBundle] added support for template as Twig_Template instances 2011-02-04 13:04:02 +01:00
Fabien Potencier
c68b326665 [TwigBundle] fixed error messages when an error occurs during template compilation 2011-02-04 12:54:53 +01:00
Fabien Potencier
f455700b88 fixed previous commit 2011-02-04 12:18:26 +01:00
Victor Berchet
3ed47114d6 [Bundle] Make getPath() less error prone by allowing both backward and forward slashes 2011-02-04 12:12:19 +01:00
Fabien Potencier
6b7e4ad2f9 [TwigBundle] fixed typo 2011-02-04 00:54:09 +01:00
Penny Leach
1c3e3f7744 [Form] Removed required="required" from hidden fields to make them HTML5 compliant 2011-02-02 15:51:17 +01:00
Fabien Potencier
a204e0df7f [TwigBundle] added previous exception when possible 2011-02-02 14:41:03 +01:00
Daniel Holmes
f217022ad5 [TwigBundle] fixed Twig template throwing InvalidArgumentException rather than returning false 2011-02-02 14:38:43 +01:00
Bernhard Schussek
c468db5c5b [Form] Merged classes FieldGroup and Form for simplicity 2011-02-01 15:27:12 +01:00
Christophe Coevoet
156a5dcb9f Fixed escaping for arguments 2011-01-29 20:29:49 +01:00
Lukas Kahwe Smith
26666a272d fixed array support in twig globals 2011-01-27 21:48:20 +01:00
Fabien Potencier
e645090423 moved security related things to a new SecurityBundle (the Security component is left unchanged) 2011-01-26 19:10:54 +01:00
Fabien Potencier
db2f2b1315 refactored template name parser to occur independently of the loaders 2011-01-26 14:53:12 +01:00
Fabien Potencier
8f6e8a4691 [TwigBundle] added a cache warmer to generate all Twig templates cache
To enable this cache warmer, you must add a "cache-warner" option
to twig:config:

        <twig:config cache-warmer="true">
2011-01-24 18:13:42 +01:00
Fabien Potencier
9310eea57a optimized templating layer
You must now explicitly register the templating engine you want to use:

  <app:templating>
      <app:engine id="twig" />
  </app:templating>

  app.templating:
      engines: ['twig']

Symfony2 comes with two such engines: 'twig', and 'php'.
2011-01-23 15:43:08 +01:00
Fabien Potencier
73ab687521 moved ControllerResolver methods to HttpKernel (makes more sense) 2011-01-23 10:23:33 +01:00
Fabien Potencier
59a974e8f6 added TemplateLocatorInterface 2011-01-22 08:31:08 +01:00
Fabien Potencier
72b7876c80 [TwigBundle] fiwed phpdoc 2011-01-21 18:04:56 +01:00
Fabien Potencier
fedb4b4f0d [TwigBundle] started to refactor TwigExtension 2011-01-21 17:45:04 +01:00
Fabien Potencier
69f0ec3b1a added a method to normalize config entries coming from YAML and XML 2011-01-21 17:44:30 +01:00
Johannes M. Schmitt
8d19136a55 refactors extensions to call XXXLoad only once with all config sections 2011-01-21 17:04:18 +01:00
Henrik Bjørnskov
5e9c9f4174 Template rename fix files 2011-01-21 15:06:10 +01:00
Henrik Bjørnskov
a5007febdd [FrameworkBundle] Renderer is once more the last of the templates 2011-01-21 15:06:10 +01:00
Fabien Potencier
0b0c15b7b6 made XSD less strict when possible 2011-01-21 10:53:13 +01:00
Ryan Weaver
17f9162b89 [Standards] Changing many instances of "boolean" to "Boolean". 2011-01-21 09:53:24 +01:00
Fabien Potencier
6d1e91a1fa refactored bundle management
Before I explain the changes, let's talk about the current state.

Before this patch, the registerBundleDirs() method returned an ordered (for
resource overloading) list of namespace prefixes and the path to their
location. Here are some problems with this approach:

 * The paths set by this method and the paths configured for the autoloader
   can be disconnected (leading to unexpected behaviors);

 * A bundle outside these paths worked, but unexpected behavior can occur;

 * Choosing a bundle namespace was limited to the registered namespace
   prefixes, and their number should stay low enough (for performance reasons)
   -- moreover the current Bundle\ and Application\ top namespaces does not
   respect the standard rules for namespaces (first segment should be the
   vendor name);

 * Developers must understand the concept of "namespace prefixes" to
   understand the overloading mechanism, which is one more thing to learn,
   which is Symfony specific;

 * Each time you want to get a resource that can be overloaded (a template for
   instance), Symfony would have tried all namespace prefixes one after the
   other until if finds a matching file. But that can be computed in advance
   to reduce the overhead.

Another topic which was not really well addressed is how you can reference a
file/resource from a bundle (and take into account the possibility of
overloading). For instance, in the routing, you can import a file from a
bundle like this:

  <import resource="FrameworkBundle/Resources/config/internal.xml" />

Again, this works only because we have a limited number of possible namespace
prefixes.

This patch addresses these problems and some more.

First, the registerBundleDirs() method has been removed. It means that you are
now free to use any namespace for your bundles. No need to have specific
prefixes anymore. You are also free to store them anywhere, in as many
directories as you want. You just need to be sure that they are autoloaded
correctly.

The bundle "name" is now always the short name of the bundle class (like
FrameworkBundle or SensioCasBundle). As the best practice is to prefix the
bundle name with the vendor name, it's up to the vendor to ensure that each
bundle name is unique. I insist that a bundle name must be unique. This was
the opposite before as two bundles with the same name was how Symfony2 found
inheritance.

A new getParent() method has been added to BundleInterface. It returns the
bundle name that the bundle overrides (this is optional of course). That way,
there is no ordering problem anymore as the inheritance tree is explicitely
defined by the bundle themselves.

So, with this system, we can easily have an inheritance tree like the
following:

FooBundle < MyFooBundle < MyCustomFooBundle

MyCustomFooBundle returns MyFooBundle for the getParent() method, and
MyFooBundle returns FooBundle.

If two bundles override the same bundle, an exception is thrown.

Based on the bundle name, you can now reference any resource with this
notation:

    @FooBundle/Resources/config/routing.xml
    @FooBundle/Controller/FooController.php

This notation is the input of the Kernel::locateResource() method, which
returns the location of the file (and of course it takes into account
overloading).

So, in the routing, you can now use the following:

    <import resource="@FrameworkBundle/Resources/config/internal.xml" />

The template loading mechanism also use this method under the hood.

As a bonus, all the code that converts from internal notations to file names
(controller names: ControllerNameParser, template names: TemplateNameParser,
resource paths, ...) is now contained in several well-defined classes. The
same goes for the code that look for templates (TemplateLocator), routing
files (FileLocator), ...

As a side note, it is really easy to also support multiple-inheritance for a
bundle (for instance if a bundle returns an array of bundle names it extends).
However, this is not implemented in this patch as I'm not sure we want to
support that.

How to upgrade:

 * Each bundle must now implement two new mandatory methods: getPath() and
   getNamespace(), and optionally the getParent() method if the bundle extends
   another one. Here is a common implementation for these methods:

    /**
     * {@inheritdoc}
     */
    public function getParent()
    {
        return 'MyFrameworkBundle';
    }

    /**
     * {@inheritdoc}
     */
    public function getNamespace()
    {
        return __NAMESPACE__;
    }

    /**
     * {@inheritdoc}
     */
    public function getPath()
    {
        return strtr(__DIR__, '\\', '/');
    }

 * The registerBundleDirs() can be removed from your Kernel class;

 * If your code relies on getBundleDirs() or the kernel.bundle_dirs parameter,
   it should be upgraded to use the new interface (see Doctrine commands for
   many example of such a change);

 * When referencing a bundle, you must now always use its name (no more \ or /
   in bundle names) -- this transition was already done for most things
   before, and now applies to the routing as well;

 * Imports in routing files must be changed:
    Before: <import resource="Sensio/CasBundle/Resources/config/internal.xml" />
    After:  <import resource="@SensioCasBundle/Resources/config/internal.xml" />
2011-01-20 18:42:47 +01:00
Jordi Boggiano
252918beb2 [TwigBundle] Fixed RenderTokenParser when with isn't used and options are provided 2011-01-20 16:47:54 +01:00
Ryan Weaver
ea2cb49696 [TwigBundle] Improving the PHPDoc on the FormExtension inside the TwigBundle. 2011-01-20 16:37:36 +01:00
Jordi Boggiano
de3f240ea4 [Form] Added required attribute on input field templates 2011-01-19 16:25:49 +01:00
Jordi Boggiano
ae40a5da53 [Form] Use HTML5 number and url input types for number and url fields 2011-01-19 16:25:49 +01:00
Fabien Potencier
40a70cd6f4 simplified TemplateNameParser::parse() return value 2011-01-18 19:13:37 +01:00
Dominique Bongiraud
64fb94c725 normalized license messages in PHP files 2011-01-18 08:07:46 +01:00
Sergey Linnik
22aba900d4 [TwigBundle] Normalize names of templates and enable cache found templates file names 2011-01-18 07:45:52 +01:00
Fabien Potencier
5b3e5e454b reverted a previous commit where translators were made optional 2011-01-17 22:58:55 +01:00
Fabien Potencier
00b19e234d fixed typos 2011-01-17 20:23:32 +01:00
Fabien Potencier
dba8c67941 [FrameworkBundle] disable translator if not explicitely enabled 2011-01-17 16:05:24 +01:00
Fabien Potencier
b7d2528384 added a way for any extension to add classes to the class cache 2011-01-16 11:32:17 +01:00
Johannes Schmitt
f1b7bc1fe9 some refactorings/improvements 2011-01-15 21:07:35 +01:00
Fabien Potencier
a365ab2884 changed the template name format
Before

bundle:section:template.format.renderer

After

bundle:section:template.renderer.format

Notice that both the renderer and the format are mandatory.
2011-01-15 12:33:27 +01:00
Fabien Potencier
055b6e4d6e made a big refactoring of the templating sub-framework
* better separation of concerns
 * made TwigBundle independant of the PHP Engine from FrameworkBundle (WIP)
 * removed one layer of abstraction in the Templating component (renderers)
 * made it easier to create a new Engine for any templating library
 * made engines lazy-loaded (PHP engine for instance is not started if you only use Twig)
 * reduces memory footprint (if you only use one engine)
 * reduces size of compiled classes.php cache file
2011-01-15 07:43:05 +01:00
Fabien Potencier
6b4ae4479a [TwigBundle] removed coupling between TemplatingExtension and Templating Engine 2011-01-14 08:57:04 +01:00
Fabien Potencier
c38c0c303e refactored Templating
* made the renderer argument of Storage ctor mandatory
 * refactored the Engine class to avoid code duplication
 * simplified the check for a template that extends another one but with a different renderer
2011-01-13 11:16:45 +01:00
Fabien Potencier
e975a09003 [TwigBundle] tweaked a comment 2011-01-13 07:55:58 +01:00
partugal
5ac67a23e7 [TwigBundle] addExtension calls must be first 2011-01-13 07:54:26 +01:00
Fabien Potencier
46f3da50d8 [TwigBundle] removed the cache for globals (does not work when working in functional tests) 2011-01-12 17:26:46 +01:00
Fabien Potencier
b056a6c3c1 [TwigBundle] fixed cache problem for some global variables 2011-01-12 17:25:39 +01:00
Victor Berchet
f2d32ccfde [Extensions] Type hints 2011-01-11 20:31:44 +01:00
Victor Berchet
9c51916503 [TwigBundle] Remove invalid options from the container 2011-01-11 20:29:05 +01:00
Fabien Potencier
450a6b39a2 [TwigBundle] moved global variables under the app. prefix
Before:

{{ session.flash('notice') }}

After:

{{ app.session.flash('notice') }}
2011-01-11 18:07:02 +01:00
Fabien Potencier
47b87e902e [TwigBundle] made global more powerful
A global can now be a service or a string:

<twig:config debug="%kernel.debug%" strict-variables="%kernel.debug%">
    <twig:global key="request" type="service" id="request" />
    <twig:global key="PI">3.14</twig:global>
</twig:config>
2011-01-11 15:55:31 +01:00
Fabien Potencier
50809d2ae0 [TwigBundle] added the security context and the user as global variables when they are defined 2011-01-07 17:49:43 +01:00
Fabien Potencier
1c3a01b25c removed duplicate code 2011-01-07 17:14:41 +01:00
Jeremy Mikola
0c50ca8775 [TwigBundle] Renderer::evaluate() should ensure the Request is both defined and non-empty
This addresses an oversight in my previous commit: 9553971d06
Author: Jeremy Mikola <jmikola@gmail.com>
Date:   Thu Jan 6 13:26:45 2011 -0500
2011-01-07 14:32:31 +01:00
Fabien Potencier
2ded40fb75 [TwigBundle] added a way to easily register extensions from the configuration
<twig:extension id="twig.extension.debug" />

    twig:
        extensions: [twig.extension.debug]

The Twig-Extensions repository extensions are already registered:

 * twig.extension.debug
 * twig.extension.text
2011-01-06 19:51:03 +01:00
Jeremy Mikola
9553971d06 [TwigBundle] Allow Renderer::evaluate() even when Request and Session are not available
This is helpful for using Twig outside of a request-serving context, such during a console command.  Added unit tests the original behavior and new behavior for this patch.
2011-01-06 19:31:27 +01:00
Fabien Potencier
911dbe9cc4 removed a circular reference in the definition of the templating and Twig services
* added a new TemplateNameConverter that parses a template name
 * removed the dependency between the Twig loader and the Templating engine
2011-01-06 14:52:43 +01:00
Fabien Potencier
e3944bf4e6 fixed escaping in CodeHelper::formatArgs() 2011-01-06 11:43:39 +01:00
Fabien Potencier
f946355f80 [TwigBundle] added a form_row() function 2011-01-05 19:37:50 +01:00
Johannes M. Schmitt
da5475ec42 service visibility changes 2011-01-05 16:01:48 +01:00
Johannes M. Schmitt
c5ef113b18 DI container optimization 2011-01-05 15:41:11 +01:00
Fabien Potencier
7fdc61f272 [TwigBundle] added a way to register Twig globals from configuration
<twig:config debug="%kernel.debug%" strict-variables="%kernel.debug%">
        <twig:global key="foo" id="request" />
    </twig:config>

    twig.config:
        globals:
          foo: request
2011-01-04 14:40:25 +01:00
Fabien Potencier
7b7e83f428 removed js and css helpers and Twig integration
These helpers have been removed as they do not work as expected.
Among other things, the order is not the right one when using PHP
templates, and adding assets from an included template is not
possible when using Twig templates.

This should be replaced by integrating a third-party library that
manages assets: minification, compilation, packaging, ...
2011-01-04 14:07:25 +01:00
Fabien Potencier
b60d254be2 [TwigBundle] added request and session as global variables
* removed the "_view" variable from templates
 * removed the "flash()" function (now available from the session directly {{ session.flash('notice') }})
2011-01-04 14:03:41 +01:00
Fabien Potencier
0e487cdda6 [TwigBundle] replaced current {{ foo }} syntax for translation placeholders to %foo% 2011-01-04 08:47:23 +01:00
Bernhard Schussek
114b2cf6c1 [FrameworkBundle] Attributes can now be passed when rendering form fields with the PHP renderer 2011-01-03 22:07:12 +01:00
Fabien Potencier
8b843e2662 [TwigBundle] fixed trans tag due to Twig changes 2011-01-03 20:09:48 +01:00
Fabien Potencier
8ca90d5233 fixed typo in phpdoc 2011-01-03 15:11:55 +01:00
Fabien Potencier
acbdbfca52 fixed typo 2011-01-03 14:59:27 +01:00
Fabien Potencier
5c6b594dae [TwigBundle] converted form filters to functions
|render_enctype -> form_enctype()
|render         -> form_field()
|render_hidden  -> form_hidden()
|render_errors  -> form_errors()
|render_label   -> form_label()
|render_data    -> form_data()
2011-01-03 14:45:16 +01:00
Fabien Potencier
e20a246eee [TwigBundle] fixed format_args configuration 2011-01-03 14:26:20 +01:00
Fabien Potencier
55b343b27c [TwigBundle] simplified code a bit 2011-01-03 12:34:14 +01:00
Fabien Potencier
2e9b8a4117 [TwigBundle] removed HelperTokenParser 2011-01-03 12:16:24 +01:00
Fabien Potencier
13bcf7cdac [TwigBundle] converted flash tag to a function 2011-01-03 12:14:54 +01:00
Fabien Potencier
3f492cae40 [TwigBundle] removed usage of HelperTokenParser for the js/css tags 2011-01-03 12:12:26 +01:00
Fabien Potencier
840bd8aacd [TwigBundle] removed usage of HelperTokenParser for the 'render' tag 2011-01-03 11:56:52 +01:00
Christophe Coevoet
da9d2e82f6 Added the Typehint needed by the type-hinting in Twig_Node 2011-01-02 16:25:18 +01:00
Bernhard Schussek
2daa6b5bfe [TwigBundle] Fixed display of DateFields in twig templates 2011-01-02 10:41:12 +01:00
Bernhard Schussek
d8b8ae0608 [FrameworkBundle][TwigBundle] Introduced field_row template for Form rendering 2011-01-02 10:41:00 +01:00
Fabien Potencier
62cd09e708 [TwigBundle] replaced the asset tag with an asset function (from {% asset css/foo.css %} to {{ asset('css/foo.css') }} 2010-12-31 16:59:44 +01:00
Johannes Schmitt
b4288459cc added ACL system to the Security Component 2010-12-31 09:25:53 +01:00
Fabien Potencier
8777a34234 [TwigBundle] updated templates for the latest version of Twig 2010-12-30 12:12:15 +01:00
Henrik Bjørnskov
59996bd8b9 [TwigBundle] Fixed form.twig calls to {% display %} 2010-12-30 12:06:52 +01:00
Fabien Potencier
77f5e7a5f3 [TwigBundle] updated functions to work with the latest version of Twig 2010-12-28 19:53:11 +01:00
Fabien Potencier
8e6a3849ee [TwigBundle] converted the special Twig Environment class to a DIC compiler class 2010-12-23 12:58:31 +01:00
Fabien Potencier
5d65f3edbd [TwigBundle] converted path and url tags to functions
{% url 'blog_post' with { 'id': post.id } %} -> {{ url('blog_post', { 'id': post.id }) }}
{% path 'blog_post' with { 'id': post.id } %} -> {{ path('blog_post', { 'id': post.id }) }}
2010-12-20 09:39:51 +01:00
Fabien Potencier
d935df036c [TwigBundle] removed unused tag and contenttag Twig tags 2010-12-20 09:05:16 +01:00
Fabien Potencier
bacb472e39 updated last commit to reflect Twig changes 2010-12-19 22:27:50 +01:00
Fabien Potencier
faac8e6ffd [TwigBundle] replaced the ifrole tag with a has_role function
Before:

{% ifrole "ROLE_ADMIN" %}
    Only show if you have the ROLE_ADMIN role...
{% endifrole %}

After:

{% if has_role("ROLE_ADMIN") %}
    Only show if you have the ROLE_ADMIN role...
{% endif %}
2010-12-19 22:07:15 +01:00
Fabien Potencier
6970a46b84 updated Twig templates for the new hash syntax 2010-12-14 09:46:24 +01:00
Fabien Potencier
02a92ec297 [TwigBundle] added autoescape option in Twig configuration 2010-12-12 14:41:00 +01:00
Lukas Kahwe Smith
30f231deaf moved default form template to the DIC config 2010-12-12 13:52:01 +01:00
Kris Wallsmith
3e02eafc70 Fixed visibility of PHPUnit setUp and tearDown methods. 2010-12-06 15:52:23 +01:00
Fabien Potencier
963cbdcee5 [TwigBundle] removed escaper and optimizer extension as they are now registered by default in Twig 2010-12-02 10:31:14 +01:00
Lukas Kahwe Smith
87846f1acd fixed typo in the translation for validations 2010-11-30 07:58:34 +01:00
Fabien Potencier
7ad3eca188 [TwigBundle] activated Twig Optimizer extension by default 2010-11-28 15:42:57 +01:00
Fabien Potencier
547eaa81f7 [TwigBundle] fixed option management for Twig_Environment 2010-11-27 11:36:11 +01:00
Fabien Potencier
07eceb7ade [TwigBundle] fixed ifrole tag when security context is not enabled 2010-11-26 18:06:04 +01:00
Francis Besset
5e150931c9 [TwigBundle] Fix call to a member function get() on a non-object 2010-11-23 22:04:51 +01:00
Fabien Potencier
a40d317f49 made a slight optimization 2010-11-23 18:44:04 +01:00
Bernhard Schussek
e0aa3f30a8 [Form] Improved FileField to store files in a temporary location in case validation fails 2010-11-23 06:51:30 +01:00
Fabien Potencier
67f6889287 [TwigBundle] added support for Twig_Template instances as argument to include tag 2010-11-21 09:33:35 +01:00
Fabien Potencier
e3551b5f87 [TwigBundle] renamed yaml filter to yaml_encode (to be coherent with json_encode) 2010-11-19 13:30:14 +01:00
Fabien Potencier
a323dd0e93 [TwigBundle] added filters from Code helpers 2010-11-19 10:14:45 +01:00
Fabien Potencier
c881329719 [TwigBundle] removed unneeded use statement 2010-11-19 09:54:52 +01:00
Fabien Potencier
84cf5698c5 [TwigBundle] fixed include tag to reflect the new syntax from Twig 2010-11-19 09:51:12 +01:00
Fabien Potencier
17c500e0f0 [TwigBundle] added a yaml filter 2010-11-19 09:50:32 +01:00
Bernhard Schussek
e0d6aad5f4 [Form][FrameworkBundle][TwigBundle] Introduced class FieldError to wrap form errors 2010-11-19 07:11:29 +01:00
Bernhard Schussek
6176063b30 [TwigBundle] Fixed variable reference in the errors block of the form.twig template 2010-11-19 07:11:20 +01:00
Bernhard Schussek
1bbdb5ec07 [Form][FrameworkBundle][TwigBundle] Refactored the PHP and Twig templating layer
Support for theming in PHP templates has been dropped.

True theming should support theme inheritance, e.g. mytheme <- table <- default.
Currently, the Templating component does not support such inheritance. As the
only purpose of the themes so far was to style field groups with tables or
divs, and because automatic rendering of field groups/forms through the render()
method is discouraged and only recommended for rapid prototyping, themes are
dropped for now.
2010-11-16 22:26:35 +01:00
Jordi Boggiano
aa1b2efb15 [TwigBundle] Base form templates now using div instead of tables 2010-11-15 15:04:56 +01:00
Jordi Boggiano
d45954af07 [Form][TwigBundle] Making sure all field types are rendered with the proper template 2010-11-15 14:54:11 +01:00
Jordi Boggiano
d94c581f42 [TwigBundle] fixed instanceof check to include all FieldGroup like classes 2010-11-12 17:55:30 +01:00
Fabien Potencier
d7d4880a90 [TwigBundle] updated filters for the latest version of Twig 2010-11-07 20:37:51 +01:00
jeff
52ec8752d8 When route_attributes is null an exception is raised. 2010-11-06 14:34:08 +01:00
Fabien Potencier
1e13ecb5f3 [TwigBundle] split the route tag to 2 tags: path and url 2010-11-03 18:15:54 +01:00
IamPersistent
ac8e35549e added initiating template in renderWidget 2010-11-03 15:07:26 +01:00
Fabien Potencier
7e6bddedf9 [TwigBundle] moved Form extension initialization as late as possible
Because

 * it's better for performance (no need to init form templates if there is no forms)
 * right now, it crashes for all renderer except HTML (because the form templates obviously only exist for the HTML renderer)

The only other possible fix would be to force those resources to always use the HTML renderer
2010-10-28 09:50:00 +02:00
Fabien Potencier
bf3659d5bb added an exception when trying to extend a template with a decorator that uses a different renderer (for instance when a Twig template tries to extend a PHP one) 2010-10-21 08:57:31 +02:00
Fabien Potencier
dd7e33af6b [TwigBundle] fixed the include tag to behave like the standard Twig include tag 2010-10-20 14:02:39 +02:00
henrikbjorn
f810723092 Removed the need for having the Security component enabled when using twig. 2010-10-19 21:04:40 +02:00
Fabien Potencier
f216f313e8 added the Security Component and its integration into the MVC framework
Happy birthday symfony!
2010-10-19 13:33:17 +02:00
Kris Wallsmith
f79e23ffb5 Removed all those spaces after @author that were bothering me so… 2010-10-18 16:55:41 +02:00
Fabien Potencier
c1e873d1b0 removed debug code 2010-10-13 07:34:10 +02:00
henrikbjorn
30cf086828 Overrides the default {% include %} token parser since it loads through the right template renderer 2010-10-13 07:24:06 +02:00
ornicar
f667b6928f [TwigBundle] Add a template block to render CollectionField fields 2010-10-09 14:23:19 +02:00
Jordi Boggiano
12479cdd24 [TwigBundle] Simplified some code 2010-10-08 09:56:59 +02:00
Fabien Potencier
2525998f6e replaced form field rendering with plain templates
Documentation available here:

http://docs.symfony-reloaded.org/master/guides/form/
2010-10-05 08:34:33 +02:00
Fabien Potencier
47bc809dc3 [TwigBundle] added tests for trans tag and filter 2010-10-02 09:39:48 +02:00
Fabien Potencier
77125288e7 [TwigBundle] updated nodes for the latest version of Twig 2010-10-02 09:39:29 +02:00
Fabien Potencier
8e654e8f9e [TwigBundle] added the trans filter 2010-10-01 22:20:03 +02:00
Fabien Potencier
68bff2d214 [TwigBundle] fixed trans tags 2010-10-01 22:19:59 +02:00
Fabien Potencier
3696066bfe [TwigBundle] fixed typo 2010-10-01 22:19:54 +02:00
Fabien Potencier
416bd7872e [TwigBundle] optimized calls to helpers 2010-10-01 20:50:31 +02:00
Fabien Potencier
3ce8ad1718 fixed HelpersExtension (removed usage of the magic _view context attribute -- helpers should now work from macros) 2010-10-01 20:30:12 +02:00
Fabien Potencier
eff1bdf50f [TwigBundle] made trans and transchoice tags more flexible
Both tags accept variables now:

    {% trans label %}

    {% transchoice %}
      {{ error }}
    {% endtranschoice %}

Optionally, the with keywords allows to pass the placeholder values:

    {% trans label with vars %}
2010-09-30 19:13:01 +02:00
Fabien Potencier
4297609156 [TwigBundle] moved translator helpers to their own extension (removed usage of the magic _view variable context) 2010-09-30 10:14:58 +02:00
Fabien Potencier
6dc6d4a7d3 [TwigBundle] fixed trans tag 2010-09-29 18:11:25 +02:00
Fabien Potencier
7b9a523a43 [TwigBundle] fixed trans tag 2010-09-29 15:26:39 +02:00
Fabien Potencier
8ad2fd2123 [TwigBundle] renamed Helpers to HelpersExtension 2010-09-29 11:39:23 +02:00
Fabien Potencier
a6dc10c31a changed templating name notation
Old notation: bundle:section:name.format:renderer (where both format and renderer are optional)
New notation: bundle:section:name.format.renderer (where only format is optional)

Valid new template names: Blog:Post:index.php, Blog:Post:index.xml.php

The new notation is more explicit and put all templating engines on the same level (there is no
more the concept of a "default" templating engine).

Even if the notation changed, the semantic has not. So, the logical template name for the above
examples is still 'index'. So, if you use a database loader for instance, the template
name is 'index' and everything else are options.

Upgrading current applications can be easily done by appending .php to each existing template
name reference (in both controllers and templates), and changing :twig to .twig for Twig templates
(for twig templates, you should also add .twig within templates themselves when referencing
another Twig templates).
2010-09-28 08:33:33 +02:00
Fabien Potencier
d6f55c31d1 [TwigBundle] added helpers for translations 2010-09-27 09:45:58 +02:00
Fabien Potencier
d657adbfa2 removed Symfony\Framework
Things have been moved to Symfony\Component\HttpKernel
and Symfony\Bundle\FrameworkBundle

The kernel configuration namespace was removed and merged
with the main web configuration namespace (kernel:config => web:config,
kernel:test => web:test, and kernel:session => web:session):

Before:
<kernel:config charset="UTF-8" error_handler="null" />

<web:config csrf-secret="xxxxxxxxxx">
    <web:router resource="%kernel.root_dir%/config/routing.xml" />
    <web:validation enabled="true" annotations="true" />
</web:config>

After:
<web:config csrf-secret="xxxxxxxxxx" charset="UTF-8" error-handler="null">
    <web:router resource="%kernel.root_dir%/config/routing.xml" />
    <web:validation enabled="true" annotations="true" />
</web:config>

Renamed classes:

Symfony\{Framework => Bundle\FrameworkBundle}\Cache\Cache
Symfony\{Framework => Bundle\FrameworkBundle}\Client
Symfony\{Framework => Bundle\FrameworkBundle}\Debug\EventDispatcher
Symfony\{Framework => Bundle\FrameworkBundle}\Debug\EventDispatcherTraceableInterface
Symfony\{Framework => Bundle\FrameworkBundle}\EventDispatcher
Symfony\{Framework => Component\HttpFoundation}\UniversalClassLoader
Symfony\{Framework => Component\HttpKernel}\Bundle\Bundle
Symfony\{Framework => Component\HttpKernel}\Bundle\BundleInterface
Symfony\{Framework => Component\HttpKernel}\ClassCollectionLoader
Symfony\{Framework => Component\HttpKernel}\Debug\ErrorException
Symfony\{Framework => Component\HttpKernel}\Debug\ErrorHandler
Symfony\{Bundle\FrameworkBundle => Component\HttpKernel}\Debug\ExceptionListener
Symfony\{Framework => Component\HttpKernel}\Kernel
2010-09-17 12:58:24 +02:00
fivestar
8367df1265 [TwigBundle] fixed grammar for render helper. 2010-08-31 07:39:50 +02:00
Fabien Potencier
994a6c36ac changed actions::render() helper method signature 2010-08-30 09:15:54 +02:00
Fabien Potencier
1687831cb7 [TwigBundle] made a small optimization 2010-08-22 15:36:09 +02:00
Fabien Potencier
0319838cdc [TwigBundle] added a flash tag 2010-08-22 15:32:15 +02:00
Fabien Potencier
bf82cf42dd renamed Symfony\Components to Symfony\Component 2010-08-20 23:09:55 +02:00
Fabien Potencier
17bc06a4d2 made some cleanup 2010-08-10 16:13:51 +02:00
Fabien Potencier
9e82497d5b removed BundleInterface::buildContainer() method (extensions are now automatically registered -- or override the getExtensions() method if you do not follow the conventions) 2010-08-10 16:07:44 +02:00
Fabien Potencier
355ed9b5f9 renamed annotation to tag in the DIC 2010-08-05 07:34:53 +02:00
Kris Wallsmith
fa3980f66f Removed some use statements that are no longer needed. 2010-08-04 07:37:12 +02:00
Fabien Potencier
ee2ff39eaf removed @package and @subpackage annotations 2010-08-01 23:06:28 +02:00
Fabien Potencier
1a9f2ca755 updated PHPDoc as the API tool knows about the current use statements 2010-07-27 15:33:28 +02:00
Fabien Potencier
c57cae7600 fixed test configuration and broken tests 2010-07-18 12:16:59 +02:00
fivestar
22f6eec0ef [TwigBundle] fixed class name in twig.xml 2010-07-17 07:55:09 +02:00
Fabien Potencier
2a051b5039 moved DI extensions classes to their own sub-namespace 2010-07-16 11:12:49 +02:00
Fabien Potencier
7796eb213c merged BuilderConfiguration and Builder classes into a new ContainerBuilder class 2010-07-15 15:20:41 +02:00
Fabien Potencier
f26abdfadd fixed phpdoc for DI extensions 2010-07-15 10:27:49 +02:00
Fabien Potencier
0163178f7b changed the BundleInterface::buildContainer() signature 2010-07-13 12:34:33 +02:00
Fabien Potencier
0fbb1b916b cleaned up the DI extension loading mechanism 2010-07-09 16:28:06 +02:00
Fabien Potencier
da9f36ca86 renamed Symfony\Foundation to Symfony\Framework
In existing applications, you need to updated the autoload.php file, the
XXXKernel file and all XXXBundle classes.
2010-07-09 10:25:54 +02:00
Fabien Potencier
6213fdefb9 renamed Symfony\Framework to Symfony\Bundle
For existing Symfony2 applications, references to Symfony\Framework are found
in the main Kernel class (registerBundles() and registerBundleDirs()), and in
all Controller classes. You also need to change the console script.
2010-07-09 10:25:15 +02:00