Commit Graph

4208 Commits

Author SHA1 Message Date
Manuel Kiessling
7e14a56392 [Locale] Removed unneccesary semi-colon 2012-01-16 19:25:01 +01:00
Manuel Kiessling
cacc880929 [Bugfix][Locale] Fixed incomplete Locale data loading
Sublocales like de_CH returned only incomplete results for
getDisplayCountries(), getDisplayLanguages() and getDisplayLocales(),
consisting only of results specific for this sublocale, but without the
results of their respective parent locale
2012-01-16 17:25:42 +01:00
Toni Uebernickel
360f5745cb fix expected return type of MutableAclProvider 2012-01-16 15:24:43 +01:00
Gordon Franke
f3c413d156 add missing class var; add phpdocs 2012-01-16 12:15:36 +01:00
Bernhard Schussek
509c7bfb5b [Validator] Moved Optional and Required constraints to dedicated sub namespace. 2012-01-16 11:30:56 +01:00
Bernhard Schussek
bf5901850a [Validator] Removed @api-tag from Optional and Required constraint, since these two are new. 2012-01-16 11:30:56 +01:00
Bernhard Schussek
6641f3e231 [Validator] Added constraints Optional and Required for the CollectionValidator 2012-01-16 11:30:56 +01:00
Fabien Potencier
5fa0f2d92b merged 2.0 2012-01-16 07:44:08 +01:00
Sebastian Hörl
dd12ff836d CS fix, getConstraints renamed 2012-01-15 13:11:15 +01:00
Sebastian Hörl
09c191136a [Validator] Improved dynamic constraints 2012-01-14 02:24:14 +01:00
Sebastian Hörl
54cb6e458e [Validator] Added dynamic constraints 2012-01-14 02:06:07 +01:00
Fabien Potencier
119a24f016 merged branch makasim/yaml-throw-not-readable (PR #3105)
Commits
-------

7961014 [Yaml][Parser] changes according review
efce640 [Yaml][Parser] throw an exception if not readable

Discussion
----------

[Yaml][Parser] throw an exception if service file not readable.

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #3077
Todo: -

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

by makasim at 2012-01-13T15:49:49Z

 @fabpot done
2012-01-13 22:27:28 +01:00
Kris Wallsmith
d67d419f3c [HttpFoundation] added missing trustProxy condition 2012-01-13 11:05:57 -08:00
Maksim Kotlyar
7961014140 [Yaml][Parser] changes according review 2012-01-13 17:48:38 +02:00
Maksim Kotlyar
efce640a5e [Yaml][Parser] throw an exception if not readable 2012-01-13 10:48:50 +02:00
Fabien Potencier
741859dc47 merged branch canni/user_comparable_interface2 (PR #2927)
Commits
-------

e23d452 Add info about BC Break to CHANGELOG-2.1
d7ffeb5 Add some more tests, and enforce boolean return value of interface implementations.
9d3a49f When method name is `hasUserChanged` the return boolean should be true (to match question semantics) and false when user has not changed, this commits inverts return statements.
c57b528 Add note about `AdvancedUserInterface`.
3682f62 Refactor `isUserChanged` to `hasUserChanged`
56db4a1 Change names to Equatable
680b108 Suggested fixes ;)
9386583 [BC Break][Security] Moved user comparsion logic out of UserInterface As discussed on IRC meetings and in PR #2669 I came up with implementation. This is option2, I think more elegant.

Discussion
----------

[BC Break][Security][Option2] Moved user comparsion logic out of UserInterface

As discussed on IRC meetings and in PR #2669 I came up with implementation.
This is option2, I think more elegant.

BC break: yes
Feature addition: no/feature move
Symfony2 test pass: yes
Symfony2 test written: yes
Todo: decide about naming

[![Build Status](https://secure.travis-ci.org/canni/symfony.png)](http://travis-ci.org/canni/symfony)

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

by schmittjoh at 2011-12-19T19:33:24Z

This looks much better than the previous PR. Thanks!

One thing, we also discussed this on Doctrine, the name "comparable" is used in most programming languages to perform a real compare operation that is ">", "<", or "=". In this case though, we are specifically interested in equality of two objects (we cannot establish a natural order between these objects). Java has no such interface as all objects naturally have an equals() method, .NET uses "Equatable" which looks a bit odd. Not sure if there are better names.

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

by canni at 2011-12-19T19:34:52Z

I think this is best of "both worlds" we have nice full-featured implementation suitable for most, and if someone needs advanced compare logic just implements interface. @stof @schmittjoh, what do you think?

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

by stof at 2011-12-19T19:36:55Z

@canni I already commented on the code, and I agree with @schmittjoh that the naming can be confusing

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

by jmikola at 2011-12-20T17:33:22Z

I don't mean to bikeshed, but I strongly agree with @schmittjoh about implications of "compare". I'm not concerned with the interface name so much as I am with `compareUser()`. Given that this method returns a boolean, I think it's best to prefix it with `is` (e.g. `isSameUser`, `isUserEqualTo`) or `equals` (e.g. `equalsUser`).

In this PR, the Token class is implementing the interface, so I think having "User" in the method name is a good idea. Naturally, if the interface was intended for User classes, we could do without it.

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

by canni at 2011-12-20T19:00:00Z

@jmikola in this PR Token class does not implement any additional interface, and `compareUser` is `private` and used internally. I don't stand still after this names, I'll update PR as soon as some decision about naming will be done.

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

by jmikola at 2011-12-21T02:29:59Z

@canni: My mistake, I got confused between the Token method and interface method, which you've since renamed in canni/symfony@fcfcd1087b.

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

by mvrhov at 2011-12-21T06:09:45Z

hm. Now I'm going to bike shed. Wouldn't the proper function name be hasUserChanged?

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

by stof at 2011-12-21T10:58:38Z

it would probably be bettter. The meaning of ``true`` and ``false`` would then be the opposite of the current ones but this is not an issue IMO as it is a different method

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

by jstout24 at 2011-12-27T18:08:49Z

@canni nice job

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

by fabpot at 2011-12-30T14:59:11Z

The method `isUserChanged()` must be rename. What about `hasUserChanged()` as @mvrhov suggested or `isUserDifferent()`?

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

by canni at 2012-01-02T11:44:05Z

@fabpot done.

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

by fabpot at 2012-01-02T18:13:40Z

The only missing thing I can think of is adding some unit tests.

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

by canni at 2012-01-10T20:16:25Z

@fabpot is there anything more you think that should done in this PR?

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

by stof at 2012-01-10T20:38:46Z

@canni can you rebase your branch ? it conflicts with the current master according to github

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

by canni at 2012-01-10T20:56:55Z

@stof done.

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

by fabpot at 2012-01-12T18:06:00Z

@canni: Can you just add some information in the CHANGELOG and in the UPGRADE file? That's all I need to merge this PR now. Thanks a lot.

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

by canni at 2012-01-12T18:16:32Z

@fabpot done, and no problem :)
2012-01-12 19:26:40 +01:00
Fabien Potencier
02a12b2c5c merged branch kriswallsmith/strpos (PR #3097)
Commits
-------

fe62401 optimized string starts with checks

Discussion
----------

optimized string starts with checks

Doing this with strpos() is slightly faster than substr().

```
Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
```

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

by vicb at 2012-01-11T19:58:27Z

How faster ? even if the string is long and do not contain an occurrence of the sub-string ?
Looks like micro-(not)-optimizations to me.

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

by kriswallsmith at 2012-01-11T20:04:26Z

The difference is about 0.1s when repeated 1M times.

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

by vicb at 2012-01-11T20:08:12Z

% would be better (machine & env independant), what string size, what match offset ?
I personally vote against (`substr` is more meaningful to me and I do not like micro-optims)

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

by kriswallsmith at 2012-01-11T20:12:34Z

I personally consider this a coding standard but don't want to bikeshed here :)

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

by vicb at 2012-01-11T20:28:08Z

I have [tried](https://gist.github.com/1596588) at home.
`strpos ` **is** faster unless you have a very long string, probably because you do not need to create a new string, interesting, thanks for the tip.

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

by Tobion at 2012-01-11T22:40:18Z

I think strpos() is more useful. Say you want to change the string you have to replace 2 variables (the text and the length parameter) when using substr(). It could also introduce bugs when they don't match. With strpos() it's only the text.

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

by robocoder at 2012-01-11T22:43:22Z

alternate micro-optimization that doesn't create a temporary string:
```
strncmp($v, "@", 1) === 0
```

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

by Tobion at 2012-01-11T22:47:12Z

@robocoder probably the fastest solution but needs to be benchmarked
2012-01-12 18:48:45 +01:00
Fabien Potencier
fb3513a50e merged branch kriswallsmith/kernel/unnecessary-regex (PR #3104)
Commits
-------

7f7f82a [HttpKernel] removed unnecessary regex

Discussion
----------

[HttpKernel] removed unnecessary regex

The pattern was also flawed because of the unescaped `.`

```
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
```
2012-01-12 18:47:17 +01:00
Fabien Potencier
c185302c0d merged branch canni/fix_collection_validator (PR #3078)
Commits
-------

7f7c2a7 Add prof-of-concept test, this test will fail without changes in previous commit
253eeba [BugFix][Validator] Fix for PHP incosistent behaviour of ArrayAccess

Discussion
----------

[BugFix][Validator] Fix for PHP incosistent behaviour of ArrayAccess

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #2779
Todo: -

[![Build Status](https://secure.travis-ci.org/canni/symfony.png)](http://travis-ci.org/canni/symfony)

Because PHP function `array_key_exists` is buggy, it works great with native
PHP `ArrayObject` instances, but hand written implementations of `ArrayAccess`
and `Traversable` objects will fail to work with `CollectionValidator`

Tests from second commit are valid use cases, but without this change, they will fail.
2012-01-12 18:45:54 +01:00
Kris Wallsmith
7f7f82a53e [HttpKernel] removed unnecessary regex
The pattern was also flawed because of the unescaped `.`
2012-01-12 09:33:03 -08: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
Fabien Potencier
b9a14f0411 merged 2.0 2012-01-11 15:47:52 +01:00
Fabien Potencier
7ee2f6da75 fixed some phpdoc 2012-01-11 15:46:50 +01:00
Fabien Potencier
f57615b4a4 merged branch kriswallsmith/form/validator-fix (PR #3082)
Commits
-------

aa58330 [Form] fixed flawed condition

Discussion
----------

[Form] fixed flawed condition

The validate() method always returns an object. The test is whether there are violations in that object.

```
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
```

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

by fabpot at 2012-01-10T21:22:10Z

What about removing the if condition altogether?

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

by kriswallsmith at 2012-01-10T21:23:55Z

This way we avoid creating an `ArrayIterator` for no reason.
2012-01-11 08:15:19 +01:00
Fabien Potencier
1b59259c00 merged branch vicb/stopwatch (PR #3088)
Commits
-------

c0ad1ac [HttpKernel] Minor fixes in the Stopwatch

Discussion
----------

[HttpKernel] Minor fixes in the Stopwatch

Not a breakthrough, fixing `'0'` handling at 2 places, some re factoring (fluid interface)
2012-01-11 08:14:28 +01:00
Drak
39f1ecd96d [ClassLoader] Update PSR-0 reference. 2012-01-11 09:27:00 +05:45
Victor Berchet
c0ad1ac170 [HttpKernel] Minor fixes in the Stopwatch 2012-01-10 22:23:16 +01:00
Hugo Hamon
f750e5420e [HttpKernel] removed unused local $event variable in Stopwatch::stopSection() method. 2012-01-10 22:07:40 +01:00
Hugo Hamon
defdac6d0d [DependencyInjection] removed unused private property $parameterBag in ResolveParameterPlaceHoldersPass::process() method. 2012-01-10 22:07:35 +01:00
Hugo Hamon
1ad3d8673b [DependencyInjection] removed unused $compiler local variable in RepeatedPass::process() method. 2012-01-10 22:07:30 +01:00
Hugo Hamon
7088d942ce [DependencyInjection] fixed wrong local variable name in RemoveUnusedDefinitionsPass::process() method. 2012-01-10 22:07:25 +01:00
Hugo Hamon
a7f857da87 [Console] removed unused $position parameter in Shell::autocompleter() method. 2012-01-10 22:07:21 +01:00
Hugo Hamon
ef6297afdb [BrowserKit] removed unused $name variable in CookieJar::allValues() method. 2012-01-10 22:07:07 +01:00
Dariusz Górecki
d7ffeb5844 Add some more tests, and enforce boolean return value of interface implementations. 2012-01-10 21:55:05 +01:00
Dariusz Górecki
9d3a49f065 When method name is hasUserChanged the return boolean should be true
(to match question semantics) and false when user has not changed,
this commits inverts return statements.
2012-01-10 21:55:05 +01:00
Dariusz Górecki
c57b528cca Add note about AdvancedUserInterface. 2012-01-10 21:55:05 +01:00
Dariusz Górecki
3682f62a07 Refactor isUserChanged to hasUserChanged 2012-01-10 21:55:05 +01:00
Dariusz Górecki
56db4a1d26 Change names to Equatable 2012-01-10 21:55:04 +01:00
Dariusz Górecki
680b1086e9 Suggested fixes ;) 2012-01-10 21:55:04 +01:00
Dariusz Górecki
9386583b19 [BC Break][Security] Moved user comparsion logic out of UserInterface
As discussed on IRC meetings and in PR #2669 I came up with implementation.
This is option2, I think more elegant.

BC break: yes
Feature addition: no/feature move
Symfony2 test pass: yes
Symfony2 test written: yes
Todo: feedback needed
2012-01-10 21:54:56 +01:00
Kris Wallsmith
aa58330047 [Form] fixed flawed condition 2012-01-10 09:16:51 -08:00
Dariusz Górecki
253eebad88 [BugFix][Validator] Fix for PHP incosistent behaviour of ArrayAccess
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #2779
Todo: -

Because PHP function `array_key_exists` is buggy, it works great with native
PHP `ArrayObject` instances, but hand written implementations of `ArrayAccess`
and `Traversable` objects will fail to work with `CollectionValidator`
2012-01-10 11:06:00 +01:00
Andrej Hudec
747429341e memcache profiler storage support added
fix CS

fix CS + remove unneeded else

add documentation, change protected methods as private

rename var

throw exception for invalid name, index fix

memcache profiler storage support added, fix CS and minor bugs

fix CS

removed unneeded else

- memcached support added
- improved performance (serialization, index)

updated code to last version of Profiler
2012-01-10 00:33:54 +01:00
Jordi Boggiano
bea7a9c865 [Console] Fix tests on windows 2012-01-09 17:05:16 +01:00
Fabien Potencier
cd77327e9a merged 2.0 2012-01-09 14:01:55 +01:00
Fabien Potencier
caec56fbe3 merged branch inanimatt/2.0 (PR #3068)
Commits
-------

0507840 Prevent parameters from overwriting the template filename.

Discussion
----------

Prevent parameters from overwriting the template filename.

Fixes a potential arbitrary file execution exploit.
2012-01-09 14:01:32 +01:00
Matt Robinson
0507840b67 Prevent parameters from overwriting the template filename.
Fixes a potential arbitrary file execution exploit.
2012-01-09 11:40:00 +00:00
Fabien Potencier
4ad7e0e4dd merged branch Seldaek/console_opts2 (PR #3061)
Commits
-------

c7ab9ba [Console] Allow redefinition of application options descriptions

Discussion
----------

[Console] Allow redefinition of application options descriptions

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes

This allows you to redefine an `InputOption` as long as it keeps the same semantic (same default, same name, same alias, same modes). There are two purposes:

- Modifying the description with a more accurate one
- Making sure the option appears in your commands' help

Concrete example: I often want to provide a verbose version of commands. It's an elegant and very common pattern, but I basically can't document what is going to happen if you do `--verbose` since the base Application already defines `--verbose`. Also the `--verbose` option does not appear when you do `console <command> --help`, which means people probably won't think of using that option.
2012-01-09 12:31:41 +01:00
Fabien Potencier
61975a1b3d [Console] tweaked previous merge 2012-01-09 12:22:03 +01:00
Fabien Potencier
4f8f2d4f47 merged branch Seldaek/console_opts (PR #3060)
Commits
-------

7f7b853 [Console] Format simple arrays nicer

Discussion
----------

[Console] Format simple arrays nicer

Minor cosmetic adjustment for simple (i.e. with sequential numeric keys) arrays
2012-01-09 12:15:01 +01:00
Fabien Potencier
2f0afb2b5a fixed CS 2012-01-09 12:13:49 +01:00
Fabien Potencier
e8d1bd2902 merged branch weaverryan/security-phpdoc (PR #3055)
Commits
-------

8ee9161 [Security] Adding more extensive PHPDoc to UserInterface, AdvancedUserInterface and UserProviderInterface

Discussion
----------

More extensive PHPDoc for Security interfaces

Hey guys!

We've started to get into the habit of documenting interfaces and methods in the official docs. I think these things should be omitted from the documentation entirely, and replaced with a link to API docs that rock (I've started doing this already).

This PR just takes some of the details we have in the docs and pushes them back as PHPDoc. I use `@see`, `<code>` and changed a particular `@throws` to have a FQ class name since there's no `use` statement.

Thanks!

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

by weaverryan at 2012/01/07 20:24:15 -0800

Ok, updated and I think it's clearer now.

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

by fabpot at 2012/01/07 23:29:45 -0800

@weaverryan Great! I think that's a really good idea to document interfaces in the API, that makes a lot of sense.

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

by maastermedia at 2012/01/08 02:10:04 -0800

+1 Symfony API needs that atention also, yes. Thank you.

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

by lsmith77 at 2012/01/08 11:45:04 -0800

@fabpot: but then we should also add a list of interfaces to the API http://screencast.com/t/vu4Tljkri0
2012-01-09 12:10:47 +01:00
Fabien Potencier
ca8dc87940 merged 2.0 2012-01-09 11:51:30 +01:00
Jordi Boggiano
c9129e51fe Fix Console tests on windows 2012-01-09 10:04:20 +01:00
Tobias Schultze
17284937f6 made the assertions in the RequestTest more explicit and improved PHPDoc 2012-01-09 06:33:53 +01:00
Jordi Boggiano
c7ab9ba7ec [Console] Allow redefinition of application options descriptions 2012-01-09 00:42:35 +01:00
Jordi Boggiano
7f7b853d79 [Console] Format simple arrays nicer 2012-01-09 00:03:43 +01:00
Eric Clemmons
85bf553cca GetSetMethodNormalizer uses lcfirst instead of strtolower when computing method names 2012-01-08 13:55:41 -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
Ryan Weaver
8ee9161e6b [Security] Adding more extensive PHPDoc to UserInterface, AdvancedUserInterface and UserProviderInterface 2012-01-07 22:23:05 -06:00
Fabien Potencier
561cde7743 merged branch digitalkaoz/bugfix_2730_v4 (PR #3052)
Commits
-------

9441c46 [DependencyInjection] PhpDumper, fixes #2730

Discussion
----------

[DependencyInjection] PhpDumper, fixes #2730

Hey, this PR fixes #2730, if no parameters are set, the constructor wont get passed a ParameterBag

Bug fix: yes (#2730)
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes

3rd and last try ;) this time i think its all fine
2012-01-07 16:41:16 +01:00
Dariusz Górecki
3702541b5a Add tests 2012-01-07 16:30:46 +01:00
Dariusz Górecki
4f38b14e7d Remove elseif 2012-01-07 15:13:48 +01:00
Dariusz Górecki
3d20e399e9 [Form] Enable empty root form name
BC Break: no
Feature addition: yes
Symfony2 tests pass: yes
Fixes the following issues: #2790
Todo: need more testing

This PR enables usage of empty string as a form name (only at root level).
2012-01-07 15:13:48 +01:00
Christophe Coevoet
9bc41d00d1 [HttpFoundation] Fixed #3053 2012-01-07 14:27:33 +01:00
digitalkaoz
9441c46bb6 [DependencyInjection] PhpDumper, fixes #2730 2012-01-06 21:20:08 +01:00
Fabien Potencier
3e9d937eb8 updated VERSION for 2.0.9 2012-01-06 07:49:25 +01:00
Fabien Potencier
0492290a3b [Console] added a missing method (closes #3043) 2012-01-06 04:12:25 +01:00
Tobias Schultze
daee68a54e fixed typos and unified PHPDoc in the Response class 2012-01-05 23:17:04 +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
stealth35
f4890c24f9 [Translation] Po/MoFileLoader parse plurization rules 2012-01-03 18:44:44 +01:00
Igor Wiedler
83c23ca0be [streaming] Do not set a Transfer-Encoding header of chunked
Apache expects the response to already be in chunked format in that case,
which causes it to not deliver the streamed body.

If no Content-Length is set on the response, web servers will automatically
switch to chunked Transfer-Encoding, and handle the chunking for you.

Nginx does not share the issue that apache has, but will add the Content-
Length header too.
2012-01-02 19:50:39 +01:00
Fabien Potencier
cadf3d4243 [HttpKernel] fixed doubled results for the file profiler (closes #2915) 2012-01-02 12:10:17 +01:00
Fabien Potencier
66a18f3239 [BrowserKit] first attempt at fixing CookieJar (closes #2209) 2011-12-31 16:32:51 +01:00
Fabien Potencier
3d5ecc0478 [HttpKernel] added the path info in the request data collector 2011-12-31 15:51:33 +01:00
Fabien Potencier
e462f7b668 [Templating] simplified PhpEngine as it cannot implements the streaming interface 2011-12-31 14:50:33 +01:00
Fabien Potencier
899e252032 merged branch symfony/streaming (PR #2935)
Commits
-------

887c0e9 moved EngineInterface::stream() to a new StreamingEngineInterface to keep BC with 2.0
473741b added the possibility to change a StreamedResponse callback after its creation
8717d44 moved a test in the constructor
e44b8ba made some cosmetic changes
0038d1b [HttpFoundation] added support for streamed responses

Discussion
----------

[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.

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

by Seldaek at 2011/12/21 06:34:13 -0800

Just an idea: what about exposing flush() to twig? Possibly in a way that it will not call it if the template is not streaming. That way you could always add a flush() after your </head> tag to make sure that goes out as fast as possible, but it wouldn't mess with non-streamed responses. Although it appears flush() doesn't affect output buffers, so I guess it doesn't need anything special.

When you say "ESI is not supported.", that means only the AppCache right? I don't see why this would affect Varnish, but then again as far as I know Varnish will buffer if ESI is used so the benefit of streaming there is non-existent.

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

by cordoval at 2011/12/21 08:04:21 -0800

wonder what the use case is for streaming a response, very interesting.

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

by johnkary at 2011/12/21 08:19:48 -0800

@cordoval Common use cases are present fairly well by this RailsCast video: http://railscasts.com/episodes/266-http-streaming

Essentially it allows faster fetching of web assets (JS, CSS, etc) located in the &lt;head>&lt;/head>, allowing those assets to be fetched as soon as possible before the remainder of the content body is computed and sent to the browser. The end goal is to improve page load speed.

There are other uses cases too like making large body content available quickly to the service consuming it. Think if you were monitoring a live feed of JSON data of newest Twitter comments.

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

by lsmith77 at 2011/12/21 08:54:35 -0800

How does this relate the limitations mentioned in:
http://yehudakatz.com/2010/09/07/automatic-flushing-the-rails-3-1-plan/

Am I right to understand that due to how twig works we are not really streaming the content pieces when we call render(), but instead the entire template with its layout is rendered and only then will we flush? or does it mean that the render call will work its way to the top level layout template and form then on it can send the content until it hits another block, which it then first renders before it continues to send the data?

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

by stof at 2011/12/21 09:02:53 -0800

@lsmith77 this is why the ``stream`` method calls ``display`` in Twig instead of ``render``. ``display`` uses echo to print the output of the template line by line (and blocks are simply method calls in the middle). Look at your compiled templates to see it (the ``doDisplay`` method)
Rendering a template with Twig simply use an output buffer around the rendering.

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

by fabpot at 2011/12/21 09:24:33 -0800

@lsmith77: We don't have the Rails problem thanks to Twig as the order of execution is the right one by default (the layout is executed first); it means that we can have the flush feature without any change to how the core works. As @stof mentioned, we are using `display`, not `render`, so we are streaming your templates for byte one.

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

by fabpot at 2011/12/21 09:36:41 -0800

@Seldaek: yes, I meant ESI with the PHP reverse proxy.

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

by fabpot at 2011/12/21 09:37:34 -0800

@Seldaek: I have `flush()` support for Twig on my todo-list. As you mentioned, It should be trivial to implement.

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

by fzaninotto at 2011/12/21 09:48:18 -0800

How do streaming responses deal with assets that must be called in the head, but are declared in the body?

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

by fabpot at 2011/12/21 09:52:12 -0800

@fzaninotto: What do you mean?

With Twig, your layout is defined with blocks ("holes"). These blocks are overridden by child templates, but evaluated as they are encountered in the layout. So, everything works as expected.

As noted in the commit message, this does not work with PHP templates for the problems mentioned in the Rails post (as the order of execution is not the right one -- the child template is first evaluated and then the layout).

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

by fzaninotto at 2011/12/21 10:07:35 -0800

I was referring to using Assetic. Not sure if this compiles to Twig the same way as javascript and stylesheet blocks placed in the head - and therefore executed in the right way.

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

by fabpot at 2011/12/21 10:34:59 -0800

@Seldaek: I've just added a `flush` tag in Twig 1.5: 1d6dfad4f5

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

by catchamonkey at 2011/12/21 13:29:22 -0800

I'm really happy you've got this into the core, it's a great feature to have! Good work.
2011-12-31 08:12:02 +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
d12f5b202c [Routing] removed trailing slash support for routes that are not available for GET/HEAD methods (as the redirection will always occurs with a GET/HEAD request, closes #2626) 2011-12-30 19:30:23 +01:00
Fabien Potencier
a78437bba9 Revert "merged branch kriswallsmith/security/demeter-fix (PR #2816)"
This reverts commit 76ba2bc7ac, reversing
changes made to 4730f4303b.
2011-12-30 16:05:26 +01:00
Fabien Potencier
466a8b8f48 Merge branch '2.0'
* 2.0:
  [Tests] Skip segfaulting form test
  Rename test file
  [BrowserKit] added missing @return PHPDoc for the Client::submit() method.
  also test PHP 5.3.2, since this is the official lowest supported PHP version
2011-12-30 15:44:05 +01:00
Hugo Hamon
885fa02871 [BrowserKit] added missing @return PHPDoc for the Client::submit() method. 2011-12-29 15:00:40 +01:00
Fabien Potencier
23e04e3acb merged 2.0 2011-12-29 09:22:11 +01:00
mlively
601d462589 [Form] Added getValidators() to Form class 2011-12-28 12:47:11 -08:00
Fabien Potencier
a01eee8536 merged branch ericclemmons/2884-parameterbag-with-spaces (PR #2976)
Commits
-------

85ca8e3 ParameterBag no longer resolves parameters that have spaces.
99011ca Added tests for ParameterBag parameters with spaces

Discussion
----------

[DependencyInjection] Parameters with spaces are not resolved

Bug fix: yes
Feature addition: no
Backwards compatibility break: no (not likely, according to convention)
Symfony2 tests pass: yes
Fixes the following tickets: #2884

`ParameterBag` currently resolves anything between two `%` signs, which creates issues for any parameters in the DIC that are legitimate text.  This PR enforces the [documented parameter convention](http://symfony.com/doc/2.0/book/service_container.html#service-parameters) so that only `%parameters.with.no_spaces%` are resolved.

I was considering using instead `^%([^\w\._-]+)%$`, but felt that was too constricting & could easily introduce issues with existing applications.
2011-12-28 21:36:04 +01:00
Fabien Potencier
cab70f4083 merged 2.0 2011-12-28 20:44:29 +01:00
Fabien Potencier
6c96ccef4f merged branch javiereguiluz/phpdoc-console-component (PR #2978)
Commits
-------

3f2e1b0 [Console] Updated tests to reflect the change from `program` to `application`
2b64944 [Console][Output] Fixed some minor typos and grammatical errors
96997f1 [Console][Input] Added missing PHPDoc and fixed some minor typos and grammatical errors
855b8af [Console][Helper] Added missing PHPDoc and fixed some minor typos and grammatical errors
3ad02bd [Console][Formatter] Added missing PHPDoc @throws and fixed some minor typos and grammatical errors
33e3f11 [Console] Added a missing PHPDoc and replaced `program` by `application`

Discussion
----------

[Console] Fixed and completed PHPDoc

Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes

Fixes the following tickets: -

* Fixed minor typos and grammatical errors
* Added missing PHPDoc for some methods
* Added missing @throws
2011-12-28 20:38:46 +01:00
Javier López
60f845f518 'for' was duplicated 2011-12-28 16:35:20 +00:00
Javier Eguíluz
2b64944fd7 [Console][Output] Fixed some minor typos and grammatical errors 2011-12-28 10:42:15 +01:00
Javier Eguíluz
96997f12d6 [Console][Input] Added missing PHPDoc and fixed some minor typos and grammatical errors 2011-12-28 10:39:14 +01:00
Javier Eguíluz
855b8af776 [Console][Helper] Added missing PHPDoc and fixed some minor typos and grammatical errors 2011-12-28 10:33:49 +01:00
Javier Eguíluz
3ad02bd5f9 [Console][Formatter] Added missing PHPDoc @throws and fixed some minor typos and grammatical errors 2011-12-28 10:29:22 +01:00
Javier Eguíluz
33e3f11f48 [Console] Added a missing PHPDoc and replaced program by application 2011-12-28 10:22:28 +01:00
Eric Clemmons
85ca8e3615 ParameterBag no longer resolves parameters that have spaces.
They must be strictly "%some.parameter%" or similar.
2011-12-27 12:49:22 -08:00
Fabien Potencier
228f3fc540 merged branch webfactory/tolerant_esi_include (PR #2952)
Commits
-------

cae7db0 Be more tolerant and also accept <esi:include ...></esi:include>, also if it is not 100% standards compliant.

Discussion
----------

Be more tolerant and also accept <esi:include ...></esi:include>

I know this is not 100% standards compliant, but:

We need to do some XHTML processing on the output using PHP's DOM extension and the underlying libxml2.

libxml2 seems to be unable to keep the <esi:include /> tag as such and will expand it to ```<esi:include ...></esi:include>```.

Note this has nothing to do with having LIBXML_NOEMPTYTAG set (http://php.net/manual/de/domdocument.savexml.php). Rather it seems to be a problem for libxml that it cannot recognize <esi:include> as an "EMPTY" tag (in the DTD sense) because it is not defined in a standard xhtml1-strict DTD.
2011-12-26 22:30:23 +01:00
Fabien Potencier
cc9eff0bc6 merged 2.0 2011-12-26 21:57:48 +01:00
Ryan Weaver
a9b54dfa4b [HttpFoundation] Adding some additional PHPDoc to ParameterBag 2011-12-26 12:25:02 -06:00
Fabien Potencier
5b4e6190c4 updated VERSION for 2.0.8 2011-12-26 11:56:10 +01:00
lsmith77
6e987307fc added forwards compatibility for the Filesystem component 2011-12-25 14:02:01 +01:00
Drak
79793e442a Coding standards and removing whitespace. 2011-12-24 15:50:47 +05:45
Fabien Potencier
b498138471 merged branch willdurand/filesystem-component (PR #2949)
Commits
-------

4afc6ac Updated CHANGELOG-2.1
3d3239c Added Filesystem Component mention in composer.json
5775a0a Added composer.json
b26ae4a Added README
fbe9507 Added LICENSE
818a332 [Component] Moved Filesystem class to its own component

Discussion
----------

Filesystem component

Related to #2946

William

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

by stof at 2011/12/22 10:58:25 -0800

you need to add the new component in the ``replace``  section of the main composer.json, and you also need to add it as a dependency for FrameworkBundle as it defines a service using it.

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

by stof at 2011/12/22 10:59:34 -0800

and you need to update the changelog file

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

by willdurand at 2011/12/22 11:06:04 -0800

@stof thanks. Is it ok ?

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

by stof at 2011/12/22 11:13:31 -0800

mentioning the move only once in the changelog would probably be enough (and it is especially not needed in the FrameworkBundle section IMO) but otherwise it's fine
2011-12-24 09:15:42 +01:00
Matthias Pigulla
cae7db0d19 Be more tolerant and also accept <esi:include ...></esi:include>, also if it is not 100% standards compliant. 2011-12-23 19:02:12 +01:00
Gustavo Piltcher
4a797df90b Oracle issues
minor modifications
2011-12-23 14:13:05 -02:00
Joseph Bielawski
9daa2a6cc8 [Profiler] Add function to get parent token directly 2011-12-23 09:45:13 +01:00
Fabien Potencier
d635be4e20 fixed merge 2011-12-23 09:21:58 +01:00
Fabien Potencier
5b2bc7d7f9 merged 2.0 2011-12-23 08:57:06 +01:00
Fabien Potencier
74cfd04504 [Security] made the logout path check configurable 2011-12-23 08:28:15 +01:00
William DURAND
5775a0a24a Added composer.json 2011-12-22 19:44:28 +01:00
William DURAND
b26ae4aac3 Added README 2011-12-22 19:43:09 +01:00
William DURAND
fbe950721b Added LICENSE 2011-12-22 19:42:52 +01:00
William DURAND
818a3321c0 [Component] Moved Filesystem class to its own component 2011-12-22 19:36:46 +01:00
Fabien Potencier
473741b9db added the possibility to change a StreamedResponse callback after its creation 2011-12-22 07:58:59 +01:00
Kris Wallsmith
1b4aaa2c8e [HttpFoundation] fixed ApacheRequest
Pathinfo was incorrect when using mod_rewrite.
Added better test coverage.
2011-12-21 13:57:56 -08:00
Fabien Potencier
8717d4425e moved a test in the constructor 2011-12-21 18:53:18 +01:00
Fabien Potencier
e44b8ba521 made some cosmetic changes 2011-12-21 18:34:44 +01:00
Marek Kalnik
8235848b5b [HttpFoundation][File] Add flv file default extension 2011-12-21 16:18:42 +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
7ea9c5b92a merged branch stloyd/missingClientTransformer (PR #2421)
Commits
-------

49d2685 [Form] Add default validation to TextType field (and related)

Discussion
----------

[Form] Add default transformer to TextType field (and related)

Bug fix: yes&no (?)
Feature addition: yes (?)
BC break: no
Symfony2 tests pass: yes
Fixes the following tickets: #1962.

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

by stloyd at 2011/12/19 03:43:37 -0800

@fabpot ping ;-)

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

by fabpot at 2011/12/19 10:58:20 -0800

Is it really needed? I have a feeling that it enforces unneeded constraints, but I can be wrong of course.

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

by hlecorche at 2011/12/20 02:31:03 -0800

It's needed because with TextType field, and without the ValueToStringTransformer, the user data (when sending the form) can be an array !!!

For example:
- if there is a TextType field
- and if there is a MaxLengthValidator
- and if the user data (when sending the form) is an array
So the exception "Expected argument of type string, array given in src\Symfony\Component\Validator\Constraints\MaxLengthValidator.php at line 40" is thrown
2011-12-21 12:55:51 +01:00
Fabien Potencier
05285e429c merged branch dustin10/cache-clearers (PR #2857)
Commits
-------

3ae976c fixed CS
84ad40d added cache clear hook

Discussion
----------

[Cache][2.1] Added cache clear hook

Allows bundles to hook into the `cache:clear` command by using the `kernel.cache_clearer` tag instead of using the `event_dispatcher` service.

See #1884

Bug fix: No
Feature addition: Yes
Backwards compatibility break: No
Symfony2 tests pass: Yes
Fixes the following tickets: #1884
References the following tickets: #1884

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

by dustin10 at 2011/12/16 11:03:54 -0800

Rebased to squash all commits into one.

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

by lsmith77 at 2011/12/17 05:27:29 -0800

@fabpot: we figured that priorities wouldn't be needed for cleaning .. haven't tested the PR, but conceptually it looks good to me and aside from the priority stuff its modeled after the cache warners.

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

by dustin10 at 2011/12/19 09:46:26 -0800

@fabpot Updated to pass cache dir to `clear` method.

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

by dustin10 at 2011/12/19 10:02:21 -0800

@stof and @fabpot Another thought I just had. Should the `$this->getContainer()->get('cache_clearer')->clear($realCacheDir);` call in the `CacheClearCommand` be done before the warming?

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

by stof at 2011/12/19 10:03:59 -0800

indeed. the clearing should be done before the warming.

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

by dustin10 at 2011/12/19 10:19:28 -0800

Squashed all commits into one. Let me know if there is anything else.

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

by dustin10 at 2011/12/19 10:31:50 -0800

Fixed extra lines.
2011-12-19 19:52:15 +01:00
Dustin Dobervich
3ae976cd5a fixed CS 2011-12-19 12:30:32 -06:00
Dustin Dobervich
84ad40dcc8 added cache clear hook 2011-12-19 12:17:48 -06:00
Fabien Potencier
5d6a7d35b0 merged 2.0 2011-12-18 14:48:17 +01:00
Fabien Potencier
4316595dbb fixed CS 2011-12-18 14:42:59 +01:00
Fabien Potencier
bbec4bb32b merged branch canni/fix_type_hint (PR #2912)
Commits
-------

e417153 [BugFix][Console] Fix type hint for output formatter

Discussion
----------

[BugFix][Console] Fix type hint for OutputFormatter in OutputStream constructors

I consider this as a bug, cause it disables ability to change formatter implementation

BugFix: yes
Feature addition: no
Sysmfony2 test pass: yes

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

by fabpot at 2011/12/18 00:23:05 -0800

It's not a bug fix as existing code that extend these classes will now fail.

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

by stof at 2011/12/18 03:51:38 -0800

@fabpot does the constructor enforces its signature for child classes ? I don't think so.
2011-12-18 14:37:49 +01:00
Fabien Potencier
d08c2ef8b4 removed unused use statements 2011-12-18 14:36:25 +01:00
Fabien Potencier
6504d05804 fixed CS 2011-12-18 14:36:25 +01:00
Fabien Potencier
3f4d718c5b [Console] fixed previous merge 2011-12-18 14:36:20 +01:00
Fabien Potencier
a13d2270ed merged branch andrewtch/plain-commands (PR #2914)
Commits
-------

2181f6c Fixed space
5f98b73 Raw output of commands in app/console list

Discussion
----------

Raw output of commands in app/console list

Breaks compatibility: no
Feature addition: yes
Symfony test pass: yes, with appropriate modifications

Simply, it adds ```--raw``` parameter to ```app/console list``` command. With this key, ```list``` returns simply command names.

This is mainly useful in command completion / embedding, like https://github.com/andrewtch/oh-my-zsh/tree/symfony2-completion/plugins/symfony2 ; I know about the presence of --xml, but in some environments (like shell scripts) parsing XML could be a problem.

This is an unobtrusive feature addition that is not likely to add problems in future.

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

by andrewtch at 2011/12/18 04:09:58 -0800

fixed
2011-12-18 14:28:52 +01:00
Fabien Potencier
997f354d53 tweaked the README files 2011-12-18 14:22:28 +01:00
Andrew Tch
2181f6c8b6 Fixed space 2011-12-18 14:03:17 +02:00
Fabien Potencier
0f2caf1106 merged branch lsmith77/component_readmes (PR #2561)
Commits
-------

1e370d7 typo fix
93d8d44 added some more infos about Config
27efd59 added READMEs for the bridges
34fc866 cosmetic tweaks
d6af3f1 fixed README for Console
6a72b8c added basic README files for all components

Discussion
----------

added basic README files for all components and bridges

heavily based on http://fabien.potencier.org/article/49/what-is-symfony2 and the official Symfony2 documentation

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

by jmikola at 2011/11/03 13:36:07 -0700

Great work. For syntax highlighting on the PHP snippets, you could add "php" after the three backticks.

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

by lsmith77 at 2011/11/03 13:41:29 -0700

done

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

by stealth35 at 2011/11/03 13:49:31 -0700

Nice job, but you also need to add `<?php`

ex :

``` php
<?php
use Symfony\Component\DomCrawler\Crawler;

$crawler = new Crawler();
$crawler->addContent('<html><body><p>Hello World!</p></body></html>');

print $crawler->filter('body > p')->text();
```

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

by lsmith77 at 2011/11/03 13:56:57 -0700

done

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

by ericclemmons at 2011/11/03 19:57:57 -0700

@lsmith77 Well done!  This makes consumption of individual components that much easier, *especially* now that `composer.json` files have been added.

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

by lsmith77 at 2011/11/04 01:18:23 -0700

ok .. fixed the issues you mentioned @fabpot

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

by lsmith77 at 2011/11/11 15:00:27 -0800

@fabpot anything else left? seems like an easy merge .. and imho there is considerable benefit for our efforts to spread the word about the components with this PR merged.

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

by drak at 2011/11/11 18:54:13 -0800

You know, it might be a nice idea to put a link to the documentation for each component if there is some at symfony.com

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

by lsmith77 at 2011/11/12 00:59:14 -0800

i did that in some. but i might have missed a few places.
On 12.11.2011, at 03:54, Drak <reply@reply.github.com> wrote:

> You know, it might be a nice idea to put a link to the documentation for each component if there is some at symfony.com
>
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/symfony/symfony/pull/2561#issuecomment-2715762

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

by breerly at 2011/11/21 10:28:36 -0800

Pretty excited with this.

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

by dbu at 2011/11/24 00:02:50 -0800

is there anything we can help with to make this ready to be merged?

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

by lsmith77 at 2011/12/18 02:39:23 -0800

@fabpot: seriously .. if you are not going to deliver something "better" and don't provide a reason what is wrong with this .. then its beyond frustrating. i obviously do not claim that these README's are perfect (and certainly still no replacement for proper documentation), but I do claim that in their current form they are a radical step forward to potential users of the Symfony2 components.
2011-12-18 12:42:02 +01:00
Andrew Tch
5f98b73e7c Raw output of commands in app/console list 2011-12-18 01:19:10 +02:00
Dariusz Górecki
e417153e49 [BugFix][Console] Fix type hint for output formatter 2011-12-17 22:55:00 +01:00
Dariusz Górecki
cab03344d7 [Console] Enable stderr support
Bug fix: no
Feature addition: yes
BC break: no
Symfony2 test pass: yes, but some tests had to be modified

Now all error messages goes to stdout, we cannot separate error
from normal behaviour, this enables writing to stderr stream,
so scripts ran e.g. from cron, can benefit from this well known concept.

There are 2 much nicer implememntations, but:
1) First requires to break the `@api` tagged interfaces.
2) Second requires rewrite of `execute` command declatarion all commands in bundles.
2011-12-17 18:34:12 +01:00
Fabien Potencier
108cd50ac9 merged branch stloyd/set-cookie-fix (PR #2889)
Commits
-------

5c41ec9 [HttpKernel][Client] Only simple (name=value without any other params) cookies can be stored in same line, so lets add every as standalone to be compliant with rfc6265

Discussion
----------

[HttpKernel][Client] Set cookie fix

Bug fix: yes
Feature addition: no
Backwards compatibility break: no(?)
Symfony2 tests pass: yes
Fixes the following tickets: #2881

Only simple cookies can be stored in same line:

* Used by now (__wrong__): `Set-Cookie: name1=value, name2=value`
* Proper according to RFCs: `Set-Cookie: name1=value; name2=value`

So lets add every as standalone ([next header](http://tools.ietf.org/html/rfc6265#section-3.1)) to be compliant with [RFC6265](http://tools.ietf.org/html/rfc6265). This fixes #2881.
2011-12-17 11:09:03 +01:00
Kris Wallsmith
d7712a3e2a [Process] added ProcessBuilder
This class was copied from Assetic.
2011-12-16 11:17:43 -08:00
Fabien Potencier
aa9b86ed75 [HttpKernel] added the terminate() call to the Client 2011-12-15 19:17:41 +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
Fabien Potencier
2c3672bff8 [HttpKernel] added request and response as arguments to the TerminableInterface::terminate() method 2011-12-15 18:16:29 +01:00
Fabien Potencier
abad85cbc4 merged branch Seldaek/post_response (PR #2791)
Commits
-------

7c2f11f Merge pull request #1 from pminnieur/post_response
9f4391f [HttpKernel] fixed DocBlocks
2a61714 [HttpKernel] added PostResponseEvent dispatching to HttpKernel
915f440 [HttpKernel] removed BC breaks, introduced new TerminableInterface
7efe4bc [HttpKernel] Add Kernel::terminate() and HttpKernel::terminate() for post-response logic

Discussion
----------

[HttpKernel] Add Kernel::terminate() and HttpKernel::terminate() for post-response logic

This came out of a discussion on IRC about doing stuff post-response, and the fact that right now there is no best practice, and it basically requires adding code after the `->send()` call.

It's an attempt at fixing it in an official way. Of course terminate() would need to be called explicitly, and added to the front controllers, but then it offers a standard way for everyone to listen on that event and do things without slowing down the user response.

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

by stof at 2011/12/06 02:41:26 -0800

We discussed it on IRC and I suggested a way to avoid the BC break of the interface: adding a new interface (``TerminableInterface`` or whatever better name you find) containing this method.
HttpKernel, Kernel and HttpCache can then implement it without breaking the existing apps using the component (Kernel and HttpCache would need an instanceof check to see if the inner kernel implements the method)

For Symfony2 users it will mean they have to change their front controller to benefit from the new event of course, but this is easy to do.

Btw, Silex can then be able to use it without *any* change for the end users as it can be done inside ``Application::run()``

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

by pminnieur at 2011/12/06 11:47:03 -0800

@Seldaek: I opened a pull request so that the discussion on IRC is fulfilled and no BC breaks exist: https://github.com/Seldaek/symfony/pull/1/files

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

by fabpot at 2011/12/07 07:59:49 -0800

Any real-world use case for this?

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

by Seldaek at 2011/12/07 08:10:31 -0800

Doing slow stuff after the user got his response back without having to implement a message queue. I believe @pminnieur wanted to use it to send logs to loggly?

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

by pminnieur at 2011/12/07 09:08:41 -0800

Its a good practice to defer code execution without the introduction of a new software layer (like gearman, amqp, whatever tools people use to defer code execution) which may be way too much just for the goal of having fast responses, whatever my code does.

My real world use case which made me miss this feature the first time:

 > I have a calendar with a scheduled Event. For a given period of time, several Event entities will be created, coupled to the scheduled event (the schedule Event just keeps track of `startDate`, `endDate` and the `dateInterval`). Let's say we want this scheduled Event to be on every Monday-Friday, on a weekly basis, for the next 10 years.

This means I have to create `10*52*5` Event entities before I could even think about sending a simple redirect response. If I could defer code execution, I'd only save the scheduled Event, send the redirect response and after that, I create the `10*52*5` entities.

The other use case was loggly, yes. Sending logging data over the wire before the response is send doesn't make sense in my eyes, so it could be deferred after the response is send (this especially sucks if loggly fails and i get a 500 --the frontend/public user is not interested in a working logging facility, he wants his responses).

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

by mvrhov at 2011/12/07 10:07:03 -0800

This would help significantly, but the real problem, that your process is busy and unavailable for the next request, is still there.

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

by fabpot at 2011/12/07 10:15:18 -0800

I think this is the wrong solution for a real problem.

Saying "Its a good practice to defer code execution without the introduction of a new software layer" is just wrong.

It is definitely a good practice to defer code execution, but you should use the right tool for the job.

I'm -1.

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

by pminnieur at 2011/12/07 10:25:44 -0800

It should just give a possibility to put unimportant but heavy lifting code behind the send request with ease. With little effort people could benefit from the usage of `fastcgi_finish_request` without introducing new software, using `register_shutdown_function` or using `__destruct `(which works for simple things, but may act weird with dependencies).

It should not simulate node.js ;-) I agree that the real problem is not solved, but small problems could be solved easily. I personally don't want to setup RabbitMQ or whatever, maintain my crontab or any other software that may allow me to defer code execution.

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

by Seldaek at 2011/12/08 01:08:32 -0800

@fabpot: one could say that on shared hostings it is still useful because they generally don't give you gearman or \*MQs. Anyway I think it'd be nice to really complete the HttpKernel event cycle.

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

by pminnieur at 2011/12/08 01:48:57 -0800

not only on shared hostings, sometimes teams/projects just don't have the resources or knowledge or time to setup such an infrastructure.

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

by videlalvaro at 2011/12/08 01:53:06 -0800

I can say we used `fastcgi_finish_request` quite a lot at poppen with symfony 1.x. It certainly helped us to send data to Graphite, save XHProf runs, send data to RabbitMQ, and so on.

For example we used to connect to RabbitMQ and send the messages _after_ calling `fastcgi_finish_request` so the user never had to wait for stuff like that.

Also keep in mind that if you are using Gearman or RabbitMQ or whatever tool you use to defer code execution… you are not deferring the network connection handling, sending data over the wire and what not. I know this is obvious but is often overlooked.

So it would be nice to have an standard way of doing this.

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

by henrikbjorn at 2011/12/13 01:42:23 -0800

This could have been useful recently while implementing a "Poor mans cronjob" system. The solution was to do a custom Response object and do the stuff after send have been called with a Connection: Close header and ignore_user_abort(); (Yes very ugly)
2011-12-15 17:53:42 +01:00
Joseph Bielawski
49d2685bff [Form] Add default validation to TextType field (and related) 2011-12-15 13:49:39 +01:00
Joseph Bielawski
ed353da164 [Locale][Stub] Fixed CS 2011-12-15 13:03:21 +01:00
Joseph Bielawski
5c41ec9e4f [HttpKernel][Client] Only simple (name=value without any other params) cookies can be stored in same line, so lets add every as standalone to be compliant with rfc6265 2011-12-15 11:35:58 +01:00
Joseph Bielawski
8069ea69dd [Form] Added missing use statements (closes #2880) 2011-12-15 10:01:35 +01:00
Jeremy Mikola
d5a1343c29 [Console] Improve input definition output for Boolean defaults
Previously, Boolean defaults were printed as strings, which lead to true and false being printed as "1" and "", respectively. With this change, they are now printed as "true" and "false".
2011-12-15 01:07:36 -05:00
Fabien Potencier
b7c7ed4791 merged branch lsmith77/serializer_interface (PR #2530)
Commits
-------

0776b50 removed supports(De)Serializiation()
72b9083 SerializerAwareNormalizer now only implements SerializerAwareInterface
97389fa use Serializer specific RuntimeException
cb495fd added additional unit tests for deserialization
967531f fixed various typos from the refactoring
067242d updated serializer tests to use the new interfaces
d811e29 CS fix
351eaa8 require a (de)normalizer inside the (de)normalizable interfaces instead of a serializer
c3d6123 re-added supports(de)normalization()
078f7f3 more typo fixes
c3a711d abstract class children should also implement dernormalization
2a6741c typo fix
d021dc8 refactored encoder handling to use the supports*() methods to determine which encoder handles what format
f8e2787 refactored Normalizer interfaces
58bd0f5 refactored the EncoderInterface
b0daf35 split off an EncoderInterface and NormalizerInterface from SerializerInterface

Discussion
----------

[Serializer] split off an EncoderInterface and NormalizerInterface from SerializerInte

Bug fix: no
Feature addition: no
Backwards compatibility break: yes (but not inside a stable API)
Symfony2 tests pass: ![Build Status](https://secure.travis-ci.org/lsmith77/symfony.png?branch=serializer_interface)
Fixes the following tickets: #2153

The purpose is to make it easier for other implementations that only implement parts of the interface due to different underlying approaches like the JMSSerializerBundle.

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

by schmittjoh at 2011/11/01 03:36:17 -0700

Actually, you can keep the current interface and I will just provide an adapter, sth like the following:

```php
<?php

class SymfonyAdapter implements SymfonyInterface
{
    public function __construct(BundleInterface $serializer) { /* ... */ }
    // symfony serializer methods mapped to bundle methods
}
```
I like to provide an adapter instead of implementing the interface directly since the bundle can be used standalone right now, and I don't want to add a dependency on the component just for the sake of the interface.

However, I do not completely see the purpose of the component. When would someone be recommended to use it? Everything the component does, the bundles does at the same level with the same complexity or simplicity (however you want to view that).

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

by lsmith77 at 2011/11/01 03:40:55 -0700

standalone in what way? you mean even out of the context of Symfony? In that context imho you should ship that code outside of a Bundle.

Regardless, how will that adaptor work? How would you implement methods like ``getEncoder()``? Afaik you can't and this is what this PR is about, splitting the interface to enable people to more finely specify what they provide.

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

by schmittjoh at 2011/11/01 04:03:56 -0700

I would just throw exceptions when something is not supported.

The more important question though is what is the goal of the component in the long-term, i.e. what problems is it supposed to solve, or in which cases should it be used?

Because right now it seems to me - correct me if I'm wrong - that the only purpose is that people don't have to install an extra library. However, that might even be frustrating for users because they need to migrate their code to the bundle as soon as they need to customize the serialization process which you need in 99% of the cases. For deserialization, the situation in the component is even worse. So, if my assessment is correct here (i.e. component to get started fast, if you need more migrate to the bundle), I think it would be better and less painful to have them start with the bundle right away.

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

by lsmith77 at 2011/11/01 04:15:10 -0700

Well then imho it would be better to split the interface.

I think the serializer component is sufficient for many situations and imho its easier to grok. Furthermore the normalizer/encoder concept it can be used in situations where JMSSerializerBundle cannot be used.

And splitting up the interfaces has exactly the goal of reducing the "frustrations" caused by out growing the the component.

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

by schmittjoh at 2011/11/01 04:29:39 -0700

I don't agree, but it's a subjective thing anyway.

So, whatever interface you come up with (preferably as few methods as possible), I will provide an adapter for it.

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

by fabpot at 2011/11/07 08:45:25 -0800

What's the status of this PR?

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

by lsmith77 at 2011/11/07 10:28:14 -0800

from my POV its good to go. but would like a nod from someone else in terms of the naming of the new interfaces

On 07.11.2011, at 17:45, Fabien Potencier <reply@reply.github.com> wrote:

> What's the status of this PR?
>
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/symfony/symfony/pull/2530#issuecomment-2655889

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

by stof at 2011/11/08 11:37:40 -0800

@lsmith77 what about doing the same for the ``NormalizerInterface`` instead of adding a new interface with a confusing name ? The Serializer class could implement ``Normalizer\NormalizerInterface`` by adding the 2 needed methods instead of duplicating part of the interface.

The next step is to refactor the Serializer class so that it choose the encoder and the decoder based on the ``support*`` methods. But this could probably be done in a separate PR.

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

by lsmith77 at 2011/11/08 11:51:27 -0800

yeah .. i wanted to do that once we are in agreement on the encoder stuff. question then is if we should again split off Denormalization. i guess yes.

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

by lsmith77 at 2011/11/08 12:06:34 -0800

ok done ..

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

by lsmith77 at 2011/11/08 12:59:51 -0800

i guess the next big task is to add more tests .. had to fix way too few unit tests with all this shuffling around .. will also help validating the concept. i should also test this out in a production application.

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

by lsmith77 at 2011/11/14 13:27:48 -0800

@ericclemmons can you also have a look at this PR and potentially help me adding tests?

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

by fabpot at 2011/12/07 07:32:06 -0800

@lsmith77: Is it ready to be merged? Should I wait for more unit tests?

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

by lsmith77 at 2011/12/07 07:34:56 -0800

If you merge it I am afraid I might get lazy and not write tests. This is why I changed the topic to WIP. I promise to finish this on the weekend.

Note however I was planning to write the tests for 2.0 and send them via a separate PR.
Once that PR is merged into 2.0 and master. I would then refactor them to work for this PR.
This way both 2.0 and master will have tests.

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

by fabpot at 2011/12/07 07:42:15 -0800

@lsmith77: sounds good. Thanks.

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

by lsmith77 at 2011/12/11 12:02:12 -0800

@fabpot ok i am done from my end.
@schmittjoh would be great if you could look over the final interfaces one time and give your blessing that you will indeed be able to provide implementations for these interfaces inside JMSSerializerBundle (even if just via an adapter)

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

by stof at 2011/12/12 12:43:49 -0800

@schmittjoh can you take a look as requested by @lsmith77 ?

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

by schmittjoh at 2011/12/13 03:33:23 -0800

Are the supports methods necessary? This is what I'm using in the bundle:
https://github.com/schmittjoh/JMSSerializerBundle/blob/master/Serializer/SerializerInterface.php

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

by lsmith77 at 2011/12/13 04:08:49 -0800

@schmittjoh without them determining if something is supported will always require an exception, which is pretty expensive. especially if one iterates over a data structure this can cause a lot of overhead.

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

by schmittjoh at 2011/12/13 04:24:18 -0800

my question was more if you have a real-world use case where this is useful?

On Tue, Dec 13, 2011 at 1:08 PM, Lukas Kahwe Smith <
reply@reply.github.com
> wrote:

> @schmittjoh without them determining if something is supported will always
> require an exception, which is pretty expensive. especially if one iterates
> over a data structure this can cause a lot of overhead.
>
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/symfony/symfony/pull/2530#issuecomment-3122157
>

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

by lsmith77 at 2011/12/13 04:28:08 -0800

yes .. this serializer .. since it traverses the tree and decides what is the current normalizer one by one (aka not via visitors as in your implementation). without the supports*() methods it would need to have the normalizer throw exceptions, but this is not exceptional, its the normal code flow to have to iterate to find the correct normalizer.

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

by schmittjoh at 2011/12/13 04:30:36 -0800

can we split it off into a second interface?

On Tue, Dec 13, 2011 at 1:28 PM, Lukas Kahwe Smith <
reply@reply.github.com
> wrote:

> yes .. this serializer .. since it traverses the tree and decides what is
> the current normalizer one by one (aka not via visitors as in your
> implementation). without the supports*() methods it would need to have the
> normalizer throw exceptions, but this is not exceptional, its the normal
> code flow to have to iterate to find the correct normalizer.
>
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/symfony/symfony/pull/2530#issuecomment-3122315
>

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

by lsmith77 at 2011/12/13 04:33:27 -0800

hmm .. i guess we could .. these methods in a way are implementation specific and are mainly public because its different objects interacting with each other, though for users of the lib they can also be convenient at times.

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

by lsmith77 at 2011/12/14 09:13:53 -0800

ok i reviewed things again and just removed those two methods, since the possibility for these methods to be feasible is too tied to the implementation and for this particular implementation supportsEncoding() and supportsDecoding() are still available.

so all ready to be merged ..

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

by lsmith77 at 2011/12/14 09:15:44 -0800

hmm i realized one thing just now:
cb495fd7a3

that commit should also be included in 2.0 .. i am not sure what the most elegant way is to make that happen ..

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

by fabpot at 2011/12/14 10:10:16 -0800

@lsmith77: commit cb495fd7a3 cannot be cherry picked in 2.0 as is as the tests do not pass:  "Fatal error: Call to undefined method Symfony\Component\Serializer\Serializer::supportsDenormalization() in tests/Symfony/Tests/Component/Serializer/SerializerTest.php on line 150"

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

by lsmith77 at 2011/12/14 10:11:55 -0800

ah of course .. i just removed that method :) .. then never mind .. all is well.
2011-12-14 19:34:07 +01:00
Fabien Potencier
a6cdddd716 merged 2.0 2011-12-14 19:13:35 +01:00
lsmith77
0776b50cf6 removed supports(De)Serializiation() 2011-12-14 18:10:48 +01:00
Fabien Potencier
cfe2640877 merged branch ocubom/fix-absolute-paths-detection (PR #2809)
Commits
-------

600066e [Templating] fixed 'scheme://' not detected as absolute path
e6f2687 [HttpKernel] fixed 'scheme://' not detected as absolute path
b50ac5b [Config] fixed 'scheme://' not detected as absolute path

Discussion
----------

[Config][HttpKernel][Templating] 'scheme://' paths not detected as absolute

Bug fix: yes
Feature addition: no
Backwards compatibility break: no (99%)
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -

The method ```isAbsolutePath``` does not detect URL schemes as absolute. This makes imposible the use of wrappers to access remote files or the use of files (mostly configuration or templates) stored on phar archives (uses the scheme ```phar://``` in the path).

Three classes implement this methods: ```Symfony\Component\Config\FileLocator```, ```Symfony\Component\HttpKernel\Util\Filesystem``` and ```Symfony\Component\Templating\Loader\FilesytemLoader```. All are updated. Also includes a new check  on all related tests (```Symfony\Component\HttpKernel\Util\Filesystem``` lacks of test).
2011-12-13 17:41:54 +01:00
Fabien Potencier
12ea7568a0 merged branch pulzarraider/explode_optimalisation (PR #2782)
Commits
-------

cd24fb8 change explode's limit parameter based on known variable content
b3cc270 minor optimalisations for explode

Discussion
----------

[FrameworkBundle][CssSelector][HttpFoundation][HttpKernel] [Security][Validator] Minor optimizations for "explode" function

Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -

I added limit parameter in some places, where it may be usefull. I did not check the context of what values may have been exploded. So to not break anything, I added +1 to limit parameter.

If you find out that in some places limit (or limit+1) is not important or meaningless, write a comment please and I will fix it.

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

by fabpot at 2011/12/07 06:56:49 -0800

Adding +1 just to be sure to not break anything is clearly something we won't do. What is the benefit of doing that anyway?

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

by pulzarraider at 2011/12/07 13:50:24 -0800

The main idea of making this PR was to notify about some places that may run faster with just adding one parameter to explode function.

If in code is someting like: ```list($a, $b) = explode(':', $s);```
Function ```explode``` will create n-items (depends on ```$s```), but we need in code only the first two items. There is no reason to let ```explode``` create more items in memory that are NEVER used in our code. The limit parameter is there for these situations, so let's use it.

I know that it is microoptimization and may look unimportant, but we are writing a framework - so people expect that code will be as fast as possible without this kind of mistakes.

As I've noticed above, I know that +1 is not ideal solution, but the fastest without debugging the code. I expect that someone (with good knowledge of that code) will look at it and write in comments if variable may contain 1 comma (dot or someting on what is doing the explode) or maybe 2 in some situations or more.

Anyway, +1 will not break anything, because same items are created as it is now, but no unnecessary item is created.

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

by fabpot at 2011/12/07 23:14:59 -0800

I'm +1 for adding the number to avoid problems but I'm -1 on the optimization side of things as it won't optimize anything.

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

by helmer at 2011/12/08 12:46:49 -0800

*.. The main idea of making this PR was to notify about some places that **may** run faster ..*

I am also unsure the optimization is really an optimization, care to benchmark (with meaningful inputs)? As for the limit+1 thing, why would you want to +1 it? The number of ``list`` arguments should always reflect the ``limit`` parameter, no?

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

by pulzarraider at 2011/12/08 23:11:34 -0800

@helmer please try this simple benchmark:

```
<?php

header('Content-Type: text/plain; charset=UTF-8');
define('COUNT', 10000);

$source_string = 'aaaaaaaaaaaaaaaaaaaa:bbbbbbbbbbbbbbbbbbbbb:cccccccccccccccccccccccc:dddddddddddddddddddddd:eeeeeeeeeeeeeeeeeeeeeeeee:fffffffffffffffffffffffffff';

$start = microtime(true);
for ($i = 0; $i < COUNT; $i++) {
    list($a, $b) = explode(':', $source_string);
}
$end = microtime(true)-$start;
echo 'without limit: '.$end."\n";

$start = microtime(true);
for ($i = 0; $i < COUNT; $i++) {
    list($a, $b) = explode(':', $source_string, 2);
}
$end = microtime(true)-$start;
echo 'with limit:    '.$end."\n";
```

My results are:

```
without limit: 0.057228803634644
with limit:    0.028676986694336
```
That is 50% difference (with APC enabled).  Of course the result depends on the length of source string and if it's too short, the difference may be none or very very small. That's why I said, that it **may** run faster and is just a micro optimization.

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

by pulzarraider at 2011/12/08 23:18:12 -0800

@helmer And why +1? It depends on a code:

```
$source_string = 'aaaaaaaaaaaaaaaaaaaa:bbbbbbbbbbbbbbbbbbbbb:cccccccccccccccccccccccc';
list($a, $b) = explode(':', $source_string, 2);
var_dump($a, $b);
```

and

```
$source_string = 'aaaaaaaaaaaaaaaaaaaa:bbbbbbbbbbbbbbbbbbbbb:cccccccccccccccccccccccc';
list($a, $b) = explode(':', $source_string, 3);
var_dump($a, $b);
```
gives different results. That's why the content of the variable must be known.

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

by helmer at 2011/12/09 00:08:28 -0800

@pulzarraider Thanks for the benchmark, seems like a gain enough. Although, we are more likely having a scenario of:
``explode(':', 'a🅱️c')`` vs ``explode(':', 'a🅱️c', 3)`` with a ``COUNT`` of 10, where the difference is not even in microseconds anymore :)

The limit addition alters the behaviour though, ie suddenly you can define a controller [logical name](http://symfony.com/doc/current/book/routing.html#controller-string-syntax) as ´´AcmeBlogBundle:Blog:show:something``, and things go downhill from there on.

All that aside, I'm +1 for setting the limit to the exact number of ``list`` parameters, but certainly not number+1, this is just too wtfy (as you said, this was a safety thing, but I reckon for this PR to be merged it needs to be +0).

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

by drak at 2011/12/09 08:28:58 -0800

Overall `list()` is ugly as it's not very explicit.  Even though it would mean extra lines, it's better to `explode()` then explicitly assign variables:

```
$parts = explode(':', $foo);
$name = $parts[0];
$tel = $parts[1];
```

`list()` is one of those bad relics from the PHP past...

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

by fabpot at 2011/12/11 10:07:47 -0800

@drak: why is `list` not explicit? It is in fact as explicit as the more verbose syntax you propose.

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

by pulzarraider at 2011/12/11 13:08:50 -0800

@drak: I agree with @fabpot. In speech of benchmarks ```list``` is faster then using a helper variable.

@fabpot, @helmer I've changed explode's limit to be correct (without +1) and removed some changes from this PR, where I can't find out what the content of variable may be. Unit tests pass, so I think it's ready for merge.
2011-12-13 17:39:32 +01:00
Fabien Potencier
142cef21bb merged 2.0 2011-12-13 16:12:53 +01:00
Fabien Potencier
ec7eec5f35 [DependencyInjection] fixed espacing issue (close #2819) 2011-12-13 15:38:10 +01:00
Fabien Potencier
bf45b22447 merged branch stloyd/profiler_by_method (PR #2824)
Commits
-------

5f22268 [Profiler] Sync with master
1aef4e8 Adds collecting info about request method and allowing searching by it

Discussion
----------

[WebProfiler] Add ability to filter data by request method

Bug fix: no
Feature addition: yes
Backwards compatibility break: yes
Symfony2 tests pass: yes
Fixes the following tickets: #1515

For discussion & description checkout: #1515 & #2279

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

by fabpot at 2011/12/11 10:02:41 -0800

After merging this PR, the toolbar is not displayed anymore for me.

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

by stof at 2011/12/12 14:18:20 -0800

@fabpot the toolbar works for me using this branch
2011-12-13 14:13:16 +01:00
Bart van den Burg
d97d7e93c0 Added a check to see if the type is a string if it's not a FormTypeInterface 2011-12-13 12:27:51 +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
Gustavo Piltcher
81d73bb968 Oracle issues
minor changes on code
2011-12-13 00:38:22 -02:00
jpauli
7fadd089a1 static::$privateField is an OOP non-sense (extending the class is not possible) 2011-12-12 17:52:53 +01:00
Andrej Hudec
cd24fb86a8 change explode's limit parameter based on known variable content 2011-12-11 21:58:35 +01:00
Andrej Hudec
b3cc270450 minor optimalisations for explode 2011-12-11 21:58:30 +01:00
lsmith77
72b9083ca1 SerializerAwareNormalizer now only implements SerializerAwareInterface 2011-12-11 21:18:03 +01:00
lsmith77
97389fa349 use Serializer specific RuntimeException 2011-12-11 21:01:02 +01:00
lsmith77
967531faa5 fixed various typos from the refactoring 2011-12-11 20:53:57 +01:00
Lukas Kahwe Smith
351eaa8506 require a (de)normalizer inside the (de)normalizable interfaces instead of a serializer 2011-12-11 20:03:01 +01:00
Lukas Kahwe Smith
c3d61232c9 re-added supports(de)normalization() 2011-12-11 20:03:01 +01:00
Lukas Kahwe Smith
078f7f3ecd more typo fixes 2011-12-11 20:03:01 +01:00
Lukas Kahwe Smith
c3a711d3f2 abstract class children should also implement dernormalization 2011-12-11 20:03:01 +01:00
Lukas Kahwe Smith
2a6741c288 typo fix 2011-12-11 20:03:01 +01:00
Lukas Kahwe Smith
d021dc82a7 refactored encoder handling to use the supports*() methods to determine which encoder handles what format 2011-12-11 20:03:00 +01:00
Lukas Kahwe Smith
f8e2787224 refactored Normalizer interfaces 2011-12-11 20:03:00 +01:00
Lukas Kahwe Smith
58bd0f5822 refactored the EncoderInterface 2011-12-11 20:03:00 +01:00
Lukas Kahwe Smith
b0daf3516f split off an EncoderInterface and NormalizerInterface from SerializerInterface 2011-12-11 20:03:00 +01:00
Bart van den Burg
45bba7b7be Added a hint about a possible cause for why no mime type guesser is be available 2011-12-11 19:59:22 +01:00
Fabien Potencier
fd12796673 merged 2.0 2011-12-11 18:50:50 +01:00
Fabien Potencier
4bdef75618 merged branch dantleech/filesystem-sprintf-typo-1 (PR #2831)
Commits
-------

84bb6bc [Filesystem] Sprintf typo in exception

Discussion
----------

[Filesystem] Sprintf typo in exception

Bug fix: [yes]
Feature addition: [no]
Backwards compatibility break: [no]
2011-12-11 18:42:00 +01:00
Fabien Potencier
c74f5f245c merged branch stealth35/fix_2735 (PR #2760)
Commits
-------

3759ff0 [Locale] StubNumberFormatter allow to parse 64bit number in 64bit mode

Discussion
----------

[Locale] StubNumberFormatter allow to parse 64bit number in 64bit mode

Bug fix: yes
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: [![Build Status](https://secure.travis-ci.org/stealth35/symfony.png?branch=fix_2735)](http://travis-ci.org/stealth35/symfony)
Fixes the following tickets: #2735

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

by stealth35 at 2011/12/01 06:47:32 -0800

@Seldaek should be better now

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

by stealth35 at 2011/12/02 04:22:42 -0800

@fabpot done

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

by fabpot at 2011/12/02 04:28:24 -0800

Tests do not pas for me (on a Mac):

    1) Symfony\Tests\Component\Locale\Stub\StubNumberFormatterTest::testParseTypeInt64StubWith64BitIntegerInPhp64Bit
    ->parse() TYPE_INT64 does not use true 64 bit integers, using only the 32 bit range.
    Failed asserting that 2147483648 matches expected -2147483648.

    .../tests/Symfony/Tests/Component/Locale/Stub/StubNumberFormatterTest.php:819

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

by stealth35 at 2011/12/02 04:50:20 -0800

@fabpot, could you send me the return of this code

``` php
<?php
$formatter = new \NumberFormatter('en', \NumberFormatter::DECIMAL);

$value = $formatter->parse('2,147,483,648', \NumberFormatter::TYPE_INT64);
var_dump($value);

$value = $formatter->parse('-2,147,483,649', \NumberFormatter::TYPE_INT64);
var_dump($value);
```

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

by fabpot at 2011/12/02 06:06:21 -0800

    int(-2147483648)
    int(2147483647)

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

by stealth35 at 2011/12/02 06:10:28 -0800

It's nosens, but the Stub should follow Intl ... so I fix that

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

by stealth35 at 2011/12/11 08:48:25 -0800

It's OK now
2011-12-11 18:40:34 +01:00
stealth35
3759ff0777 [Locale] StubNumberFormatter allow to parse 64bit number in 64bit mode 2011-12-11 17:45:39 +01:00
DanSync
84bb6bce7f [Filesystem] Sprintf typo in exception
- Is "%" instead of "%s"
2011-12-09 17:49:17 +00:00
Fabien Potencier
ab0b4f3c2c bumped Symfony version to 2.0.8-DEV 2011-12-09 16:15:51 +01:00
Joseph Bielawski
5f2226807c [Profiler] Sync with master 2011-12-09 11:51:29 +01:00
stloyd
1aef4e806b Adds collecting info about request method and allowing searching by it 2011-12-09 10:53:33 +01:00
Kris Wallsmith
41872cd40e [Security] added SecurityContextInterface::getUser()
This changes helps the common use case of fetching the current user and better complies with the Law of Demeter (http://en.wikipedia.org/wiki/Law_of_Demeter).

Before (still works):

    $token = $context->getToken();
    $user = $token ? $token->getUser() : null;

After:

    $user = $context->getUser();
2011-12-08 08:53:01 -08:00
Christophe Coevoet
2c3e9adcd1 [DependencyInjection] Made the reference case insensitive
The container is case insensitive so using capital letters in a reference
made it fail in some cases when checking the dependencies.
Closes #2807
2011-12-08 16:30:50 +01:00
Oscar Cubo Medina
600066eda4 [Templating] fixed 'scheme://' not detected as absolute path 2011-12-08 15:42:21 +01:00
Oscar Cubo Medina
e6f2687107 [HttpKernel] fixed 'scheme://' not detected as absolute path 2011-12-08 15:42:21 +01:00
Oscar Cubo Medina
b50ac5be36 [Config] fixed 'scheme://' not detected as absolute path
This also allows the use of configuration files stored in phar files.
2011-12-08 15:42:21 +01:00
Fabien Potencier
4730f4303b merged 2.0 2011-12-08 15:36:57 +01:00
Fabien Potencier
848f87504d updated VERSION for 2.0.7 2011-12-08 15:17:21 +01:00
Fabien Potencier
2cb6260d07 changed the default XLIFF extension to .xlf instead of .xliff (this is BC and .xliff files are still valid) 2011-12-07 22:39:27 +01:00
Fabien Potencier
b7fd5198ec [Security] fixed cast 2011-12-07 20:44:38 +01:00
Fabien Potencier
acbbe8ac7f [Process] introduced usage of PHP_BINARY (available as of PHP 5.4) 2011-12-07 19:32:30 +01:00
Fabien Potencier
43a6aa9db2 merged branch Seldaek/cookiefix (PR #2698)
Commits
-------

e06cea9 [HttpFoundation] Cookie values should not be restricted

Discussion
----------

[HttpFoundation] Cookie values should not be restricted

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes

The restriction I removed makes no sense IMO because we do not use setrawcookie() to send cookies. setrawcookie() does throw a warning when the cookie value contains incorrect characters, but not setcookie(). The latter will just urlencode() the value so it becomes valid. This is also what is done by `Cookie::__toString`, so this could be used in combination with header() to just send raw cookies that are valid, even with values that are invalid in their decoded form.

PHP urldecodes cookies on input, so it all works fine.
2011-12-07 16:37:58 +01:00
meze
03ed770d35 [Validator] The current class isn't set in execution context when doing validateProperty() 2011-12-07 16:20:32 +01:00
Fabien Potencier
492812b271 merged branch kriswallsmith/security/invalid-user-provider (PR #2789)
Commits
-------

70e9332 added check for invalid user providers

Discussion
----------

[security] added check for invalid user providers

I've added an exception if an invalid user provider is passed into a context listener.

The FOSFacebookBundle configuration has been documented wrong for a long time. This exception prevent users from configuring the security layer incorrectly.

```
Bug fix: no
Feature addition: no
Backwards compatibility break: yes
Symfony2 tests pass: yes
Fixes the following tickets: ~
Todo: ~
```

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

by fabpot at 2011/12/06 00:40:08 -0800

What about doing that in the 2.0 branch?

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

by kriswallsmith at 2011/12/06 03:23:59 -0800

It is possible it will break some applications -- a non-user provider that is not first in the array may never be called.
2011-12-07 08:03:46 +01:00
vagrant
9f4391f9a1 [HttpKernel] fixed DocBlocks 2011-12-06 11:38:33 -08:00
vagrant
2a61714df6 [HttpKernel] added PostResponseEvent dispatching to HttpKernel 2011-12-06 11:18:45 -08:00
vagrant
915f440cad [HttpKernel] removed BC breaks, introduced new TerminableInterface 2011-12-06 10:41:41 -08:00
Jordi Boggiano
7efe4bcb87 [HttpKernel] Add Kernel::terminate() and HttpKernel::terminate() for post-response logic 2011-12-06 11:09:36 +01:00
Fabien Potencier
7e2ca4ad93 merged branch jmikola/master-DependencyInjectionExceptions (PR #2786)
Commits
-------

da0773c Note DependencyInjection exception changes in the 2.1 changelog
9a090bc [DependencyInjection] Fix class check and failure message in PhpDumper test
2334596 [DependencyInjection] Use component's SPL classes in dumped service container
3c02ea2 [DependencyInjection] Use exception class for API doc generation
47256ea [DependencyInjection] Make exceptions consistent when ContainerBuilder is frozen
b7300d2 [DependencyInjection] Fix up @throws documentation
123f514 [DependencyInjection] Use component-specific SPL exceptions
cf2ca9b [DependencyInjection] Create additional SPL exceptions
ba8322e [DependencyInjection] Format base exception classes consistently

Discussion
----------

[DependencyInjection] Refactor usage of SPL exceptions

```
Bug fix: no
Feature addition: no
Backwards compatibility break: yes
Symfony2 tests pass: yes
Fixes the following tickets: -
```

This was something discussed on the mailing list recently and a topic at the last IRC meeting. The DependencyInjection component was what I had in mind while discussing this with @lsmith a few weeks ago, as I found that it already had some local SPL exceptions, which weren't being used directly (only as base classes for the compiler exceptions). This PR replaces uses of core SPL exceptions with the component's equivalents. I've listed it as BC-breaking to be safe, but I don't think it should cause any trouble, since the new exceptions are sub-classes of those originally used.

I purposely avoided changing the exceptions in the dumped PHP container. If we agree that's worth doing, it would be a trivial addition to the PR.

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

by jmikola at 2011/12/04 22:38:47 -0800

One question I came across while implementing this PR: the doc blocks in ContainerInterface reference InvalidArgumentException (actually the component's local SPL equivalent), but there is no practical need for that class to be used in the file. How will the API doc generator handle this? Do we need to change the doc block reference to the full class path?

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

by fabpot at 2011/12/05 01:20:31 -0800

Why have you not replaced the exception in the dumped container code? I don't see any drawback.

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

by stof at 2011/12/05 03:39:25 -0800

it would even be better to be consistent in the generated code

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

by jmikola at 2011/12/05 09:48:05 -0800

I'll update the exceptions in the dumped container code as well. Thanks for the feedback.

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

by jmikola at 2011/12/05 10:41:21 -0800

Ok, this should be ready to review and merge. Tests needed some updating, but they still pass.
2011-12-06 09:42:14 +01:00
Kris Wallsmith
70e93329bf added check for invalid user providers 2011-12-05 16:26:33 -08:00
Jeremy Mikola
2334596d2b [DependencyInjection] Use component's SPL classes in dumped service container 2011-12-05 10:04:50 -08:00
Jeremy Mikola
3c02ea220c [DependencyInjection] Use exception class for API doc generation
The API doc generator needs a use statement to properly reference the component's own InvalidArgumentException class.
2011-12-05 09:52:25 -08:00
Fabien Potencier
30262878f0 merged branch jmikola/2.0-LoaderResolverInterface (PR #2785)
Commits
-------

7c1cbb9 [Config] Use LoaderResolverInterface for type-hinting
48b084e fixed typo
8ad94fb merged branch hhamon/doctrine_bridge_cs (PR #2775)
240796e [Bridge] [Doctrine] fixed coding conventions.
7cfc392 check for session before trying to authentication details
648fae7 merged branch proofek/domcrawlerform-radiodisabled (PR #2768)
3976b7a [DoctrineBridge] fixed CS
9a04783 merged branch beberlei/SecurityEntityRepositoryIdentifierFix (PR #2765)
3c83b89 [DoctrineBridge] Catch user-error when the identifier is not serialized with the User entity.
36c7d03 Fixed GH-2720 - Fix disabled atrribute handling for radio form elements

Discussion
----------

[Config] Use LoaderResolverInterface for type-hinting

```
Bug fix: no
Feature addition: no
Backwards compatibility break: yes
Symfony2 tests pass: yes
Fixes the following tickets: -
```

I've listed this as a BC break because we're changing the argument type-hint, but I think it's unlikely to affect anyone.
2011-12-05 10:21:19 +01:00
Jeremy Mikola
47256ea76f [DependencyInjection] Make exceptions consistent when ContainerBuilder is frozen
Some methods previously threw LogicExceptions when the ContainerBuilder was frozen. Using BadMethodCallException (a descendant of LogicException) in all cases improves consistency and preserves BC.
2011-12-04 22:21:11 -08:00
Jeremy Mikola
b7300d2e07 [DependencyInjection] Fix up @throws documentation 2011-12-04 22:21:11 -08:00
Jeremy Mikola
123f514e06 [DependencyInjection] Use component-specific SPL exceptions
This replaces existing use of core SPL exceptions with the equivalent classes defined within the component. Although method documentation has been changed, this change should be BC since the component-specific SPL exceptions extend their core counterpart.

This commit purposely omits any changes to the PhpDumper, which throws several core SPL exceptions.
2011-12-04 22:21:11 -08:00
Jeremy Mikola
cf2ca9b196 [DependencyInjection] Create additional SPL exceptions 2011-12-04 22:17:41 -08:00
Jeremy Mikola
ba8322e106 [DependencyInjection] Format base exception classes consistently 2011-12-04 22:17:41 -08:00
Jeremy Mikola
7c1cbb9f37 [Config] Use LoaderResolverInterface for type-hinting 2011-12-04 22:14:25 -08:00
Matt Lehner
7cfc3923b6 check for session before trying to authentication details 2011-12-02 13:32:26 +01:00
Fabien Potencier
648fae7746 merged branch proofek/domcrawlerform-radiodisabled (PR #2768)
Commits
-------

36c7d03 Fixed GH-2720 - Fix disabled atrribute handling for radio form elements

Discussion
----------

Fixed GH-2720 - Fix disabled atrribute handling for radio form elements

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: - GH-2720

I wasn't really sure about the correct approach. This one is very minimalistic and following the existing concept of not duplicating nodes of the same name, but only storing multiple values for the same node. If you think that should be changed, let me know. Hints appreciated.

Thanks
2011-12-02 13:26:19 +01:00
Gustavo Piltcher
2316b21952 Oracle issues 2011-12-01 13:42:21 -02:00
Gustavo Piltcher
315bfc472a just update 2011-12-01 13:33:03 -02:00
Fabien Potencier
8a4f9ea512 merged 2.0 2011-12-01 15:45:30 +01:00
Fabien Potencier
d6f01df790 merged branch excelwebzone/dev (PR #2706)
Commits
-------

8710a13  Added example to the change log file
c9a2b49  Fixed xml encoder test script, and group `item` tags into an array
a0561e5  Replaced `item` with `*item` when parsing XML string

Discussion
----------

Replaced `item` with `*item` when parsing XML string

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

by fabpot at 2011/11/23 22:14:12 -0800

Tests do not pass:

1) Symfony\Tests\Component\Serializer\Encoder\XmlEncoderTest::testDecode
Failed asserting that two arrays are equal.
--- Expected
+++ Actual
@@ @@
         'key2' => 'val'
-        'A B' => 'bar'
         'Barry' => Array (...)
+        'item' => Array (...)
     )
     'qux' => '1'
 )

.../tests/Symfony/Tests/Component/Serializer/Encoder/XmlEncoderTest.php:173

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

by fabpot at 2011/11/24 22:57:37 -0800

I don't understand the patch anymore. I don't see any use of `*item` in the code.

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

by excelwebzone at 2011/11/24 23:04:07 -0800

I run some testing and you can't use '*item' XML parser reject it. So I modified it to convert it to an array.. Look at the test script change

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

by fabpot at 2011/11/24 23:13:30 -0800

So, you probably need to change the CHANGELOG as well? You should add an example which shows a before/after example.

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

by excelwebzone at 2011/11/24 23:15:51 -0800

Yes, forgot to change that..

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

by fabpot at 2011/11/25 01:27:42 -0800

ping @Seldaek, @lsmith77

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

by Seldaek at 2011/11/25 04:16:43 -0800

There are other meta-names available in the XmlEncoder, @-something for attributes, then there is something happening with a # but I'm not quite sure what. I'm just saying, maybe *item isn't the best name, if it introduces a third metacharacter. Apart from that I'm fine with it.

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

by excelwebzone at 2011/11/25 08:45:31 -0800

Maybe we can rename it to `wildcard` instead

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

by excelwebzone at 2011/11/25 15:12:09 -0800

Any chance we can push this throw?

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

by lsmith77 at 2011/11/27 04:06:25 -0800

here is the old PR #2682
@Seldaek: i think your comment was made for an older version of the patch.

overall I am fine with the change, the Serializer component takes a fairly simple approach. it is also not designed to really produce XML or JSON cleanly from the same data. it will really only be able to output a clean API for one or the other with the same data structure.

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

by excelwebzone at 2011/12/01 06:25:24 -0800

@fabpot can we merge this change
2011-12-01 15:44:03 +01:00
Fabien Potencier
654352f8d1 merged branch pscheit/master (PR #2742)
Commits
-------

63e2a99 [CssSelector] Fixed Issue for XPathExprOr: missing prefix in string conversion

Discussion
----------

[CssSelector] Issue for XPathExprOr: missing prefix in string conversion

Hi there,

I created a small and dumb test for the issue. I looked at the original implementation and i think the problem is, that private properties are used in the parent class for xPathExprOr. so that the prefix cannot be accessd with $this->prefix in XPathExprOr
However I think the distribution for the prefix should be put in the parts of the or-sub-expressions the way it is shown in the test.

Hope this helps.

Best regards
Philipp
2011-12-01 08:46:19 +01:00
Fabien Potencier
c35c321e54 merged branch francisbesset/form_error_message (PR #2748)
Commits
-------

9e6a10a [Form] Added FormError::getMessage() and use it in Form class

Discussion
----------

[Form] Added FormError::getMessage()

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

by ericclemmons at 2011/11/29 18:38:40 -0800

Should this go through the translator, similar to how `field_errors` renders error messages?

> https://github.com/symfony/symfony/blob/master/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig#L253

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

by stof at 2011/11/29 23:11:24 -0800

``getErrorsAsString`` is there for a debugging purpose so injecting the translator in the Form class just for it seems wrong. And the logic used here is exactly what the identity translator does.
2011-12-01 08:39:32 +01:00
Dariusz Górecki
769c17bb95 Throw exceptions in case someone forgot to set method name in call.
Bug fix: yes
Feature add: no
Symfony2 tests pass: yes
Symfony2 tests added: yes

In general without this exception generated by php dumper container class, will cause PHP fatal error, bacause method call will look like this: `$instance->(/* arguments*/);`.
2011-11-30 15:59:17 +01:00
Helmer Aaviksoo
0b5c4b29c2 [Form] Date, Time, DateTimeType forget translation domain 2011-11-30 10:55:10 +02:00
Francis Besset
9e6a10a60e [Form] Added FormError::getMessage() and use it in Form class 2011-11-29 18:26:32 +01:00
pscheit
63e2a993eb [CssSelector] Fixed Issue for XPathExprOr: missing prefix in string conversion 2011-11-28 22:00:26 +01:00
Fabien Potencier
f7fb34ad35 merged branch drak/stopwatch (PR #2734)
Commits
-------

97dd2cc [HttpKernel] Removed unused property.

Discussion
----------

[HttpKernel] Removed unused property.

Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -

Cleaned up unused property.
2011-11-27 15:03:55 +01:00
Drak
97dd2cc860 [HttpKernel] Removed unused property. 2011-11-27 19:28:03 +05:45
Eric Clemmons
7a8e1b3b48 ChoiceType flattens nested Choices when expanded 2011-11-26 17:37:27 -08:00
Sebastian Marek
36c7d03040 Fixed GH-2720 - Fix disabled atrribute handling for radio form elements 2011-11-26 14:07:00 +00:00
excelwebzone
c9a2b49eb7 Fixed xml encoder test script, and group item tags into an array 2011-11-24 09:09:38 -08:00
Fabien Potencier
7b1dda84b9 [HttpKernel] added unit tests for previous merge 2011-11-24 08:39:49 +01:00
Juan M Martínez
61e0bdebf8 [HttpKernel] ControllerResolver arguments reflection for Closure object.
When controller is a Closure ControllerResolver::getArguments tries to
make a ReflectionMethod of the __invoke method. But because it's an
internal function, the parameters method isDefaultValueAvailable will
return always false, even if isOptional return true.
2011-11-24 08:39:37 +01:00
Fabien Potencier
2363748ba2 merged branch canni/failed_login_event (PR #2678)
Commits
-------

09562df Update CHANGELOG for 2.1, describe new auth events
cf09c2d added authentication success/failure events

Discussion
----------

[Security] Implementation of a "failed login" event, replaces: PR #1307

As I have to use this feature I have completed its implementation.

Bugfix: no
Feature addition: yes
Symfopny2 tests pass: yes
Replaces/closes PR: #1307

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

by schmittjoh at 2011/11/18 23:57:56 -0800

Usually, this event is used for the wrong reasons (to customize what happens on authentication failure). Can you move your implementation to the AuthenticationProviderManager instead?

see https://github.com/schmittjoh/symfony/blob/master/src/Symfony/Component/Security/Core/Authentication/AuthenticationProviderManager.php#L103

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

by canni at 2011/11/19 06:00:36 -0800

Good point :) I'll not rewrite yours work, I've cherry-picked yours commits. (BTW you added call to `setEventDispatcher` on `security.authentication.manager` to commit related to some different work ;)

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

by fabpot at 2011/11/22 00:12:19 -0800

The new files are missing the LICENSE header. As far as I can see, @schmittjoh fork has a different license from the Symfony one. This needs to be clarified before I can merge this PR.

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

by schmittjoh at 2011/11/22 01:53:09 -0800

No biggy, MIT is fine here.

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

by canni at 2011/11/22 01:57:51 -0800

@fabpot done

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

by fabpot at 2011/11/22 02:22:47 -0800

@canni: Can you update the CHANGELOG file (to reference the changes and the BC breaks -- like the move of KernelEvents for instance).

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

by canni at 2011/11/22 02:40:33 -0800

@fabpot: no problem & done

PS I haven't realized that namespace change of `SecurityEvents` is actually a BC Break, thx for pointing this.

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

by fabpot at 2011/11/22 03:06:17 -0800

@canni: What about keeping a `SecurityEvents` class in the `Http` namespace that just extends the new one. That way, we don't break BC.

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

by canni at 2011/11/22 03:53:01 -0800

@fabpot: that will force us to remove `final` keyword form one of classes.

Maybe we can add new, not extending class e.g.: `GeneralSecurityEvents` or `AuthenticationEvents`, that way we dont break BC and dont introduce confusion in naming?

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

by canni at 2011/11/22 05:53:15 -0800

@fabpot: I've removed the BC break, and squashed schmittjoh commits, to keep things nice and clear.
2011-11-24 08:31:18 +01:00
Fabien Potencier
94416129a2 removed unused use statements 2011-11-24 07:17:02 +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
excelwebzone
a0561e5dde Replaced item with *item when parsing XML string 2011-11-23 17:40:26 -08:00
Fabien Potencier
a7f7be2309 merged 2.0 2011-11-23 23:28:22 +01:00
Gustavo Piltcher
b20b15bd4c Oracle 10 issues
I've changed Schema.php to not use Restrict on delete/update since
oracle report it as missing keyword. Both restrict and no action on
oracle seems to be redundant and used by default. So the output query
can't use it. I've also changed Schema construct to accept a
SchemaConfig parameter. InitAcl was changed to pass on new Schema a
SchemaConfig generated by SchemaManager, I did that because acl command
was generating names with more than 30 characters and Oracle doesn't
accept, this seems to solve the problem and init:acl works properly.
2011-11-23 19:02:00 -02:00
Jordi Boggiano
c76487ee04 Fix composer.json files to be stricter 2011-11-23 17:51:23 +01:00
Fabien Potencier
3e87fe1d56 merged branch Seldaek/composerfix2 (PR #2701)
Commits
-------

e7215ae Fix composer.json

Discussion
----------

Fix composer.json files

>=2.1 does not include the 2.1.0-dev versions, since those are lesser than 2.1.0 stable, so nothing is really working right now.
2011-11-23 16:37:09 +01:00
Jordi Boggiano
e7215aeb40 Fix composer.json 2011-11-23 16:10:32 +01:00
Jordi Boggiano
e06cea9aaa [HttpFoundation] Cookie values should not be restricted 2011-11-23 11:38:46 +01:00
Fabien Potencier
be09e068c0 fixed bad merge 2011-11-23 11:32:47 +01:00
Fabien Potencier
a1d12324f9 merged 2.0 2011-11-23 11:23:27 +01:00
Fabien Potencier
286ce0ea40 merged branch pulzarraider/proxy_ip_fix (PR #2695)
Commits
-------

11b6156 updated unittest
a931e21 get correct client IP from X-forwarded-for header

Discussion
----------

[HttpFoundation] Get correct client IP when using trusted proxy (Varnish)

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
Note: This is reopened PR #2686 for 2.0 branch.

If using trusted proxy (Varnish, ...) the client IP must be identified from X-Forwarded-For header. The header has de-facto standard format:

X-Forwarded-For : client1, proxy1, proxy2,

where the value is a comma+space separated list of IP addresses, the left-most being the farthest downstream client, and each successive proxy that passed the request adding the IP address where it received the request from. See: http://en.wikipedia.org/wiki/X-Forwarded-For

Function getClientIp should return only one client IP, not a list of all nonimportant IPs as it's now. Similar example can be seen in Cake framework: http://api.cakephp.org/view_source/request-handler-component/#line-477

There are many ways how to chose the first IP from X-Forwarded-For header. Any other faster and more reliable way is welcome.
2011-11-23 11:22:06 +01:00
Andrej Hudec
a931e21284 get correct client IP from X-forwarded-for header 2011-11-22 22:01:07 +01:00
Fabien Potencier
60f8525ae5 merged branch lsmith77/forward_compat (PR #2526)
Commits
-------

b6bf018 tweaked error handling for the forward compatibility
dd606b5 added note about the purpose of this class
c1426ba added locale handling forward compatibility
10eed30 added MessageDataCollector forward compatibility

Discussion
----------

Forward compat

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #2522
2011-11-22 19:39:27 +01:00
Johannes Schmitt
cf09c2db55 added authentication success/failure events 2011-11-22 14:44:41 +01:00
Fabien Potencier
bb025bb904 merged branch hlecorche/valid-form-w3c (PR #2676)
Commits
-------

78e9b2f [Form] Fixed textarea_widget (W3C standards)

Discussion
----------

[Form] Fixed textarea_widget (W3C standards)

Textarea widget included the "pattern" attribute but is not valid by W3C standards.

(See PR 2666 - New PR because rebase inside the 2.0 branch)

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

by fabpot at 2011/11/18 09:01:41 -0800

@hlecorche: Thanks for your work on this issue. Can you update the unit tests to be sure that this case is covered? If you're not comfortable with this, just tell me and I will do it myself

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

by hlecorche at 2011/11/19 02:51:06 -0800

@fabpot: I did'nt commited because I am not sure. I changed the "tests/Symfony/Tests/Component/Form/AbstractLayoutTest.php" file :

    public function testTextarea()
    {
        $form = $this->factory->createNamed('textarea', 'na&me', 'foo&bar', array(
            'property_path' => 'name',
            'pattern' => 'foo',
        ));

        $this->assertWidgetMatchesXpath($form->createView(), array(),
    '/textarea
    [@name="na&me"]
    [not(@pattern)]
    [.="foo&bar"]
    '
        );
    }

Is it correct?
2011-11-22 10:25:58 +01:00
Fabien Potencier
48c0f50fa2 [Form] tweaked an exception message 2011-11-22 10:24:03 +01:00
Fabien Potencier
af2713261d merged branch canni/throw_exception_on_form_name_circulal_ref (PR #2675)
Commits
-------

36cebf0 Fix infinite loop on circullar reference in form factory

Discussion
----------

[BugFix][Form]Throw exception on form name circulal ref

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Closes: #2673

When FormType method `getName()` returns the same value as `getParent()` we're asking about trouble, and land into infinite loop.
2011-11-22 10:21:50 +01:00
Fabien Potencier
a8fd2c4b46 merged 2.0 2011-11-22 10:13:00 +01:00
Fabien Potencier
a8e8008df3 merged branch greg0ire/patch-1 (PR #2604)
Commits
-------

5b30812 See this issue : https://github.com/symfony/symfony/issues/2433

Discussion
----------

See this issue : https://github.com/symfony/symfony/issues/2433

I changed the access speficiers to `protected`, which makes easier to extend this class if one needs to like I did.

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

by greg0ire at 2011/11/10 06:55:12 -0800

Precision on the problem I had : I wanted to use a `CollectionType` and display a collection element attribute as the label for this element. I had no choice but to extend `ResizeFormListener` and `CollectionType`.
2011-11-22 10:10:56 +01:00
Fabien Potencier
7c8d836331 merged branch willdurand/undefined-value-property-path (PR #2266)
Commits
-------

57e1aeb Fixed undefined index notice in readProperty() method (PropertyPath)

Discussion
----------

Fixed undefined index notice in readProperty() method (PropertyPath)

Hi,

For some reasons, I get `notice` errors on `readProperty()` with Propel:

    Notice: Undefined index: 0 in /Users/william/projects/Propel/testProjects/symfony2/vendor/symfony/src/Symfony/Component/Form/Util/PropertyPath.php line 284

The `PropelObjectCollection` implements `ArrayAccess`, the `readProperty()` method does not check if the given `index` exists so the `notice` error is thrown. I suppose to check whether the index exists or not has to be added.

Regards,
William

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

by fabpot at 2011/09/27 23:42:07 -0700

The patch is probably not what we want to do. First, I suppose that you are not creating the propertyPath by hand. If that is the case, we need to understand why the property path does not exist. Then, even if we might want to check the existence of the index, if it does not exist, we should probably throw an exception instead of just ignoring the problem.

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

by willdurand at 2011/09/28 01:14:49 -0700

My bad. This is a Propel bug due to `ArrayObject`. It throws a notice error if the index is not found in `offsetGet()` which is wrong according to the `ArrayAccess` interface. If the index is not found, we have to return `null`.

@fabpot Are you agree with that (for the `null` value) ?

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

by fabpot at 2011/09/28 01:17:09 -0700

My point is that it should never happen under normal circumstances.

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

by willdurand at 2011/09/28 01:23:55 -0700

@fabpot Not sure to get it.

The fact is that it tries to get the value (`getValue()`) of a fresh object, just added to the `collection` when I'm submitting a form with a `CollectionType` and a new entry in it.
I mean it tries to get this new object (not yet persisted, not yet in the collection) in the collection (`getValue()` -> `readProperty()`) which implements `ArrayAccess` but this object cannot be in the collection at this time.

Am I wrong ?

And, without this notice error thrown by Propel, I probably never opened this issue...

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

by willdurand at 2011/09/29 06:40:34 -0700

@fabpot: you can try this example: http://www.propelorm.org/cookbook/symfony2/mastering-symfony2-forms-with-propel.html#manytomany_relations in order to make your own tests. Will it be enough?
As I said, it throws a weird notice for the reasons above.

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

by jaugustin at 2011/10/04 12:58:10 -0700

any news on this ?
@fabpot did you have time to look at the test case ?

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

by cedriclombardot at 2011/11/09 14:29:42 -0800

@fabpot: can we have news about this ?
2011-11-22 09:55:47 +01:00
Drak
667c24d73d [EventDispatcher] Add name property to Events refs #2572
Should be merged/cherry-picked after #2572 closes.
2011-11-22 09:49:57 +01:00
Fabien Potencier
3dc880f02b merged branch tecbot/config_builder (PR #2542)
Commits
-------

fc4e628 [Config] added append to the node builder

Discussion
----------

[Config] added append to the node builder

Bug fix: no
Feature addition: yes
BC break: no
test pass: true

the problem is that i can only append a node if i have an array node, but if the current node is the node builder i can not append a node (and i think the node builder is like a array node).

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

by tecbot at 2011/11/16 23:23:16 -0800

@fabpot: any chance to merge this?
2011-11-22 09:42:26 +01:00
Fabien Potencier
bd5eda38fa merged branch Seldaek/eventdisp (PR #2572)
Commits
-------

fabe818 [EventDispatcher] Add reference to the EventDispatcher on the Event

Discussion
----------

[EventDispatcher] Add reference to the EventDispatcher on the Event

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -

I don't like registering event listeners unless they are really used, it seems wasteful. So I tend to register listeners for the response event in other listeners, only when they will be required. @stof has [brought to my attention](fb243ace83 (commitcomment-696467)) that this may cause issues in Silex or any other situation where event listeners are not lazy loaded, since it creates a circular reference in that case.

With this PR, avoiding the circular reference is possible, without bloating the response listener with unnecessary "do I need to do anything?" code.

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

by schmittjoh at 2011/11/06 05:28:39 -0800

Did you do any benchmarks? It's just a feeling, but registering a listener at runtime might be more expensive than just having it always executed.

Also, I find these dynamic listeners a bit of a code smell. They are not easily testable, and the control flow is harder to track. Besides, you do not take into account subrequests which might happen in between.

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

by Seldaek at 2011/11/06 09:34:27 -0800

I don't see why it would be slower, if it's a commonly fired event yes you blast away the `sorted` listener cache every time you add one, but most of the time those optional listeners are for the response, which is typically not sorted yet when you add the listener, so I don't think there is any overhead.

As for the code smell, of course it's a matter of preference, but I have the opposite view on control flow, I find it weird that listeners are registered when they are not used in the end, while doing it my way I think it's more clear what happens.

For sub-requests, I'm not sure what you mean. In this instance, and in most response listeners I have seen, the sub-requests are always ignored anyway by the listener.

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

by drak at 2011/11/10 06:07:45 -0800

I don't see how loading up the dispatcher with a bunch of callables can be expensive - it's just loading an array basically.

Wouldn't it be better to have a separate `DispatcherAwareEvent extends Event`

    class DispatcherAwareEvent extends Event
    {
        protected $dispatcher;

        public function setDispatcher(EventDispatcher $dispatcher)
        {
            $this->dispatcher = $dispatcher;
        }

        public function getDispatcher()
        {
            return $this->dispatcher;
        }

This can then be used as a base class for what you need `MyEvent extends DispatcherAwareEvent`

       $event = new MyEvent($dispatcher, $foo);
       $dispatcher->dispatch($event);

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

by Seldaek at 2011/11/10 06:18:57 -0800

@drak: Every event is part the event dispatching system and therefore should be aware of the dispatcher imo. It's not like the ContainerAwareInterface which is gluing things that do not especially have to know about the DIC together.

If we do that, then we have to start arguing every time we need the dispatcher in a given event, because the original author did not think it was necessary, and then that will only make it into the next minor version, etc. Not fun at all.

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

by drak at 2011/11/10 06:36:26 -0800

By the way, the event dispatchers looks to be pretty well optimized given the fact that it only sorts listeners if they are called, and then only once.

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

by drak at 2011/11/10 12:33:28 -0800

It just seems weird.  I mean, following on, why isn't the event name a compulsory parameter also? - again, you can say both ways, if you need it, make it part of your custom Event class, or since it's a required param to be able to dispatch an event in the first place, make it part of the base Event class.  All I'm saying it it seems suspicious when it could be achieved a different way.

For example, you could inject the dispatcher into the listener itself and then the event handler could access the dispatcher if it needs:

    class MyListener
    {
        public function __construct(EventDispatcher $eventDispatcher)
        {
            //...
        }

        public function someListener(Event $event)
        {
            //...
        }
    }

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

by stof at 2011/11/10 15:20:07 -0800

@drak The issue when injecting the dispatcher in the listener is described in the issue: circular dependency: you need to create the dispatcher before the listener (as it is injected in it) and when the listener is not lazy-loaded (in Silex for instance), you need to create it before the dispatcher.

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

by drak at 2011/11/10 21:15:45 -0800

Indeed, although it might not unreasonable to expect to create the dispatcher first...  but anyway I'm convinced!

Injecting the dispatcher could lead to some __very interesting possibilities__ as standard.  While we are at it though, we should have a getter and setter for `$name` in the `Event` class and `$event->setName($eventname)` in the `dispatch()` method.  Allowing an event to know it's name is very useful.  It allows a single listener to be registered for multiple names, and even makes the event object reusable. I don't know why $name was removed, it was in the Symfony 1 dispatcher and while the new dispatcher is brilliant from an OO point of view, missing the name as standard is a big shame.

+1 from me.
2011-11-22 09:32:53 +01:00
ondrowan
1dcf74ab70 Fixed small typo in phpdoc. 2011-11-21 21:11:59 +01:00
hlecorche
78e9b2fedb [Form] Fixed textarea_widget (W3C standards) 2011-11-18 17:31:57 +01:00
Dariusz Górecki
36cebf0924 Fix infinite loop on circullar reference in form factory
When `->getName()` returns the same as `getParent()` we're going to infinite loop.
2011-11-18 14:23:22 +01:00
Joseph Rouff
c89d45ba2a Fix cs 2011-11-17 23:14:19 +01:00
Fabien Potencier
c98c2ef5fb merged the two Locale listener hooks (this hack was needed when the Firewall was registered before the Routing; this is not needed anymore) 2011-11-17 14:22:57 +01:00
Fabien Potencier
e886d733fb merged the two Router listener hooks (this hack was needed when the Firewall was registered between those two hooks; this is not needed anymore) 2011-11-17 14:22:57 +01:00
Fabien Potencier
e3655f3a5c changed priorities for kernel.request listeners
The Firewall is now executed after the Router. This was needed to have access
to the locale and other request attributes that are set by the Router. This
change implies that all Firewall specific URLs have proper (empty) routes like
`/login_check` and `/logout`.
2011-11-17 14:22:53 +01:00
Johannes Schmitt
46e5fa5c87 fixed previous merges partially, there still seems to be a problem with the test client 2011-11-17 14:04:01 +01:00
Fabien Potencier
1ae3682bb9 merged branch snc/login-referer (PR #2518)
Commits
-------

f9a65ba Redirect to default_target_path if use_referer is true and the referer is the login_path.

Discussion
----------

Login redirect

Bug fix: no
Feature addition: no
Backwards compatibility break: yes
Symfony2 tests pass: yes

Redirect to default_target_path if use_referer is true and the referer is the login_path.

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

by Seldaek at 2011/10/30 10:52:38 -0700

👍

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

by stealth35 at 2011/10/30 11:04:16 -0700

@snc BC break ?

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

by snc at 2011/10/30 12:11:39 -0700

Well I'm sure it is never intended by a developer to be redirected to the login page after logging in but it could be possible that the controller which displays the login form handles this case, so my change would break it.
2011-11-17 07:41:20 +01:00
Fabien Potencier
12299c4de9 merged branch kriswallsmith/form/checkbox-view (PR #2661)
Commits
-------

79ae3fc [Form] fixed radio and checkbox when data is not bool

Discussion
----------

[Form] fixed checkbox view

The checkbox view was being built based on app data, not client data. This fixes it.

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -

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

by fabpot at 2011/11/16 13:31:09 -0800

`RadioType` suffers from the same problem, no?

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

by kriswallsmith at 2011/11/16 13:32:50 -0800

Yeah, I'll fix that too.

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

by kriswallsmith at 2011/11/16 13:43:29 -0800

Updated to include `RadioType`.
2011-11-17 07:05:47 +01:00
Fabien Potencier
bd708247f0 merged 2.0 2011-11-17 07:00:22 +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
3ef8079b50 bumped Symfony version to 2.0.7-DEV 2011-11-17 06:58:18 +01:00
Kris Wallsmith
79ae3fced9 [Form] fixed radio and checkbox when data is not bool 2011-11-16 13:39:36 -08:00
Fabien Potencier
b55a43813e updated VERSION for 2.0.6 2011-11-16 20:35:49 +01:00
Fabien Potencier
7af5f598d9 merged branch tacker/2.0 (PR #2641)
Commits
-------

8399574 Fixes a small php doc issue of Symfony\Component\Console\Command\Command::setDefinition()

Discussion
----------

Fixes a small php doc issue of Symfony\Component\Console\Command\Command::setDefinition()

Have setDefinition() accept InputDefinition instead of Definition.
2011-11-15 07:59:56 +01:00
jdreesen
67d91f05d4 fixed typo in exception message 2011-11-14 20:16:31 +01:00
Markus Tacker
839957487a Fixes a small php doc issue of Symfony\Component\Console\Command\Command::setDefinition() 2011-11-14 14:56:06 +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
Fabien Potencier
f7c5bf1db2 [HttpKernel] fixed Content-Length header when using ESI tags (closes #2623) 2011-11-14 13:46:20 +01:00
Fabien Potencier
d67fbe9e48 [HttpFoundation] added an exception to MimeTypeGuesser::guess() when no guesser are available (closes #2636) 2011-11-14 13:21:49 +01:00
Fabien Potencier
0462a89562 [Security] fixed HttpUtils::checkRequestPath() to not catch all exceptions (closes #2637) 2011-11-14 13:10:32 +01:00
Drak
9eb0ef5f10 [Transation] Fix grammar.
In English, zero is plural so need to use 'are' - "there are no apples".
English's pluralisation rule is: nplurals=2; plural=n != 1;
2011-11-12 14:30:17 +05:45
Fabien Potencier
c681b68bde Merge branch '2.0'
* 2.0:
  [FrameworkBundle] fixed a unit test
  [Form] Check for normal integers. refs 0427b126c1
  [Form] Replace `an` with `is`
2011-11-12 09:18:01 +01:00
Manuel de Ruiter
462580c06f [Form] Check for normal integers. refs 0427b126c1 2011-11-12 00:58:46 +01:00
Manuel de Ruiter
970e2a2608 [Form] Replace an with is 2011-11-12 00:57:14 +01: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
b8e0f411d7 merged 2.0 2011-11-11 23:22:38 +01:00
Fabien Potencier
fb0fffe6db [Validator] fixed a unit test for PHP 5.4 (closes #2585) 2011-11-11 23:22:12 +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
Fabien Potencier
1940bec31b merged branch igorw/phpunit-ob-level (PR #2617)
Commits
-------

29e12af [TwigBundle] Extract output buffer cleaning to method
ed1a6c2 [TwigBundle] Do not clean output buffering below initial level

Discussion
----------

[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](https://github.com/sebastianbergmann/phpunit/issues/390) of
the PHPUnit tracker.

Closes #2531.

This also affects FOSRestBundle's ExceptionController /cc @lsmith.

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

by fabpot at 2011/11/11 07:33:24 -0800

I have a similar fix locally but I have not merged it yet as it looks a bit dirty (but I've not a better idea yet). Anyway, your PR is better than mine as you've added some unit tests already.
2011-11-11 22:17:55 +01:00
Fabien Potencier
0427b126c1 [Form] fixed previous merge 2011-11-11 22:01:46 +01:00
Fabien Potencier
3922fb839a [Form] simplified previous merge 2011-11-11 21:49:47 +01:00
Fabien Potencier
7475a3924c merged branch ondrowan/2.0 (PR #2614)
Commits
-------

2582fcb Added tests for string fix in DateTimeToArrayTransformer (8351a11286).
8351a11 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

Discussion
----------

Fix for #2609

Second take for fix for #2609, hope it's ok now. Tests are failing without my fix and passing with it.
2011-11-11 21:48:12 +01:00
Joseph Rouff
fb0379d3b7 Fix some CheckStyle violations on Components.
On casts, Control signature etc.
2011-11-11 20:46:32 +01:00
Fabien Potencier
6140869baa Revert "merged branch drak/eventdispatcher_opimization (PR #2597)"
This reverts commit db6fea9fd0, reversing
changes made to 47b09f791b.
2011-11-11 16:28:23 +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
ondrowan
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 2011-11-11 09:58:40 +01:00
Fabien Potencier
6b0e7c8c41 [Translation] removed unneeded methods 2011-11-11 09:02:31 +01:00
Fabien Potencier
db6fea9fd0 merged branch drak/eventdispatcher_opimization (PR #2597)
Commits
-------

0fe8ac6 [EventDispatcher] Removed unused argument.

Discussion
----------

[EventDispatcher] Removed unused parameter in doDispatch().

Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -

Removed unused parameter.

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

by Seldaek at 2011/11/10 02:30:01 -0800

A simple $foo($arg) is faster than call_user_func, fine, but with all the if/else logic here are you sure it is still faster?

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

by drak at 2011/11/10 06:44:41 -0800

call_user_func is inordinately slow, I'll make some benchmarks. The if logic here is pretty, two conditionals for array callables or one conditional for closures/functions.

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

by drak at 2011/11/10 12:45:27 -0800

After doing some benchmarks, there are savings to be made in all cases except when the listener is an instantiated object when it's marginally slower, so I've reverted these changes and made this PR just to remove the unused argument in `doDispatch()`. You can see the benchmark code here: https://gist.github.com/1356129.

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

by drak at 2011/11/10 12:46:55 -0800

This PR is ready for consideration.
2011-11-11 08:31:28 +01:00
Fabien Potencier
45b218e7c4 [Translation] added detection for circular references when adding a fallback catalogue 2011-11-11 08:29:16 +01:00
Drak
0fe8ac6149 [EventDispatcher] Removed unused argument. 2011-11-11 02:25:05 +05:45
stealth35
a245e15434 [DomCrawler] trim URI in getURI 2011-11-10 15:38:28 +01:00
Grégoire Paris
5b30812b26 See this issue : https://github.com/symfony/symfony/issues/2433 2011-11-10 15:38:07 +01:00
Fabien Potencier
47b09f791b merged branch snc/issue-1798-sf21 (PR #2598)
Commits
-------

4d80ebd Remove security token if user was deleted, is disabled or locked to prevent infinite redirect loops to the login path (fixes #1798).

Discussion
----------

[2.1] Fix for issue 1798

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #1798

This is a simplified PR of #2528 for the master branch.
2011-11-10 10:55:51 +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
Fabien Potencier
3c584f5683 merged branch snc/issue-1798 (PR #2528)
Commits
-------

f9befb6 Remove only the security token instead of the session cookie.
348bccb Clear session cookie if user was deleted, is disabled or locked to prevent infinite redirect loops to the login path (fixes #1798).

Discussion
----------

Fix for issue 1798

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes

Clear session cookie if user was deleted, is disabled or locked to prevent infinite redirect loops to the login path (fixes #1798).

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

by snc at 2011/11/01 04:01:49 -0700

@stof I have changed the code so that it only removes the token... do we still need any hook support?

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

by stof at 2011/11/01 04:07:17 -0700

well, the hook is for your own use case but it would be for 2.1 only anyway, not for 2.0

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

by snc at 2011/11/07 15:11:52 -0800

Now that #2414 is merged to 2.1, this could be simplified for the master branch...
2011-11-10 10:54:32 +01:00
H. Westphal
4d80ebd5c8 Remove security token if user was deleted, is disabled or locked to prevent infinite redirect loops to the login path (fixes #1798). 2011-11-10 10:34:33 +01:00
stealth35
56cb7a515b [Translation] add gettext PO and MO Dumper 2011-11-10 00:24:31 +01:00
Fabien Potencier
2d53751e13 merged branch thomasbibb/master (PR #2559)
Commits
-------

269a5e6 Added the ablity to get a requests ContentType

Discussion
----------

Added getContentType

I've added the ability for Symfony\Component\HttpFoundation\Request to return the ContentType from serverBag this uses the $formats array to determine if the requested ContentType is valid.

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

by ericclemmons at 2011/11/03 20:00:51 -0700

Have you considered squashing a couple of your commits?  They seem doubled up.

Trivial, I know, but it will make each commit stand on its own (instead of appearing as a typo correction)

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

by thomasbibb at 2011/11/04 02:02:36 -0700

done.

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

by ericclemmons at 2011/11/04 07:25:20 -0700

You may need to do a `git push -f origin master`.  Check the commits tab to see the duplicate history:

> https://github.com/symfony/symfony/pull/2559/commits

Wheeeee, rebasing is fun!

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

by thomasbibb at 2011/11/04 12:26:06 -0700

There we got thats better :)

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

by ericclemmons at 2011/11/04 12:55:07 -0700

👍  Now let's see if it gets approved by @fabpot :)

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

by thomasbibb at 2011/11/06 03:39:12 -0800

I've removed the space between the method name and the parenthesis.

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

by thomasbibb at 2011/11/06 04:05:15 -0800

done.

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

by fabpot at 2011/11/06 23:44:22 -0800

Can you added some unit tests?
2011-11-09 22:08:42 +01:00
Fabien Potencier
8ca8aef151 merged branch stof/gettext_loader (PR #2412)
Commits
-------

d974a4a Merge pull request #4 from stealth35/test_mo_loader
cf05646 delete useless tests
19f9de9 [Translation] fix gettext tests
965f2bf Merge pull request #3 from stealth35/test_mo_loader
9c2a26d [Translation] add Mo loader tests
9af2342 [Translation] Added the gettext loaders

Discussion
----------

[Translation] Added the gettext loaders

This is the squashed version of the work done by @xaav in #634.

@stealth35 you said you will work on the dumpers. do you have some stuff on it ?

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

by drak at 2011/10/24 19:28:43 -0700

Is there any more progress with this?

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

by stealth35 at 2011/10/25 00:57:19 -0700

I work on the dumpers, but the Po loader is wrong, caus' the Po ressource can be multiline,

     msgid ""
     "Here is an example of how one might continue a very long string\n"
     "for the common case the string represents multi-line output.\n"

http://www.gnu.org/software/gettext/manual/gettext.html#PO-Files

Anyway the Po format is an intermediate format to Mo file, (like .txt to .res file for ICU), IMO we can just support the real gettext format : Mo

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

by stealth35 at 2011/11/03 02:00:24 -0700

@stof The MO Dumper is ready (stealth35/symfony@f2d1d5b4de), should we keep the PO format ?

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

by fabpot at 2011/11/07 08:50:59 -0800

@stealth35: The PO is what people will use for their translations. They will then dump it to MO. So, we need both PO and MO loaders and dumpers.

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

by stealth35 at 2011/11/08 01:25:39 -0800

@fabpot, I'm ready for both dumpers, you can merge this, and I'll open a PR for the dumpers

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

by fabpot at 2011/11/08 22:37:47 -0800

I've just had a look at this PR code again and I see that the unit tests are pretty slim. Is it possible to add some tests for the mo loader?

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

by stealth35 at 2011/11/09 01:15:25 -0800

@fabpot test send to @stof ✌️

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

by stof at 2011/11/09 02:22:55 -0800

and merged in this branch

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

by fabpot at 2011/11/09 02:39:09 -0800

The tests do not pass for me:

    There was 1 error:

    1) Symfony\Tests\Component\Translation\Loader\MoFileLoaderTest::testLoadDoesNothingIfEmpty
    InvalidArgumentException: MO stream content has an invalid format.

    /Users/fabien/work/symfony/git/symfony/src/Symfony/Component/Translation/Loader/MoFileLoader.php:79
    /Users/fabien/work/symfony/git/symfony/src/Symfony/Component/Translation/Loader/MoFileLoader.php:46
    /Users/fabien/work/symfony/git/symfony/tests/Symfony/Tests/Component/Translation/Loader/MoFileLoaderTest.php:34

    --

    There was 1 failure:

    1) Symfony\Tests\Component\Translation\Loader\PoFileLoaderTest::testLoad
    Failed asserting that two arrays are equal.
    --- Expected
    +++ Actual
    @@ @@
     Array (
    -    'foo' => 'bar'
     )

    /Users/fabien/work/symfony/git/symfony/tests/Symfony/Tests/Component/Translation/Loader/PoFileLoaderTest.php:25
2011-11-09 22:00:02 +01:00
stealth35
796c6b2f8d [Locale] add getIcuVersion and getIcuDataVersion to Locale 2011-11-09 09:50:22 +01:00
Fabien Potencier
4f3e7bb698 merged branch canni/enable_validation_groups_callback (PR #2498)
Commits
-------

d08ec5e Add DelegatingValidator tests
e1822e7 Enable dynamic set of validation groups by a callback or Closure

Discussion
----------

[Form][Validator] Enable dynamic set of validation groups based on callback

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Symfony2 tests written for new feature: yes
closes tickets: #2498 #1151

This will allow developer to pass a Closure or a callback array as a Validation groups option of a form. Eg:

```
class ClientType extends AbstarctType
{
// ...
    public function getDefaultOptions(array $options)
    {
        return array(
            'validation_groups' => function(FormInterface $form){
                // return array of validation groups based on submitted user data (data is after transform)
                $data = $form->getData();
                if($data->getType() == Entity\Client::TYPE_PERSON)
                    return array('Default', 'person');
                else
                    return array('Default', 'company');
            },
        );
    }
// ...
}
```

```
class ClientType extends AbstarctType
{
// ...
    public function getDefaultOptions(array $options)
    {
        return array(
            'validation_groups' => array(
                'Acme\\AcmeBundle\\Entity\\Client',
                'determineValidationGroups'
            ),
        );
    }
// ...
}
```

This will make developers life easier !

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

by schmittjoh at 2011/10/27 06:39:56 -0700

Does that work if your ClientType were added to another form type?

e.g.

```php
<?php

class MyComplexType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder->add('client', new ClientType());
    }

    // ...
}
```

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

by canni at 2011/10/27 06:44:33 -0700

This is doing nothing more than injecting array of validation groups, should work, but I have not tested this use case.

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

by canni at 2011/10/28 01:58:26 -0700

PHPUnit output

```
OK, but incomplete or skipped tests!
Tests: 5011, Assertions: 12356, Incomplete: 36, Skipped: 32.
```

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

by canni at 2011/11/02 11:37:47 -0700

Now functionality is complete, test are written, and implementation is clean. :)

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

by stloyd at 2011/11/02 11:50:44 -0700

Can tou `squash` your commits ? Thanks.

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

by canni at 2011/11/02 11:58:41 -0700

Done

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

by fabpot at 2011/11/07 07:51:18 -0800

Can you add some tests for the `DelegatingValidator` class, which is where we can ensure that the new feature actually works as expected?

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

by canni at 2011/11/07 13:53:16 -0800

OK, I've written proof-of-concept tests, also I've squashed few commits to make things clear.
Personally I think this should go straight into 2.0 series, as it do not beak BC, and a feature is really nice to use.

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

by stof at 2011/11/07 14:17:15 -0800

@canni the 2.0 branch is for bug fixes, not for new features. This is the difference between maintenance releases and minor releases.
2011-11-08 09:05:41 +01:00
Fabien Potencier
88718164bf merged branch dbu/fix-routing-exception-doc (PR #2566)
Commits
-------

57040a8 document exceptions on the interfaces, inheritDoc on implementations, use statements instead of fully qualified exception names

Discussion
----------

Fix routing exception doc

Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -

This is only documentation cleanup for the url matcher and generator interfaces as they did not properly reflect the exceptions that are expected to be thrown. when the exceptions are not respected, unexpected behaviour can happen.

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

by dbu at 2011/11/07 00:49:08 -0800

ok, changed that. thought in an interface definition we would not want to "use" exceptions just for doc, but its changed now.

i rebased on the upstream master and got this additional commit about portuguese translations, no idea why this happened. and my local git diff does not show it either. is it creating problems in the pull request or can you still merge?

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

by fabpot at 2011/11/07 01:11:31 -0800

@dbu: Can you squash your commits and remove a commit that is not related to this PR? Thanks a lot.

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

by dbu at 2011/11/07 23:49:37 -0800

ok, done. thanks to you, i learn a lot about git :-)

for the record: i did git rebase --soft  on the commit id before my first commit, then git reset HEAD and git checkout on all the files not related to my changes, then commit again with the consolidated message, then git push --force origin fix-routing-exception-doc
2011-11-08 09:01:25 +01:00
dbu
57040a8703 document exceptions on the interfaces, inheritDoc on implementations, use statements instead of fully qualified exception names 2011-11-08 08:47:17 +01:00
Fabien Potencier
290734353c merged 2.0 2011-11-08 08:38:14 +01:00
Fabien Potencier
318576b3ac merged branch ericclemmons/2295-serializer-normalizable-traversable (PR #2578)
Commits
-------

7346896 Changed Serialized#supportsNormalization to PRIVATE
e851efc Updated SerializerTest with "normalizeTraversable" & "testNormalizeGivesPriorityToInterfaceOverTraversable"
d789f94 Serializer#normalize gives precedence to objects that support normalization
9e6ba9a Added protected Serializer#supportsNormalization

Discussion
----------

[Serializer] `normalize` should use supported normalizer before Traversable

Bug fix: yes
Feature addition: no
Backwards compatibility break: no (discussion needed)
Symfony2 tests pass: yes
Fixes the following tickets: #2295

**Same as PR #2539, except rebased onto `2.0`**

Should I abstract out a `supportsDenormalization` function just for symmetry?
2011-11-08 07:46:27 +01:00
Eric Clemmons
7346896129 Changed Serialized#supportsNormalization to PRIVATE 2011-11-07 19:25:58 -08:00
Eric Clemmons
d789f9424e Serializer#normalize gives precedence to objects that support normalization 2011-11-07 19:25:58 -08:00
Eric Clemmons
9e6ba9ae89 Added protected Serializer#supportsNormalization
This is very useful for cleaning up the logic in Serializer#normalize
and allow easy checking of both the cache & stored normalizers
2011-11-07 19:25:58 -08:00
Jeremy Mikola
57b7daf252 [Security] Fix checkRequestPath doc; closes #2323 2011-11-07 17:36:10 -05:00
Fabien Potencier
8d9ea7c1ce merged branch dpb587/patch-sectok (PR #2414)
Commits
-------

ab9caa0 [Security] Check for request's session before attempting writes.
dabff0e [Security] Support removing tokens from a session.

Discussion
----------

[Security] Support removing tokens from a session.

Currently there is no way to remove a session's security token without invalidating the entire session and all its data (the ContextListener will only update the session if a token is non-null and non-anonymous). This patch fixes that.

I consider this a bug and I found no tests to prove otherwise. Let me know if I'm mistaken. Originally mentioned at https://groups.google.com/d/topic/symfony-devs/ojLvh0WUbfo/discussion

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -

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

by ms937 at 2011/10/24 05:19:21 -0700

This change looks good to me. In fact I'm using similar patch in my app and it works as intended. Also, several other people requested this on the mailing list. Could someone from Symfony team merge this? Thanks.
2011-11-07 23:19:37 +01:00
Dariusz Górecki
e1822e7807 Enable dynamic set of validation groups by a callback or Closure
This will enable developer, to set a callback or a closure as a `'validation_groups'` form option,
this is usefull when we have to determine validation groups based on a client submitted data.
2011-11-07 22:48:01 +01:00
Fabien Potencier
a7296e7c84 [Security] made exceptions thrown by the user checker and the checkAuthentication() method use the hideUserNotFoundExceptions flag 2011-11-07 22:43:16 +01:00
Fabien Potencier
18c6a86291 [HttpKernel] fixed some unit tests 2011-11-07 22:31:58 +01:00
Fabien Potencier
47fca8e0a0 [HttpKernel] fixed file storage for the profiler 2011-11-07 22:01:48 +01:00
Fabien Potencier
5d91849999 merged 2.0 2011-11-07 20:53:25 +01:00
Fabien Potencier
6f05544424 [Console] added an exception when overriding an existing argument (added some unit tests for option and arguments overriding) 2011-11-07 17:22:50 +01:00
Fabien Potencier
6d324a6ba0 [Yaml] Yaml::parse() does not evaluate loaded files as PHP files by default anymore
This has been done to avoid security issues.

To get back the old behavior, call Yaml::enablePhpParsing() first.
2011-11-07 16:43:15 +01:00
Fabien Potencier
046cdce578 merged branch drak/docblocks (PR #2546)
Commits
-------

09e1e60 Grammar changes.
b4d0f4b Grammar changes
a0e62f0 Fix typos.
e6627fb Docblocks.

Discussion
----------

[HttpFoundation] Docblocks.

Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: n/a
Fixes the following tickets: -

Added missing docblocks and type hints.  Improves use with IDE and auto-generated API docs.
2011-11-07 16:25:21 +01:00
Thomas Bibb
269a5e67c6 Added the ablity to get a requests ContentType 2011-11-06 14:22:57 +00:00
Jordi Boggiano
fabe818124 [EventDispatcher] Add reference to the EventDispatcher on the Event 2011-11-06 13:48:47 +01:00
Fabien Potencier
95a1902ea1 [Finder] bypassed some code when possible 2011-11-05 14:34:29 +01:00
Drak
09e1e60d31 Grammar changes. 2011-11-04 15:04:48 +05:45
Lukas Kahwe Smith
1e370d70c5 typo fix 2011-11-04 09:15:42 +01:00
Lukas Kahwe Smith
93d8d44a7d added some more infos about Config 2011-11-04 09:15:32 +01:00
Fabien Potencier
dbba79651a [Yaml] fixed dumper for floats when the locale separator is not a dot 2011-11-04 08:47:39 +01:00
Drak
b4d0f4b4cb Grammar changes 2011-11-04 08:08:11 +05:45
Lukas Kahwe Smith
34fc866b5a cosmetic tweaks 2011-11-03 21:26:29 +01:00
Lukas Kahwe Smith
d6af3f145c fixed README for Console 2011-11-03 21:17:38 +01:00
Lukas Kahwe Smith
6a72b8c6b9 added basic README files for all components
heavily inspired by http://fabien.potencier.org/article/49/what-is-symfony2 and the official Symfony2 documentation
2011-11-03 21:11:40 +01:00
Fabien Potencier
bc80f2169a merged branch igorw/a-user-interface (PR #2555)
Commits
-------

ffa537c replace occurences of "an UserInteface" with "a UserInterface"

Discussion
----------

replace occurences of "an UserInteface" with "a UserInterface"
2011-11-03 18:13:48 +01:00
Igor Wiedler
ffa537cc45 replace occurences of "an UserInteface" with "a UserInterface" 2011-11-03 15:05:48 +01:00
Drak
a0e62f0775 Fix typos. 2011-11-03 11:22:03 +05:45
Drak
e6627fb0ff Docblocks. 2011-11-02 21:27:51 +05:45
Fabien Potencier
c18f5a8d94 merged branch IamPersistent/collection (PR #2416)
Commits
-------

fbd2a0e make suggested changes for default value
c507b1d update variable name to match the option name
b53f000 add the ability to set the form prototype name in CollectionType. this will aid in handling nested collections in forms

Discussion
----------

[Form] Collection

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: [#1324](https://github.com/symfony/symfony/issues/1324)

add the ability to set the form prototype name in CollectionType. this will aid in handling nested collections in forms

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

by IamPersistent at 2011/10/17 02:54:45 -0700

Actually, as an afterthought, I looked over at the issues and this is basically https://github.com/symfony/symfony/issues/1324 just adding an extra option instead of using the prototype option.

@stloyd, my thought was handling the case where someone was "clever" enough to set the 'prototype_name' option to "". But I could be over-thinking :)

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

by stloyd at 2011/10/17 03:00:23 -0700

@IamPersistent IMO if someone is setting this option, he should be aware of that problem, also AFAIK `$$$$` could be *valid* name too ;-)

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

by IamPersistent at 2011/10/17 03:02:14 -0700

@stloyd, I'm fine with changing it, I'll wait to see what everyone else has to say about this request vs using the prototype option for the name in 1324

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

by IamPersistent at 2011/10/17 03:28:49 -0700

@stloyd, @stof, I made the suggested changes, now I suppose, let the debate begin over PR1324 vs this

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

by stloyd at 2011/10/17 03:47:53 -0700

IMO this PR makes changing prototype name in more clean way, so I would prefer this one over that proposed in #1324.
2011-11-02 14:50:07 +01:00
Fabien Potencier
165b08986b merged branch mrtorrent/use_parse_error_code_in_stubnumberformatter (PR #2521)
Commits
-------

89cd64a Set error code when number cannot be parsed. Fixes #2389

Discussion
----------

Set error code when number cannot be parsed in StubNumberFormatter

The stub implementation of NumberFormatter never sets an error code and instead always returns the "no-error" code. This causes unexpected results when a transformer gives it bad arguments, such as transforming the input value to boolean false and causing exceptions further down the line, as in #2389.

Instead, it should set an error code when appropriate and return it when requested so that a TransformationFailedException can be raised and the input value left unaltered.

There may be other instances where an error should be set. This covers the common use case of non-numeric input.

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #2389
2011-11-02 14:36:52 +01:00
Fabien Potencier
2e90a813a4 merged branch mrtorrent/integer_transformer_cast_fix (PR #2520)
Commits
-------

c9d05d7 Let NumberFormatter handle integer type casting

Discussion
----------

Let NumberFormatter handle integer type casting

The integer to localised string transformer is currently casting everything it gets to an integer, even if it is not a number. This responsibility should be passed off to NumberFormatter.

Partially addresses #2389 by not mistakenly typecasting a boolean false into an integer 0

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

by mrtorrent at 2011/10/30 15:04:28 -0700

Apologies, forgot the template:

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #2389 (partial)
2011-11-02 14:36:23 +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
d1783adaef updated VERSION for 2.0.5 2011-11-02 12:40:01 +01:00
Thomas Adam
fc4e62822c [Config] added append to the node builder 2011-11-02 10:59:34 +01:00
Fabien Potencier
fd380e37a9 merged 2.0 2011-11-01 20:19:25 +01:00
David Soria Parra
c5e2defe5f Fix ternary operator usage in RequestMatcher::checkIpv6() 2011-11-01 18:50:28 +01:00
Fabien Potencier
04a1deace0 updated CHANGELOG for 2.1 2011-11-01 15:30:43 +01:00
Fabien Potencier
67bb80f526 merged branch benjamindulau/type_validator (PR #2532)
Commits
-------

05a4e9d [Validators][Type] Added support for ctype_* functions + tests

Discussion
----------

[Validators][Type] Added support for ctype_* functions + tests

Bug fix: no
Feature addition: yes
Backwards compatibility break: yes
Symfony2 tests pass: yes
Fixes the following tickets: -

Not sure if the ctype_* functions support should be included in the AssertTypeValidator or in a dedicated one.
What do you think ?
2011-11-01 15:28:13 +01:00
Fabien Potencier
0e73b114a1 merged branch stof/serialize_resource (PR #2529)
Commits
-------

cbd0c3c [Config] Implemented Serializable on resources

Discussion
----------

[Config] Implemented Serializable on resources

bug fix: no
feature addition: no
BC break: not really. you simply need to clear your cache in debug mode
test passes: yes

Serializing private variables without implementing Serializable uses far more space as it prepend the fully qualified class name before the name of each property. This change allows keeping the meta file smaller.
2011-11-01 15:27:25 +01:00
Benjamin Eberlei
149bdb962b Enhance error messages with regard to form type properties. 2011-11-01 14:16:02 +01:00
Benjamin Dulau
05a4e9d386 [Validators][Type] Added support for ctype_* functions + tests 2011-11-01 13:01:54 +01:00
Fabien Potencier
8a62e3249f merged 2.0 2011-11-01 12:32:44 +01:00
Fabien Potencier
d7a5351aaa updated composer.json files to contain information about autoloading and target dirs 2011-11-01 12:30:24 +01:00
H. Westphal
f9befb6348 Remove only the security token instead of the session cookie. 2011-11-01 11:58:03 +01:00
Lukas Kahwe Smith
b6bf0182e9 tweaked error handling for the forward compatibility 2011-11-01 09:40:05 +01:00
Christophe Coevoet
cbd0c3c8e9 [Config] Implemented Serializable on resources 2011-11-01 02:15:01 +01:00
H. Westphal
348bccbbca Clear session cookie if user was deleted, is disabled or locked to prevent infinite redirect loops to the login path (fixes #1798). 2011-10-31 21:27:23 +01:00
Lukas Kahwe Smith
c1426baee1 added locale handling forward compatibility 2011-10-31 16:15:30 +01:00
Miquel Rodríguez Telep / Michael Rodríguez-Torrent
89cd64a4a5 Set error code when number cannot be parsed. Fixes #2389 2011-10-30 22:02:16 +00:00
Miquel Rodríguez Telep / Michael Rodríguez-Torrent
c9d05d7236 Let NumberFormatter handle integer type casting
Partially addresses #2389 by not mistakenly typecasting a boolean false into
an integer 0
2011-10-30 21:17:28 +00:00
Henrik Westphal
f9a65ba48d Redirect to default_target_path if use_referer is true and the referer is the login_path. 2011-10-30 18:25:26 +01:00
Fabien Potencier
c2fa73d33a [HttpKernel] removed the _route entry from _route_params 2011-10-30 08:45:45 +01:00
Fabien Potencier
d34d50f0b0 fixed CS 2011-10-29 12:05:45 +02:00
Fabien Potencier
99a96d35b5 Merge branch '2.0'
* 2.0:
  fixed CS
2011-10-29 12:04:03 +02:00
Fabien Potencier
68b7662400 fixed CS 2011-10-29 12:03:59 +02:00
Fabien Potencier
8550f372fb removed unused use statements 2011-10-29 12:01:53 +02:00
Fabien Potencier
dec43f5539 merged 2.0 2011-10-29 12:01:39 +02:00
Fabien Potencier
f8065d1805 [HttpKernel] added a way to get the original values returned by the router 2011-10-29 12:00:39 +02:00
Fabien Potencier
851eb73778 removed unused use statements 2011-10-29 11:56:30 +02:00
Douglas Greenshields
2ddd7cca7b [Console] Fixed stilted English in console header 2011-10-28 23:25:00 +02:00
Fabien Potencier
43ce425f88 [HttpKernel] added missing accessor 2011-10-28 08:27:03 +02:00
Jeremy Mikola
80f0b980ba [DependencyInjection] Fix DefinitionDecorator::getArgument() for replacements
While Definition::getArgument() could be used to fetch replaced values, it relied upon bad comparison logic (e.g. "index_1" > 1). Additionally, storing original arguments and replacements in the same array makes Definition::getArguments()'s bounds check unreliable. A single argument and its replacement would count twice, allowing getArgument(2) to pass the bounds check and result in an array index error.

With this new method, fetching of replacement arguments is more straightforward and bounds checking functions as it should.
2011-10-27 18:03:51 -04:00
Fabien Potencier
ac5b8a4c37 merged 2.0 2011-10-26 14:29:19 +02:00
Fabien Potencier
3043fa0878 [HttpFoundation] fixed PHP 5.4 regression 2011-10-26 14:13:44 +02:00
Danny Berger
ab9caa0a61 [Security] Check for request's session before attempting writes. 2011-10-25 14:19:34 -04:00
Fabien Potencier
8dcde3c076 [DependencyInjection] fixed int casting for XML files (based on what is done in the YAML component) 2011-10-25 17:52:36 +02:00
Fabien Potencier
bc330d4487 merged branch lsmith77/fix_q_handling (PR #2365)
Commits
-------

d3f137b cosmetic tweak
2877883 anything in front of ;q= is part of the mime type, anything after may be ignored

Discussion
----------

[HttpFoundation] fix splitHttpAcceptHeader() parsing of parameters

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -

anything in front of ;q= is part of the mime type, anything after may be ignored

see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1

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

by lsmith77 at 2011/10/09 04:00:12 -0700

i must admit .. i am not 100% that my implemention is correct either .. but i am sure the current one isn't.

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

by lsmith77 at 2011/10/09 07:57:33 -0700

@fabpot: I am also not sure if getFormat() should optionally not support matching parameters, aka anything before ``;q=..``
2011-10-25 17:26:31 +02:00
Fabien Potencier
94e7e54777 merged branch mvrhov/pdo_sessstorage_fix (PR #2382)
Commits
-------

edfa29b session data needs to be encoded because it can contain non binary safe characters e.g null. Fixes #2067

Discussion
----------

session data needs to be encoded because it can contain non binary safe characters e.g null.

Bug fix: yes
Feature addition: no
Backwards compatibility break: yes
Symfony2 tests pass: yes
Fixes the following tickets: #2067

I'm marking this as a compatibility break because session table should be cleared and even if not cleared all currently logged in users will be logged out.

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

by mvrhov at 2011/10/11 12:52:25 -0700

P.S. I know there was a talk about doctrine based session storage but I cannot find this in core. It probably has the same problem.

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

by eventhorizonpl at 2011/10/11 14:34:08 -0700

Thanks for tracking down and fixing this issue!

Best regards,
Michal

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

by stof at 2011/10/11 16:24:18 -0700

@mvrhov The Doctrine based storage is only available in master, not in 2.0
2011-10-25 17:18:16 +02:00
Fabien Potencier
95ec41b075 [Console] made the defaults in Application more easily customizable 2011-10-25 17:12:17 +02:00
Fabien Potencier
6c2f093b33 [HttpFoundation] removed superfluous query call (closes #2469) 2011-10-25 15:45:14 +02:00
Jonathan Ingram
6343bef55e [HttpKernel] Updated mirror method to check for symlinks before dirs and files 2011-10-25 20:58:39 +12:00
Fabien Potencier
876ef554e5 merged branch vatson/bugfix-phpdumper-optimize-string (PR #2457)
Commits
-------

808088a added the ability to use dot and single quotes in the keys and values

Discussion
----------

[2.0][Bugfix][DependencyInjection] added the ability to use dot and single quotes in the keys and values

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -

We can not set a specific combination of dots and single quotes in the values ​​and keys of the arguments. I.E.

```xml
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
  <services>
    <service id="key_escaper" class="MyNamespace\MyClass">
        <call method="setCollection">
          <argument type="collection">
            <argument key="only dot">.</argument>
            <argument key="concatenation as value">.''.</argument>
            <argument key="concatenation from the start line">''.</argument>
            <argument key=".">is the same problem for the keys?</argument>
          </argument>
        </call>
      </service>
  </services>
</container>
```

As a result we have such a dump:

```php
<?php

class appDevDev_formapro1DebugProjectContainer extends Container
{
  protected function getKeyEscaperService()
  {
      $this->services['key_escaper'] = $instance = new \MyNamespace\MyClass();

      $instance->setCollection(array('only dot' => , 'concatenation as value' => '.\'\, 'concatenation from the start line' => '\'\,  => 'is the same problem for the keys?'));

      return $instance;
  }
}
```
2011-10-24 22:45:29 +02:00
Fabien Potencier
09692e2f16 [Routing] removed unused variable 2011-10-24 12:31:00 +02:00
Vadim Tyukov
808088a3ca added the ability to use dot and single quotes in the keys and values 2011-10-24 12:45:36 +03:00
Fabien Potencier
cbb4bbae97 [Routing] fixed side-effect in the PHP matcher dumper 2011-10-24 11:41:08 +02:00
Fabien Potencier
167a96fcf3 [Routing] fixed side-effect in the PHP matcher dumper 2011-10-24 11:39:31 +02:00
Fabien Potencier
24b93928bf [Routing] added a matcher that helps debugging matching problems 2011-10-24 09:08:36 +02:00
Fabien Potencier
6aee641a1e revert 89fd965 (refs #2339) 2011-10-23 14:09:54 +02:00
Fabien Potencier
2e1344eb7e [Routing] added the possibility to define default values and requirements for placeholders in prefix 2011-10-23 11:57:55 +02:00
Fabien Potencier
d5bec5a57c merged branch mvrhov/cache_warmup_exception (PR #2445)
Commits
-------

6b872cf Check if cache_warmer service is available before doing the actual cache warmup
40fb76d [Framework] removed wrong listener

Discussion
----------

fix cache warump exception when service is not available

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: N/A

fixes [Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException]
  You have requested a non-existent service "cache_warmer". in console when FrameworkBundle is removed from kernel.
2011-10-23 09:48:57 +02:00
Fabien Potencier
ad7fcf5206 moved WarmableInterface to the HttpKernel component 2011-10-23 09:47:17 +02:00
Miha Vrhovnik
6b872cfa40 Check if cache_warmer service is available before doing the actual cache warmup 2011-10-22 10:56:16 +02:00
Fabien Potencier
490d60f5f9 [HttpKernel] fixed event priority (if not, there is a problem when an exception occurs during one of the event registered before this one) 2011-10-22 09:30:41 +02:00
Fabien Potencier
c5ca40c711 [Routing] added support for _scheme requirement in UrlMatcher (see 07aae98495) 2011-10-22 08:04:10 +02:00
Fabien Potencier
b95fe53bf4 - 2011-10-21 16:46:37 +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
106ebdbe18 [HttpKernel] added a Stopwatch 2011-10-21 07:39:32 +02:00
Fabien Potencier
fbc422b978 [BrowserKit] added the standard output when an error occurs during the request execution (it might contain very useful information for debugging) 2011-10-21 07:39:26 +02:00
Fabien Potencier
347053c363 Moved most of the logic from ResponseListener to the Response::prepare() method
That allows projects that only use HttpFoundation and not HttpKernel to be able to
enforce the HTTP specification "rules".

$request = Request::createFromGlobals();
$response = new Response();

// do whatever you want with the Respons

// enforce HTTP spec
$response->prepare($request);

$response->send();

Within Symfony2, the prepare method is automatically called by the ResponseListener.
2011-10-18 09:04:20 +02:00
IamPersistent
fbd2a0ed9a make suggested changes for default value 2011-10-17 03:27:04 -07:00
IamPersistent
c507b1db73 update variable name to match the option name 2011-10-17 02:58:01 -07:00
IamPersistent
b53f000061 add the ability to set the form prototype name in CollectionType. this will aid in handling nested collections in forms 2011-10-17 02:43:24 -07:00
Fabien Potencier
0ffd91724b Merge branch '2.0'
* 2.0:
  [HttpKernel] fixed typo
2011-10-17 04:18:59 +02:00
Fabien Potencier
c6e9011fb5 [HttpKernel] fixed typo 2011-10-17 04:18:47 +02:00
Fabien Potencier
de9cf88676 merged 2.0 2011-10-17 02:33:13 +02:00
Fabien Potencier
2b0af5e93b [HttpKernel] fixed profile parent/children for deep-nested requests 2011-10-17 02:32:06 +02:00
Fabien Potencier
976f8b10fa [HttpKernel] moved the Timer data collector to HttpKernel 2011-10-16 10:21: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
575771380b [composer] add doctrine and twig dependencies 2011-10-15 16:55:54 +02:00
Fabien Potencier
6664e1d95f merged branch schmittjoh/interBundleExtensibility (PR #2349)
Commits
-------

1b57727 removed unused use statements
fd67c78 updated implementation to re-use the existing build() method
59e2e97 improves extensibility between bundles

Discussion
----------

[RFC] Improving extensibility between bundles

This is a quick draft for improving extensibility between different bundles.

The idea behind this is that an extension can provide configurable settings that other bundles can change.

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

by Seldaek at 2011/10/07 13:28:13 -0700

I am not yet sure what I would use it for, but I like the idea.

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

by lsmith77 at 2011/10/07 13:45:19 -0700

can you show a bit more how to use this?

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

by lsmith77 at 2011/10/07 13:47:38 -0700

oh it appears this is an example?

f4e76640a0 (diff-9)

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

by schmittjoh at 2011/10/07 13:57:00 -0700

yes

On Fri, Oct 7, 2011 at 10:47 PM, Lukas Kahwe Smith <
reply@reply.github.com>wrote:

> oh it appears this is an example?
>
>
> f4e76640a0 (diff-9)
>
> --
> Reply to this email directly or view it on GitHub:
> https://github.com/symfony/symfony/pull/2349#issuecomment-2328078
>

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

by schmittjoh at 2011/10/11 01:11:39 -0700

@fabpot, do you have an opinion on this, 👍 👎?
2011-10-15 03:26:46 +02:00
Fabien Potencier
3bbb6e5993 merged branch hhamon/type_validator_fix (PR #2379)
Commits
-------

73312ab [Validator] The Type constraint now accepts the "Boolean" type instead of "boolean".

Discussion
----------

[Validator] The Type constraint now accepts the "Boolean" type instead of

[Validator] The Type constraint now accepts the "Boolean" type instead of "boolean".

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -

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

by stloyd at 2011/10/11 03:43:24 -0700

As this is bugfix only, this should be made againts __2.0__ branch.

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

by hhamon at 2011/10/11 05:03:52 -0700

@stloyd I don't really know if it's a bug fix or an improvement. We could not use "Boolean" but we could use "boolean" or "bool" only. So that's why I just improved this constraint validator.
2011-10-15 03:12:16 +02:00
Fabien Potencier
4b476c3617 Merge branch '2.0'
* 2.0:
  [BrowserKit] fixed cookie updates from Response (the URI here is not the base URI, so it should not be used to determine the default values missing in the cookie, closes #2309)
2011-10-15 02:32:29 +02:00
Fabien Potencier
3426c8390c [BrowserKit] fixed cookie updates from Response (the URI here is not the base URI, so it should not be used to determine the default values missing in the cookie, closes #2309) 2011-10-15 02:32:15 +02:00
Danny Berger
dabff0e4d5 [Security] Support removing tokens from a session. 2011-10-14 20:27:53 -04:00
Fabien Potencier
5b69dae9c8 [HttpKernel] fixed profiler file storage for children 2011-10-15 01:52:05 +02:00
Fabien Potencier
cc76da1144 [HttpKernel] fixed file profile storage when trying to read an empty token 2011-10-15 01:49:28 +02:00
Fabien Potencier
7816290f3f Merge branch '2.0'
* 2.0:
  [HttpKernel] fixed profile saving when it has children
2011-10-15 01:46:43 +02:00
Fabien Potencier
c0f5b8a3b6 [HttpKernel] fixed profile saving when it has children 2011-10-15 01:46:19 +02:00
Fabien Potencier
4dc5953100 merged 2.0 2011-10-15 00:56:57 +02:00
Fabien Potencier
3d7510e921 [HttpKernel] fixed missing init for Profile children property 2011-10-15 00:56:18 +02:00
Fabien Potencier
d35fb9ff70 merged branch alexandresalome/file-storage-children-fix (PR #2368)
Commits
-------

ba6bd4b [HttpKernel] Fix the FileProfileStorage, according to the tests
1654473 [HttpKernel] Create a test to outline the problem with file storage

Discussion
----------

[HttpKernel] Fix the file storage

The file storage was not correctly fetching children back.

* First the test showing the problem
* Second the fix to the test

Solution is to add a file for each stored profile file, containing the list of children tokens.
2011-10-15 00:48:58 +02:00
Chris Smith
00cbd39813 [BrowserKit] Fixed cookie expiry discard when attribute contains capitals 2011-10-14 20:23:34 +01:00
Fabien Potencier
89295b8d02 [Translation] made the MessageSelector constructor argument for Translator optional (using a custom one is pretty rare) 2011-10-13 15:34:34 +02:00
Miha Vrhovnik
edfa29b01b session data needs to be encoded because it can contain non binary safe
characters e.g null. Fixes #2067
2011-10-11 21:42:38 +02:00
Fabien Potencier
c00ba4dab8 [Console] fixed typo (closes #2358) 2011-10-11 12:56:40 +02:00
Hugo Hamon
73312ab5e9 [Validator] The Type constraint now accepts the "Boolean" type instead of "boolean".
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
2011-10-11 12:27:45 +02:00
Christophe Coevoet
6e4269f9eb [Form] Added the ability to specify the translation domain 2011-10-10 17:58:32 +02:00
Fabien Potencier
beda03ba96 updated all HttpKernel event listeners to implement EventSubscriberInterface 2011-10-10 14:54:49 +02:00
Fabien Potencier
7a89d34872 [HttpKernel] made RouterListener implement EventSubscriberInterface 2011-10-10 14:30:15 +02:00
Fabien Potencier
4539e5c554 moved configuration of the default HTTP and HTTPS ports from RouterListener to RequestContext 2011-10-10 13:24:45 +02:00
Fabien Potencier
658722b2eb moved some logic from HttpKernel to Routing (make it reusable) 2011-10-10 13:07:36 +02:00
Fabien Potencier
8f15794274 moved LocaleListener and RouterListener to the HttpKernel component 2011-10-10 13:03:55 +02:00
alexandresalome
ba6bd4b221 [HttpKernel] Fix the FileProfileStorage, according to the tests 2011-10-09 22:45:55 +02:00
Lukas Kahwe Smith
d3f137b9c1 cosmetic tweak 2011-10-09 16:09:22 +02:00
Lukas Kahwe Smith
28778834c7 anything in front of ;q= is part of the mime type, anything after may be ignored
see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1
2011-10-09 12:58:45 +02:00
Fabien Potencier
a8faa83708 merged 2.0 2011-10-08 22:58:00 +02:00
Fabien Potencier
74bc699b27 moved management of the locale from the Session class to the Request class
The locale management does not require sessions anymore.

In the Symfony2 spirit, the locale should be part of your URLs. If this is the case
(via the special _locale request attribute), Symfony will store it in the request
(getLocale()).

This feature is now also configurable/replaceable at will as everything is now managed
by the new LocaleListener event listener.

How to upgrade:

The default locale configuration has been moved from session to the main configuration:

Before:

framework:
    session:
        default_locale: en

After:

framework:
    default_locale: en

Whenever you want to get the current locale, call getLocale() on the request (was on the
session before).
2011-10-08 18:34:49 +02:00
Johannes Schmitt
1b577277ec removed unused use statements 2011-10-08 07:09:31 +02:00
Johannes Schmitt
fd67c784dd updated implementation to re-use the existing build() method 2011-10-08 07:07:38 +02:00
Johannes Schmitt
59e2e97055 improves extensibility between bundles 2011-10-07 21:41:07 +02:00
stealth35
ae0685a314 [Translation] Loader should only load local files 2011-10-07 18:30:56 +02:00
Fabien Potencier
50c47aa687 merged branch stloyd/form_texttypes (PR #2343)
Commits
-------

8bd0e42 [Form] Use proper parent (text) for EmailType and TextareaType

Discussion
----------

[2.0][Form] Use proper parent (text) for EmailType and TextareaType

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
2011-10-07 14:07:29 +02:00
Fabien Potencier
f22566ca19 merged branch stloyd/ScalarTransformer (PR #2341)
Commits
-------

95049ef [Form] Added type check to `ScalarToChoiceTransformer`

Discussion
----------

[2.0][Form] Added type check to ScalarToChoiceTransformer

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
2011-10-07 14:06:24 +02:00
Joseph Bielawski
8bd0e42233 [Form] Use proper parent (text) for EmailType and TextareaType 2011-10-07 13:47:48 +02:00
stloyd
18a83c67f4 [Form] Simplified a bit FormUtil and extended test coverage 2011-10-07 12:04:26 +02:00
stloyd
95049ef902 [Form] Added type check to ScalarToChoiceTransformer 2011-10-07 12:01:07 +02:00
Fabien Potencier
89fd9653b4 merged branch Seldaek/trans_charset (PR #2339)
Commits
-------

5473d3b [Translation] Allow use of UTF-8 encoded catalogues into non-UTF-8 applications
deb6dea [Translation] Add failing tests to verify that UTF-8 lang files can't be used with another charset

Discussion
----------

Allow use of UTF-8 catalogues in non-UTF-8 applications

This is #2313 but targetting the master branch.

Bug fix: yes
Feature addition: ?:)
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -

The problem I'm having is that, while porting an existing app, we are using UTF-8 everywhere to have a migration path ready, but the current application and DB is still in ISO-8859-1, which means translations containing accented chars are broken.

Also, we didn't hit the issue yet since we don't use forms much, but I imagine we would have similar issues with core translations for the validator which are all UTF-8 encoded.

Note that I explicitly suppressed this conversion in case your application is setup as UTF-8, to make sure most people are not affected by any slow down this introduces.
2011-10-07 12:00:26 +02:00
Jordi Boggiano
5473d3b6c9 [Translation] Allow use of UTF-8 encoded catalogues into non-UTF-8 applications 2011-10-07 11:21:05 +02:00
Helmer Aaviksoo
c4226bb6dc Removed redundant "@return void"-s 2011-10-07 11:15:35 +03:00
Fabien Potencier
a74ae9d325 [HttpFoundation] made X_REWRITE_URL only available on Windows platforms 2011-10-07 08:20:12 +02:00
Fabien Potencier
0e852fe232 Merge branch '2.0'
* 2.0:
  [DoctrineBundle] fixed a unit test (detected thanks to PHP 3.6.0)
  [Form] Fixed lacking attributes in DateTimeType
2011-10-06 21:40:44 +02:00
Katsuhiro OGAWA
828b18f467 [Form] Fixed lacking attributes in DateTimeType 2011-10-05 17:57:43 +09:00
Fabien Potencier
1f2e72d84a updated VERSION for 2.0.4 2011-10-04 13:47:14 +02:00
Fabien Potencier
fbe9aa526e merged 2.0 2011-10-04 09:32:13 +02:00
Fabien Potencier
cf4a91e923 [ClassLoader] fixed usage of trait_exists() 2011-10-03 18:02:59 +02:00
Fabien Potencier
6b16757199 [Security] changed a RuntimeException to LogicException for consistencies between the different Token classes (closes #2310) 2011-10-03 09:03:36 +02:00
Danny Berger
54196382b7 [HttpKernel] Show the actual directory needing to be created. 2011-10-03 02:08:17 -04:00
Fabien Potencier
c78921f0d3 merged branch jalliot/missing-guessers (PR #2306)
Commits
-------

ee0fe7a Added guessers for Size and SizeLength constraints

Discussion
----------

Added guessers for Size and SizeLength constraints

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -

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

by jalliot at 2011/09/30 13:40:37 -0700

BTW, I've noticed that some constraints currently don't have guessers in 2.0:

* ``False`` (which could be guessed as a checkbox)
* ``True`` (which could be guessed as a required checkbox)
* ``Choice`` (which could be guessed as a choice type with medium confidence and with the choice list being guessed as the list provided for the constraint)

Are there any reasons why this is not implemented in 2.0 or should I try to make a PR for it?

There is also the ``Collection`` case but I guess it would be too difficult for this one...
2011-09-30 23:05:31 +02:00
Jordan Alliot
ee0fe7a2b5 Added guessers for Size and SizeLength constraints 2011-09-30 22:31:52 +02:00
Daniel Holmes
84808f40b3 [DependencyInjection] Removed unused property
Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
2011-10-01 00:46:18 +10:00
Fabien Potencier
5c8a2fb48d [Routing] fixed route overriden mechanism when using embedded collections (closes #2139) 2011-09-30 12:01:46 +02:00
Fabien Potencier
1467bdb868 added RouterInterface::getRouteCollection() 2011-09-30 07:48:34 +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
Fabien Potencier
5c760b0d40 merged branch igorw/composer (PR #2275)
Commits
-------

731b28b [composer] add missing deps for FrameworkBundle
9c8f100 [composer] change ext/intl to the new ext-intl syntax
d535afe [composer] fix monolog-bridge composer.json, add more inter-component deps
9ade639 [composer] add composer.json

Discussion
----------

Composer

This PR adds a composer.json file for [composer](https://github.com/composer/composer) ([more info](packagist.org/about-composer)).

For discussion you can also go into #composer-dev on freenode and argue with naderman, seldaek and everzet.

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

by naderman at 2011/09/26 15:51:51 -0700

You haven't entered any keywords, they might come in handy when searching for packages on packagist.

But really this is just a +1 ;-)

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

by stof at 2011/09/26 16:12:21 -0700

See my comments on your previous (non-rebased) commit: f1c0242b5a

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

by igorw at 2011/09/27 00:04:36 -0700

Following dependencies do not have a composer.json yet: Twig, Doctrine (orm, dbal, common), swiftmailer.

Also missing from the standard edition: assetic, twig-extensions, jsm-metadata, SensioFrameworkExtraBundle, JMSSecurityExtraBundle, SensioDistributionBundle, SensioGeneratorBundle, AsseticBundle.

The point is, those can be added later on. Having the components composerized is already a leap forward. Also, doctrine depends on some symfony components, we've got to start somewhere.

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

by Seldaek at 2011/09/27 00:36:41 -0700

Also, just for information, the plan is to have `symfony/framework-bundle` be the "framework", with all dependencies to doctrine etc, though we should really only have strict requirements in there, and then in symfony-standard we ship a composer.json that requires the framework-bundle, doctrine-orm and things like that that are not essential to core. Otherwise people don't have a choice about what they use anymore.

Just a comment btw, the json is invalid, all / should be escaped. However json_decode is nice enough to parse those without complaining, browsers do too, even Crockford's json2.js does, so I'm not sure if we should privilege readability over strictness, since it seems nobody really cares about this escaping.

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

by igorw at 2011/09/27 00:41:39 -0700

So, I've implemented all of @stof's suggestions, except (for reasons stated above):

* doctrine to DoctrineBundle
* swiftmailer to SwiftmailerBundle
* twig to TwigBundle
* doctrine-common to Validator
* FrameworkBundle (what exactly does it depend on?)

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

by stof at 2011/09/27 00:52:31 -0700

@igorw at least HttpKernel, Routing, Templating, EventDispatcher, Doctrine Common (annotations cannot be disabled), Translator, Form (optional), Validator (optional), Console (optional). See the service definitions to see the others

@Seldaek FrameworkBundle does not depend on Doctrine, except for Common

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

by beberlei at 2011/09/27 03:15:34 -0700

What does the symfony/ or ext/ prefix control in composer?

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

by Seldaek at 2011/09/27 03:33:52 -0700

symfony/ is just the (mandatory) vendor namespace. Also ext/ has been renamed to ext- now, so it's not in any vendor, and should avoid potential issues.

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

by beberlei at 2011/09/27 05:07:03 -0700

@Seldaek Mandatory? So every package name is "vendor/package"? I like that because previously i thought package names are not namespaced, and thus clashes could occur between different communities easily.

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

by Seldaek at 2011/09/27 05:16:20 -0700

@beberlei: Mandatory. As of yesterday http://packagist.org/ will tell you you have an invalid package name if there's no slash in it. See 1306d1ca82 (diff-3)
2011-09-29 17:27:38 +02:00
Fabien Potencier
41a55ba8d7 Merge branch '2.0'
* 2.0:
  [Validator] added support for grapheme_strlen when mbstring is not installed but intl is installed
  removed separator of choice widget when the separator is null
2011-09-29 16:17:23 +02:00
Fabien Potencier
1cf3e91365 [Validator] added support for grapheme_strlen when mbstring is not installed but intl is installed 2011-09-29 16:17:19 +02:00
Fabien Potencier
600b8ef5af [Validator] added support for grapheme_strlen when mbstring is not installed but intl is installed 2011-09-29 16:15:57 +02:00
Fabien Potencier
d6c4bfb001 added a Size validator 2011-09-29 15:56:37 +02:00
Fabien Potencier
b9ba117208 [Validator] added a SizeLength validator 2011-09-29 15:45:52 +02:00
Fabien Potencier
0c38b95ad9 [Console] tweaked previous merge 2011-09-29 14:51:30 +02:00
Fabien Potencier
e74beb8bfa merged branch hason/shell (PR #1484)
Commits
-------

060d75d [Console] fixed CS and simplified code
a5ff635 [Console] added support for interactive shell without readline extension

Discussion
----------

[2.1] [Console] added support for interactive shell without readline extension

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

by lmcd at 2011/06/30 15:12:56 -0700

Very useful! Pre-installed PHP on OS X ships without readline.

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

by stof at 2011/06/30 15:24:47 -0700

@lmcd You can already use the console, just not the shell.

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

by lmcd at 2011/06/30 15:27:00 -0700

@stof Yep I know, but it would be nice to use the shell :)

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

by hason at 2011/07/01 01:54:34 -0700

@stof Interactive generators will not work on Windows and Mac OS X without these simple changes. I think this is bad news.

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

by Seldaek at 2011/07/01 01:58:59 -0700

Yup, it's definitely a good addition.

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

by Seldaek at 2011/07/01 01:59:26 -0700

@fabpot: I'm not sure why this is tagged 2.1, but IMO this should go in now.

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

by stof at 2011/07/01 01:59:44 -0700

@hason This is not true. The shell is only used when running the console with the ``-s`` option. A command can be interactive without using the shell (I'm on Windows)

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

by lmcd at 2011/07/01 02:08:17 -0700

@stof Yea true, the interactive generators are fine without readline, however I don't think this dependancy should prevent people using the shell on Win/Mac.

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

by hason at 2011/07/01 02:28:10 -0700

@stof This is good news :) I was hasty.

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

by lmcd at 2011/07/04 02:03:36 -0700

I'm feeling inclined to remove readline entirely for 2.1 and roll our own solution to support things like this in the shell: http://lmcd.me/v/sf-autocomplete-2.mov

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

by stof at 2011/09/04 04:55:37 -0700

what is the status of this PR ?
2011-09-29 14:37:30 +02:00
lenar
fd00ed0be1 [Console] Check if dialog helper actually exists 2011-09-29 11:45:17 +03:00
lenar
0f7bf4155c [Console] Detect if interactive mode is possible at all 2011-09-29 11:37:25 +03:00
Fabien Potencier
d171d39b5d [Translation] fixed usage of LIBXML_COMPACT as it is not always available 2011-09-29 10:04:54 +02:00
Fabien Potencier
e02915b09d Merge branch '2.0'
* 2.0:
  fixed usage of LIBXML_COMPACT as it is not always available
  Fixed the phpdoc
2011-09-28 21:56:42 +02:00
Fabien Potencier
17af13813a fixed usage of LIBXML_COMPACT as it is not always available 2011-09-28 21:54:54 +02:00
Fabien Potencier
029223d760 merged branch jalliot/subscriber-improv (PR #2148)
Commits
-------

5146a1f [EventDispatcher] Added possibility for subscribers to subscribe several times for same event

Discussion
----------

[EventDispatcher] Added possibility for subscribers to subscribe several times for same event

[EventDispatcher] Added possibility for subscribers to subscribe several times for same event

closes #2146

And it is of course fully BC :)

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

by jalliot at 2011/09/09 17:34:07 -0700

If merged, #2021 will have to reflect the change too
2011-09-28 18:24:57 +02:00
Fabien Potencier
258a1fd710 moved makePathRelative to Filesystem 2011-09-28 17:37:32 +02:00
Fabien Potencier
fa57912351 [Translator] fixed merge with 2.0 2011-09-28 17:13:00 +02:00
Christophe Coevoet
9e438128fa Fixed the phpdoc 2011-09-28 17:21:22 +03:00
Fabien Potencier
885bb33791 merged 2.0 2011-09-28 16:08:31 +02:00
Fabien Potencier
6eeca8e36d merged branch stealth35/fix_2142 (PR #2290)
Commits
-------

b12ce94 [HttpFoundation] fix #2142 PathInfo parsing/checking

Discussion
----------

[HttpFoundation] fix #2142 PathInfo parsing/checking

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #2142
2011-09-28 15:02:56 +02:00
stealth35
b12ce94c38 [HttpFoundation] fix #2142 PathInfo parsing/checking
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #2142
2011-09-28 13:18:44 +02:00
Fabien Potencier
b4028350d2 [HttpFoundation] standardized cookie paths (an empty path is equivalent to /) 2011-09-28 10:49:50 +02:00
Fabien Potencier
128468193f [BrowserKit] standardized cookie paths (an empty path is equivalent to /) 2011-09-28 10:49:26 +02:00
Fabien Potencier
1e7e6ba305 [HttpFoundation] removed the possibility for a cookie path to set it to null (as this is equivalent to /) 2011-09-28 10:34:14 +02:00
Fabien Potencier
ffdd6670a6 merged branch Seldaek/clearcookie (PR #1889)
Commits
-------

908a7a3 [HttpFoundation] Fix bug in clearCookie/removeCookie not clearing cookies set with a default '/' path, unless it was explicitly specified

Discussion
----------

[HttpFoundation] Fix bug in clearCookie/removeCookie not clearing cookies

[HttpFoundation] Fix bug in clearCookie/removeCookie not clearing cookies set with a default '/' path, unless it was explicitly specified

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

by Seldaek at 2011/08/02 10:31:44 -0700

The reason is that Cookie::__construct defaults to '/' btw, so if you don't specify it, and then call clearCookie without specifying again, the paths don't match.

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

by Koc at 2011/08/07 00:06:13 -0700

I think that correctrly use base path. Is it possible?

For example we have 2 apps
* site.com/app1/index.php
* site.com/app2/index.php
and app2 will remove cookies of app1

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

by Seldaek at 2011/08/07 02:58:10 -0700

IMO if people want that they should specify the path manually, by default cookies are always set for the entire host and I think it should stay like that.

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

by Koc at 2011/08/07 04:26:47 -0700

It is hard to specify path manually everywhere when set/remove cookies.

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

by Seldaek at 2011/09/27 07:01:43 -0700

@fabpot: ping? You said this was ok, but it was never merged.
2011-09-28 10:32:01 +02:00
xaav
9af2342076 [Translation] Added the gettext loaders 2011-09-28 10:24:34 +02:00
Fabien Potencier
a57a4aff55 [DomCrawler] added a way to get parsing errors for Crawler::addHtmlContent() and Crawler::addXmlContent() via libxml functions 2011-09-28 10:00:18 +02:00
Fabien Potencier
7b204ed23a merged branch drak/paramaterbag_filter (PR #2261)
Commits
-------

c4a0f79 Updates according to suggestions.
6aec789 Added tests.
54454ba Added generic filtering to ParameterBag.

Discussion
----------

Added generic filtering to ParameterBag.

Adds filtering convenience using PHP's filter_var() e.g.

    $request->get->filter($key, '', false, FITLER_SANITIZE_STRING);

See http://php.net/manual/en/filter.filters.php for capabilities.

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

by GromNaN at 2011/09/25 15:41:50 -0700

What is the use case ?

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

by drak at 2011/09/25 15:52:19 -0700

Input variable validation/sanitization.  ParameterBag has a few built in like `getAlnum()` for example.  This method offer's PHP's full filtering and sanitization suite.

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

by fabpot at 2011/09/27 00:56:41 -0700

Can you add some unit tests for this new feature?

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

by drak at 2011/09/27 00:58:56 -0700

Sure thing.

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

by drak at 2011/09/27 01:07:03 -0700

Before I make the commit, is the method name ok for you or would you prefer it is called `getFiltered()`?

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

by fabpot at 2011/09/27 01:13:46 -0700

`filter` sounds good to me.

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

by drak at 2011/09/27 02:37:01 -0700

I've added some tests.

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

by stloyd at 2011/09/27 02:42:42 -0700

@drak IMO you must check that user don't use unknown filter and/or flags for filter.

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

by drak at 2011/09/27 02:48:38 -0700

@stloyd - I'm not sure that's practical at all, this is a wrapper for a built-in PHP function and I don't understand why we would need validate arguments for a PHP function - it's the coder's job to use the API correctly - none of the inputs to this function are coming from a web request.  It would also mean that the API would need to keep track of any upstream changes to constants in the PHP engine (which are just integers after all).  It's really just not practical.

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

by stealth35 at 2011/09/27 05:16:50 -0700

@drak it's could be cool to use `filter_id` ✌️

    if (is_string) {
        $filter = filter_id($filter);
    }

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

by drak at 2011/09/27 07:05:42 -0700

@stealth35 regarding this

    if (is_string) {
        $filter = filter_id($filter);
    }

I believe strongly in the use of IDEs when coding and autocomplete nicely provides when you type `FILTER_`.  Additionally, `filter_id()` only works on filters, but not for the flags, so I'm not entirely sure how useful it would be overall compared to using a good IDE (which you need when working with complex frameworks anyhow, imo :)

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

by drak at 2011/09/27 07:30:10 -0700

Ok check it now.
2011-09-27 17:21:30 +02:00
Fabien Potencier
c13b4e2b55 fixed fallback catalogue mechanism in Framework bundle 2011-09-27 17:18:11 +02:00
Drak
c4a0f799af Updates according to suggestions.
- Simplified logic of tests.
- Added more comments/docblocks.
- Added more convenience.
2011-09-27 20:14:32 +05:45
Fabien Potencier
063e6f9ae6 merged branch Seldaek/commands (PR #1470)
Commits
-------

d675c28 [FrameworkBundle] Use Router instead of RouterInterface
ae7ae8d [FrameworkBundle] Moved router_listener from web to router.xml since it depends on the router
35a9023 [FrameworkBundle] Added isEnabled to Router commands, fixes #1467
536d979 [Console] Added Command::isEnabled method that defines whether to add the command or not

Discussion
----------

[2.1] [Console] Added Command::isEnabled method

This addresses #1467.

The idea is to allow commands to evaluate whether they can run or not, since they are automatically registered.

- It's useful for the two router:* commands since they're optional (router can be disabled), but part of the FrameworkBundle that is not really optional.
- It could be useful for third party code as well.
- It's BC.
- aa95bb0d395810b29a3e654673e130736d9d1080 should address the issue in #1467, while the other commits just make sure the command is not registered at all if the router isn't standard.

One issue remains though:

- A few other services like twig helpers get the `ròuter` injected, this means that if there is really **no** router service defined, there is still an error. I'm not sure how to fix those beyond adding `on-invalid="null"` but I'm not sure if that's desirable. I guess we could argue that the router is a big candidate for replacement/suppression, and as such it should be truly optional, but if we do it I don't know where it'll lead. I don't want to end up in a situation where half the dependencies are optional to support every possible combination. @fabpot wdyt?

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

by kriswallsmith at 2011/06/28 16:19:46 -0700

I'd rather see us not register a command instead of register and then disable it. Can we do the same thing you've done here in the bundle's registerCommands() method?

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

by Seldaek at 2011/06/28 16:51:36 -0700

Note that it's never really registered. During the registration it's checked and skipped if not enabled.

However, doing it as you suggest means overriding/copy-pasting all the code from the core Bundle class, which I don't like so much. It also means adding code specific to those two commands in a somewhat unrelated place, which I also don't like.

I'm not saying the current solution is perfect, but from the alternatives I considered, it's the best I have found.

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

by stof at 2011/09/04 04:58:04 -0700

@Seldaek your branch conflicts with master. could you rebase it ?

@fabpot what do you think about this PR ?

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

by Seldaek at 2011/09/04 08:39:05 -0700

Rebased
2011-09-27 15:48:10 +02:00
Igor Wiedler
9c8f100c11 [composer] change ext/intl to the new ext-intl syntax 2011-09-27 12:35:30 +02:00
Drak
6aec7898e3 Added tests. 2011-09-27 15:20:51 +05:45
Drak
d375b6d00e Corrected docblock, quoted types were incorrect. 2011-09-27 13:34:25 +05:45
Igor Wiedler
d535afeb98 [composer] fix monolog-bridge composer.json, add more inter-component deps 2011-09-27 09:33:21 +02:00
Igor Wiedler
9ade639bb4 [composer] add composer.json 2011-09-27 00:55:43 +02:00
Laurent Bachelier
72e82eb595 Replace deprecated key_exists alias
From the PHP manual of array_key_exists:
    For backward compatibility, the following deprecated alias
    may be used: key_exists().
2011-09-27 00:06:04 +02:00
Marcin Chylek
ed02aa9974 Fix console: list 'namespace' command display all available commands 2011-09-27 00:05:57 +02:00
Dan Patrick
decfe9eb5c Corrected grammar in FilterControllerEvent comments 2011-09-27 00:05:39 +02:00
William DURAND
57e1aebb27 Fixed undefined index notice in readProperty() method (PropertyPath) 2011-09-26 23:56:28 +02:00
Drak
54454ba4aa Added generic filtering to ParameterBag.
Adds filtering convenience using PHP's filter_var() e.g.
`$request->get->filter($key, '', false, FITLER_SANITIZE_STRING);`
See http://php.net/manual/en/filter.filters.php for capabilities.
2011-09-26 04:11:55 +05:45
Josef Cech
85ed5c67dc [ClassLoader] Fixed state when trait_exists doesn't exists 2011-09-25 19:25:50 +02:00
Fabien Potencier
5dccc97b39 [Form] added a method to help debugging forms (Form::getAllErrorsAsString()) 2011-09-25 14:33:17 +02:00
Fabien Potencier
1103ca8185 merged 2.0 2011-09-25 11:52:31 +02:00
Fabien Potencier
369d4da4eb bumped Symfony version to 2.0.3-DEV 2011-09-25 11:51:38 +02:00
Fabien Potencier
6a25df0ebf updated VERSION for 2.0.3 2011-09-25 11:51:12 +02:00
Fabien Potencier
49c585ebd2 Revert "merged branch stealth35/ini_bool (PR #2235)"
This reverts commit 363057b181, reversing
changes made to 545cd4cd63.
2011-09-25 11:33:22 +02:00
Fabien Potencier
fa13469bba Revert "[DependencyInjection] fixed array support for the ini loader"
This reverts commit e0ace8eaee.
2011-09-25 11:33:07 +02:00
Fabien Potencier
a1d4246920 fixed version and vendors 2011-09-25 10:29:26 +02:00
Fabien Potencier
d94f65264c Merge branch '2.0'
* 2.0:
  bumped Symfony version to 2.0.3-DEV
  updated VERSION for 2.0.2
  update CONTRIBUTORS for 2.0.2
  updated CHANGELOG for 2.0.2
  updated vendors for 2.0.2
  merged branch helmer/target_path (PR #2228)
2011-09-25 10:28:33 +02:00
Fabien Potencier
604d066b52 bumped Symfony version to 2.0.3-DEV 2011-09-25 10:27:37 +02:00
Fabien Potencier
3d89f340b3 updated VERSION for 2.0.2 2011-09-25 10:27:00 +02:00
Fabien Potencier
6b367d1e3d merged branch helmer/target_path (PR #2228)
Commits
-------

022a9a7 [Security] Make saving target_path extendible

Discussion
----------

[Security] Make saving target_path extendible

The problem lies in how Security component handles ``target_path`` - the latest request URI is always stored. This can lead to problems in following scenarios:
a) The response type of the request is not HTML (think JSON, XML ..)
b) The URI matches a route that does not listen to HTTP GET

I opened a [PR](https://github.com/symfony/symfony/pull/604) months ago, to partly solve scenario A, which did not make it. Now I am proposing a different solution - user can extend ``ExceptionListener`` and override the logic behind setting the ``target_path`` to match his precise needs.

In my simplified scenario, I would be using:

```
protected function setTargetPath(Request $request)
{
    if ($request->isXmlHttpRequest() || 'GET' !== $request->getMethod()) {
        return;
    }

    $request->getSession()->set('_security.target_path', $request->getUri());
}
```

@Seldaek, @schmittjoh, @lsmith77, thoughts?

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

by Seldaek at 2011/09/21 02:37:02 -0700

Seems like a better solution for flexibility's sake. Would be quite awesome if you could add a cookbook entry to symfony/symfony-docs about this, otherwise I'm afraid we'll have to explain it over and over again :)

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

by helmer at 2011/09/21 03:38:57 -0700

[Cookbook](b22c5e666e) entry done. Perhaps though I rushed ahead ..

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

by Seldaek at 2011/09/21 03:52:01 -0700

Thanks. You can already do a pull request against symfony-docs, just reference this pull request in it so it's not merged before this is merged.
2011-09-25 09:46:00 +02:00
Fabien Potencier
c832b71600 merged branch stloyd/repeatedtype (PR #1453)
Commits
-------

67c33a8 Rebased with master, and fixed wrong behavior with proper tests coverage
f8a6a4b Be sure that both fields have same value for required option in RepeatedType
0679220 Additional test coverage for changes in RepeatedType
b23d47d moved options test form from class->method scope
5fe5556 fixed accidental permission change
a969434 [Form] fixed CS, merged options, added tests
8819db3 [Form] Allow setting different options to repeating fields

Discussion
----------

[2.1] [Form] Allow setting different options at RepeatedType fields

This an test covered version of #1348 (rebased with master).

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

by stloyd at 2011/06/27 04:18:19 -0700

@fabpot What do you think about this ? I'm just not sure that we should allow setting `required` per field, IMO better would be forcing this option from default `$options['options']` and ignore that field in `$options['first_options']` and/or `$options['second_options']`.

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

by stloyd at 2011/07/02 00:00:04 -0700

@fabpot ping.

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

by fabpot at 2011/07/06 05:45:56 -0700

Let's discuss this new feature for 2.1.

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

by stloyd at 2011/08/24 01:12:59 -0700

Rebased with master.

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

by stof at 2011/09/04 05:02:42 -0700

@fabpot What do you think about this feature ? It is now time to discuss it :)

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

by fabpot at 2011/09/22 00:18:29 -0700

Tests do not pass.

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

by stloyd at 2011/09/24 01:54:42 -0700

@fabpot Should be ok now.
2011-09-24 15:22:26 +02:00
stloyd
67c33a8e02 Rebased with master, and fixed wrong behavior with proper tests coverage 2011-09-24 10:44:47 +02:00
stloyd
f8a6a4b1e5 Be sure that both fields have same value for required option in RepeatedType 2011-09-24 10:25:07 +02:00
Helmer Aaviksoo
5fe5556bea fixed accidental permission change 2011-09-24 10:25:06 +02:00
Helmer Aaviksoo
a96943482b [Form] fixed CS, merged options, added tests 2011-09-24 10:25:05 +02:00
helmer
8819db3923 [Form] Allow setting different options to repeating fields 2011-09-24 10:25:05 +02:00
Fabien Potencier
85ba3d0274 merged 2.0 2011-09-23 21:10:42 +02:00
Fabien Potencier
e2945c9f9b [Routing] fixed Apache matcher dumper (broken by previous merge) 2011-09-23 20:56:36 +02:00
Alberto Pirovano
ae3aded83f Added PCRE_DOTALL modifier to RouteCompiler to allow urlencoded linefeed in route parameters. 2011-09-23 16:53:06 +02:00
Fabien Potencier
e0ace8eaee [DependencyInjection] fixed array support for the ini loader 2011-09-23 11:45:30 +02:00
Fabien Potencier
69468cb9bc merged branch jc-/master (PR #2151)
Commits
-------

f4784f7 [DomCrawler] Submit on a <form> node

Discussion
----------

DomCrawler - ability to submit a form that doesn't have any buttons

The proposed modification allows to submit above a &lt;form&gt; tag.
Using the DomCrawler component (among others), I have to interact with a remote site that has a form without a submit button (submitted automatically by javascript). This prompted the quick fix I'm sending. Please tell me if there is anything I should do differently and I'll modify it.
Thanks :)

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

by fabpot at 2011/09/12 00:46:07 -0700

Looks good to me. Can you add some unit tests for this new behavior? Thanks.

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

by jc- at 2011/09/12 02:27:25 -0700

Honored to meet you. I'm trying to run the test suite but 24 tests fail even without my commit. I'll try to get it sorted out and submit tests for this ASAP.
2011-09-23 08:05:44 +02:00
Fabien Potencier
98abc8ed05 [DependencyInjection] changed the default YAML indentation to 4 spaces instead of 2 2011-09-23 08:05:09 +02:00
Fabien Potencier
1dde2745d2 merged branch jdewit/master (PR #2242)
Commits
-------

6d8c4a8 change nested collection indentation from 2 to 4

Discussion
----------

Changed Yaml Dumper nested collection indentation

This PR changes the dumpers nested collection indentation from 2 to 4 which seems to be the standard.
2011-09-23 07:45:39 +02:00
Joris de Wit
6d8c4a82f3 change nested collection indentation from 2 to 4 2011-09-22 14:48:21 -07:00
Fabien Potencier
798cf5272b merged branch helmer/target_path (PR #2228)
Commits
-------

022a9a7 [Security] Make saving target_path extendible

Discussion
----------

[Security] Make saving target_path extendible

The problem lies in how Security component handles ``target_path`` - the latest request URI is always stored. This can lead to problems in following scenarios:
a) The response type of the request is not HTML (think JSON, XML ..)
b) The URI matches a route that does not listen to HTTP GET

I opened a [PR](https://github.com/symfony/symfony/pull/604) months ago, to partly solve scenario A, which did not make it. Now I am proposing a different solution - user can extend ``ExceptionListener`` and override the logic behind setting the ``target_path`` to match his precise needs.

In my simplified scenario, I would be using:

```
protected function setTargetPath(Request $request)
{
    if ($request->isXmlHttpRequest() || 'GET' !== $request->getMethod()) {
        return;
    }

    $request->getSession()->set('_security.target_path', $request->getUri());
}
```

@Seldaek, @schmittjoh, @lsmith77, thoughts?

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

by Seldaek at 2011/09/21 02:37:02 -0700

Seems like a better solution for flexibility's sake. Would be quite awesome if you could add a cookbook entry to symfony/symfony-docs about this, otherwise I'm afraid we'll have to explain it over and over again :)

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

by helmer at 2011/09/21 03:38:57 -0700

[Cookbook](b22c5e666e) entry done. Perhaps though I rushed ahead ..

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

by Seldaek at 2011/09/21 03:52:01 -0700

Thanks. You can already do a pull request against symfony-docs, just reference this pull request in it so it's not merged before this is merged.
2011-09-22 18:43:18 +02:00
Fabien Potencier
e5a23dbdaa [ClassLoader] added support for PHP 5.4 traits 2011-09-22 09:31:50 +02:00
stealth35
11c441289a [DependencyInjection] fix 2219 IniFileLoader accept Boolean 2011-09-21 22:14:12 +02:00
Fabien Potencier
dd8e1e0fdb merged 2.0 2011-09-21 20:14:11 +02:00
Fabien Potencier
64d44fbb93 [Translator] fixed recursion when using a fallback that is the same as the locale 2011-09-21 20:13:06 +02:00
Helmer Aaviksoo
022a9a7a6e [Security] Make saving target_path extendible 2011-09-21 11:57:40 +03:00
stealth35
bca551e86f [DomCrawler] ChoiceFormField should take the content when value is unavailable 2011-09-20 19:08:17 +03:00
Fabien Potencier
774ac80d18 [Translation] fixed previous merge 2011-09-20 07:50:47 +02:00
Fabien Potencier
01a24db500 merged branch schmittjoh/translationFixes (PR #2213)
Commits
-------

c0e6118 yet another fix
cb9383d some more fixes
7a20b89 fixes some typos
ac765fc avoid circular references
9b025b7 fixed typo

Discussion
----------

Translation fixes
2011-09-20 07:43:26 +02:00
Fabien Potencier
e2463caacd merged branch snc/mongodb-profiler (PR #2129)
Commits
-------

a0329c3 Added lifetime/cleanup support.
365e73a Fixed the find() method and changed the way the profile data is stored.
beeec5e Allow socket dsn (for example mongodb:///tmp/mongodb-27017.sock).
218eaba Fixed storage of time value.
85c3806 Added support for sorting by time like other profiler storage implementations.
73692c6 Fixed MongoDbProfilerStorage::find() when passing empty parameters.
4cd2dec Use token as identifier to make usage of the automatically created index.

Discussion
----------

[2.1] [HttpKernel] MongoDB profiler updates

I fixed one issue within the MongoDbProfilerStorage::find() function and made some more changes.

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

by snc at 2011/09/11 02:28:35 -0700

Please don't merge this in yet. There are some more commits pending...

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

by fabpot at 2011/09/14 01:07:39 -0700

@snc: is it ready for a merge?

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

by snc at 2011/09/14 01:20:32 -0700

Unfortunately not... while testing I found out that the currently merged in implementation does not work completely. The web profiler search function errors because the find function returns the wrong data. I fixed this already but now I have some strange "maximum function nesting level reached" errors when viewing profiles with children. I will work on it later today.

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

by snc at 2011/09/14 13:27:50 -0700

Now only one thing is missing... the generated container code looks like this:

`$this->services['profiler'] = $instance = new \Symfony\Component\HttpKernel\Profiler\Profiler(new \Symfony\Component\HttpKernel\Profiler\MongoDbProfilerStorage('mongodb://localhost/sf2-mongo-profiler/profiler', '', '', 86400), $a);`

The current constructor only uses the first parameter (dsn). What about the username, password and lifetime? Username and passwort can already be passed via the dsn... but the lifetime feature is not part of the interface... should I implement it?

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

by fabpot at 2011/09/15 11:03:02 -0700

The `lifetime` is used to cleanup the database (see https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpKernel/Profiler/PdoProfilerStorage.php#L136). So, it should probably be implemented for MongoDB as well (but it can probably be done in another PR).

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

by snc at 2011/09/19 13:42:52 -0700

Sorry for the delay, lifetime support is now implemented. What do you think about an AbstractProfilerStorageTest class to share some testing code between the different implementations (of cause in a separate PR)?
2011-09-20 07:19:49 +02:00
H. Westphal
a0329c37c9 Added lifetime/cleanup support. 2011-09-19 22:37:12 +02:00
Fabien Potencier
9a886ac73f merged branch stealth35/trans_ini (PR #2212)
Commits
-------

903ab81 [Translation] support Ini file

Discussion
----------

[Translation] support Ini file
2011-09-19 17:13:47 +02:00
stealth35
903ab81434 [Translation] support Ini file 2011-09-19 17:00:58 +02:00
Johannes Schmitt
ac765fcb6e avoid circular references 2011-09-19 14:48:19 +02:00
Fabien Potencier
9703aac268 [FrameworkBundle] fixed Translator to also load the fallback catalog 2011-09-19 09:01:12 +02:00
Fabien Potencier
ed05e7a5f6 merged 2.0 2011-09-19 08:53:42 +02:00
Fabien Potencier
b635dcad7a [Translator] fixed non-loaded locale 2011-09-19 08:52:59 +02:00
Fabien Potencier
8c64202979 merged branch Seldaek/wintest (PR #2204)
Commits
-------

88ebe0c Adjust the way of checking for windows

Discussion
----------

Adjust the way of checking for windows
2011-09-19 07:36:55 +02:00
Christophe Coevoet
ab8e760c68 Fixed the creation of the subrequests
The subrequest must be created using an absolute path to keep the
informations about the host and the base path.
Closes #2168
2011-09-18 00:24:28 +02:00
Fabien Potencier
6fa1d64f84 Merge branch '2.0'
* 2.0:
  [HttpKernel] fixed typo
  fixed previous merge, done the same change to other occurences
  fixes usage of mb_*
  Profiler session import fixed.
  [Process] workaround a faulty implementation of is_executable on Windows
  Swedish translation fix.
  [Locale] Fix #2179 StubIntlDateFormatter support yy format
  Fixed fourth argument of Filesystem->mirror()
2011-09-17 22:18:22 +02:00
Fabien Potencier
677a072554 [HttpKernel] fixed typo 2011-09-17 22:16:16 +02:00
Jordi Boggiano
88ebe0cfc4 Adjust the way of checking for windows 2011-09-17 12:57:47 +02:00
Jordan Alliot
5146a1f0d0 [EventDispatcher] Added possibility for subscribers to subscribe several times for same event
closes #2146
2011-09-16 18:13:00 +01:00
Fabien Potencier
ea7f0f9c46 merged branch jalliot/fix-mirror-arg (PR #2050)
Commits
-------

95dc7e1 Fixed fourth argument of Filesystem->mirror()

Discussion
----------

Fixed fourth argument of Filesystem->mirror()

See #2027 and #2033 for discussion.

@fabpot said that we don't want to use symlink at all on Windows so if this is confirmed, we should also change ``Filesystem->symlink()`` implementation.

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

by alexandresalome at 2011/09/16 08:29:40 -0700

Tested on Windows, OK for me
2011-09-16 18:32:22 +02:00
Fabien Potencier
e0502b1d69 fixed previous merge, done the same change to other occurences 2011-09-16 14:38:31 +02:00
Johannes M. Schmitt
8e2cbe603b fixes usage of mb_* 2011-09-16 14:27:56 +02:00
Johannes M. Schmitt
a1491e8b54 added some missing accessors/mutators 2011-09-16 13:43:09 +02:00
Fabien Potencier
83b69e6d8c [Translation] renamed a method 2011-09-16 13:27:17 +02:00
Fabien Potencier
bede42065e [Config] fixed FileResource usage of is_file (we must use file_exists here as the resource can be a file or a directory, reverts #2057) 2011-09-16 13:20:41 +02:00
Johannes M. Schmitt
9fb15c7cb2 [Process] workaround a faulty implementation of is_executable on Windows 2011-09-15 19:42:58 +02:00
stealth35
43b55efd04 [Locale] Fix #2179 StubIntlDateFormatter support yy format
Fix #2179 Year limit is 2031 like IntlDateFormatter
2011-09-16 13:12:22 +02:00
Fabien Potencier
5526072dba [Translation] added support for more than one fallback locale 2011-09-15 08:19:52 +02:00
Fabien Potencier
3a4d1a6a22 merged 2.0 branch 2011-09-15 07:39:20 +02:00
Fabien Potencier
9ffd8ca99c [Translation] renamed hasStrict() to defines() 2011-09-14 22:49:04 +02:00
Fabien Potencier
79710edb8a [Translation] added a MessageCatalogue::hasStrict() method to check if a string has a translation (but without taking into account the fallback mechanism) 2011-09-14 22:31:14 +02:00
Fabien Potencier
c50a3a194d [Translation] fixed transchoice when used with a fallback 2011-09-14 22:31:09 +02:00
H. Westphal
365e73aa71 Fixed the find() method and changed the way the profile data is stored. 2011-09-14 22:15:57 +02:00
Fabien Potencier
c985ffaa99 [Translation] fixed message selector when the message is empty (closes #2144) 2011-09-14 22:04:39 +02:00
Fabien Potencier
27ba003e5e [HttpFoundation] changed the strategy introduced in a5ccda47b4 to fix functional tests and still allow to call save more than once for a Session 2011-09-14 20:54:45 +02:00
Magnus Nordlander
ff99d80a8e Changed the behavior of Session::regenerate to destroy the session when it invalidates it. 2011-09-14 19:52:25 +02:00
Fabien Potencier
c5e0c80a76 [HttpFoundation] made FileBinaryMimeTypeGuesser command configurable 2011-09-14 09:45:15 +02:00
Fabien Potencier
73c8d2ba74 [Form] fixed error bubbling for Date and Time types when rendering as multiple choices (closes #2062) 2011-09-14 08:30:47 +02:00
stealth35
1fc01fcd1f [Translation] typo in ResourceBundleLoader 2011-09-13 13:21:32 +02:00
Fabien Potencier
affb0cbca2 merged branch stealth35/trans_rb (PR #2136)
Commits
-------

e6e5146 [Translation] now support ResourceBundle

Discussion
----------

[2.1][Translation] now support ResourceBundle

support `.res` and `.dat` bundles

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

by marijn at 2011/09/08 08:59:39 -0700

There are a few references to `ressource`, I guess that is a typo...

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

by stealth35 at 2011/09/08 09:13:32 -0700

@marijn thank, done

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

by fabpot at 2011/09/11 00:42:37 -0700

Is it possible to add a dumper like we have for all other loaders?

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

by stof at 2011/09/11 03:46:39 -0700

Btw, you need to rebase your branch as it conflicts with master

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

by stealth35 at 2011/09/11 04:04:23 -0700

@fabpot it's more difficult (or the easy way it's to use `exec` with `derb`), I can create the text resources
@stof oki

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

by fabpot at 2011/09/11 23:52:19 -0700

@stealth35: Can you remove the `@api` tags? We will review what is included into the public API later on. thanks.

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

by stealth35 at 2011/09/12 04:18:07 -0700

@fabpot done
2011-09-13 08:49:05 +02:00
Fabien Potencier
51403530b9 merged branch stealth35/http_found_auth (PR #2029)
Commits
-------

aecfd0a [HttpFoundation] Support user and password in url

Discussion
----------

[HttpFoundation] Support user and password in url

Allow `http://user:password@test.com` for url request and `basic auth`

Added Methods for `Request`
  - `getUser`
  - `getPassword `

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

by stealth35 at 2011/08/26 07:52:57 -0700

@seldaek @stof thanks guys it's done

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

by stof at 2011/08/28 11:52:11 -0700

btw, you should rebase your branch on top of the upstream master branch as it conflicts

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

by stealth35 at 2011/08/28 13:15:55 -0700

@stof done

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

by stof at 2011/09/04 02:09:11 -0700

@stealth35 you made an error when rebasing: you merged the previous version of the branch instead of forcing the push, thus duplicating all commits in the PR (rebasing rewrites the history so it creates new commits). Could you clean your branch ?

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

by stealth35 at 2011/09/05 02:00:17 -0700

@stof 👍

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

by stealth35 at 2011/09/06 08:21:00 -0700

should be 2.0 ?

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

by fabpot at 2011/09/11 23:52:30 -0700

@stealth35: Can you remove the `@api` tags? We will review what is included into the public API later on. thanks.

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

by stealth35 at 2011/09/12 04:02:01 -0700

@fabpot done
2011-09-13 08:47:11 +02:00
stealth35
e6e5146ccb [Translation] now support ResourceBundle 2011-09-12 13:17:14 +02:00
stealth35
aecfd0a891 [HttpFoundation] Support user and password in url 2011-09-12 13:01:04 +02:00
H. Westphal
beeec5eee2 Allow socket dsn (for example mongodb:///tmp/mongodb-27017.sock). 2011-09-11 13:38:37 +02:00
H. Westphal
218eaba265 Fixed storage of time value. 2011-09-11 12:26:12 +02:00
jc
f4784f7970 [DomCrawler] Submit on a <form> node
Without this, it was impossible to submit a form that doesn't have a
submit button.
2011-09-10 20:15:11 +02:00
H. Westphal
3e2f1a4b13 Removed executable bits from all php files 2011-09-09 15:16:17 +02:00
Fabien Potencier
18d3dfe0bf merged branch snc/chmod-fixes (PR #2130)
Commits
-------

a0a97c6 Removed executable bits from all php files

Discussion
----------

Removed executable bits from all PHP files

Some files had a file mode of 755 and this PR changes them to 644. The reason behind this is that git always thinks that those files are changed when accessing the repository via a samba share on windows (tested with PhpStorm).

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

by fabpot at 2011/09/09 05:51:30 -0700

That was on my radar too. Can you do the same for the 2.0 branch?
2011-09-09 14:51:44 +02:00
Fabien Potencier
17f115104d merged branch chx/2.0 (PR #2141)
Commits
-------

24b80ae Removed a leftover use.

Discussion
----------

Removed a leftover use.

lsmith told me to put in this request instead.
2011-09-09 14:50:48 +02:00
Jordan Alliot
95dc7e104c Fixed fourth argument of Filesystem->mirror() 2011-09-09 11:09:47 +01:00
Fabien Potencier
b99bb1e31b merged branch michelsalib/translation-command (PR #2051)
Commits
-------

ef322f6 -- add command that extracts translation messages from templates

Discussion
----------

[2.1] Extracting translation messages from templates

As seen here #1283 and here #2045, I push the command that extract translation from templates.

There are still a lot of new things here, but it seems more manageable.

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

by stof at 2011/09/04 02:04:40 -0700

@michelsalib Could you try to refactor the code to make it more flexible by moving the creating of the file to the dumpers to support other outputs (database...) ?

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

by michelsalib at 2011/09/04 02:35:50 -0700

You are right, I shall do it tonight.

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

by michelsalib at 2011/09/04 11:53:35 -0700

I just pushed a refactoring that should allow more flexibility. Dumpers are now responsive for writing the files. This way it is now possible to implement the DumperInterface that dump to a database and add it to the TranslationWriter.
I updated the tests accordingly.

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

by fabpot at 2011/09/05 23:27:27 -0700

To be consistent with other dumpers in the framework, the dumpers extending `FileDumper` should use `FileDumper` as a suffix like in `YmlFileDumper`.

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

by fabpot at 2011/09/05 23:41:12 -0700

A general note on PHPDoc: The first line of a phpdoc ends with a dot and starts with a present verb like in  `Extracts translation messages from template files.`

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

by michelsalib at 2011/09/06 01:23:31 -0700

I fixed most of the remarks. I just need to go through the phpdoc (in a few minutes).

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

by stloyd at 2011/09/06 01:28:55 -0700

@michelsalib you should use `git rebase` (see [docs](http://symfony.com/doc/current/contributing/code/patches.html#id1)) instead of `git merge`.

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

by michelsalib at 2011/09/06 01:31:06 -0700

@stloyd sorry. I will rebase (squash) everything when I am finished.

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

by kaiwa at 2011/09/06 01:31:18 -0700

Hey, it might be a little bit late, but may i ask a not code-related question?

Is it correct that the `--force` option only means to write the output to a file instead of writing it to stdout?

If so,

1. is it semantically correct? I mean... i'm not a native english speaker, but from unix programs i'm used to interpret a `--force` option as something like "overwrite", "ignore errors" or "suppress warnings". An option which is used in case of trouble most time. Feels confusing to me to be forced ;-) to use the `--force` option for simply writing to files.

2. does it makes sense to have a default behaviour instead of requiring the user to give either `--force` or `--dump-messages`? In which cases does the user wants to dump the messages to the console? Is it only for debugging / to review the messages?

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

by michelsalib at 2011/09/06 01:33:58 -0700

@kaiwa Your concerns seems perfectly right. Initially I just wanted to mimic the `doctrine:schema:update` command. But it can be changed.
@fabpot what do you think ?

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

by michelsalib at 2011/09/06 02:01:22 -0700

@stloyd I tried to do a `git rebase` and I am quite lost. I think I messed something when merge instead of rebase. How can I clean/squash my PR properly ?

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

by stloyd at 2011/09/06 02:11:29 -0700

@michelsalib for now just work as it is ;-) When I back from work I will try to help you to rebase it properly.

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

by michelsalib at 2011/09/06 02:12:17 -0700

@stloyd Thank you !

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

by stloyd at 2011/09/06 12:39:18 -0700

@michelsalib I was trying to rebase your code and revert it this _bad_ commit (merge), but without success.

IMO best way would be making _brand new_ branch based on symfony/master, and the `git cherry-pick` ([hint](http://ariejan.net/2010/06/10/cherry-picking-specific-commits-from-another-branch)) commits you need (almost all in this PR but without this one with merge), then you will need to apply again _by hand_ changes from commit fce24c7fa2 (this clean up you have done there).

I'm sorry I can't give you more help...

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

by michelsalib at 2011/09/07 09:41:36 -0700

@stloyd I finally succeed to fix this PR. Thanks to your help! I must admit the whole thing with `cherry-pick` command was quite epic.
@fabpot Don't be sorry, I am about to fix the PHPDoc. I shall squash right after.

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

by michelsalib at 2011/09/07 10:07:20 -0700

I just squashed and did a last polish of the code. You might want to read it again before merge.

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

by fabpot at 2011/09/07 11:40:48 -0700

 ok, code looks really good now. I think the only missing thing is some more unit tests (for the extractors for instance).

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

by michelsalib at 2011/09/07 12:18:59 -0700

Thanks, I'll look into it tomorrow.

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

by michelsalib at 2011/09/08 15:13:10 -0700

Hi,
I just added unit tests for both extractors (php and yaml).
Concerning the yaml extractor, the test is quite tricky because I need to mock the twig environment while returning a twig tree that contain a trans block and a trans filter. But it work fine with as little side effects as possible. Also I am not sure that the test should be in the TwigBundle.
IMO, the PR seems ready.

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

by stof at 2011/09/08 15:34:41 -0700

As the extractor is in bridge, the tests should be in the folder containing the tests for the bridge in tests/

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

by michelsalib at 2011/09/08 15:41:45 -0700

Thanks @stof, it is now fixed.

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

by michelsalib at 2011/09/09 00:48:47 -0700

thanks @stloyd, it is fixed now.

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

by michelsalib at 2011/09/09 01:25:24 -0700

Fixed again ;)
2011-09-09 11:17:04 +02:00
Karoly Negyesi
24b80aedf3 Removed a leftover use. 2011-09-09 02:13:17 -07: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
Jordan Alliot
ae5230344c [HttpFoundation] Fixed duplicate of request
closes #2133
2011-09-08 12:28:21 +01:00
Jordan Alliot
0bc2a6d67b [HttpFoundation] Added check for disposition value 2011-09-08 10:20:37 +01:00
H. Westphal
a0a97c6a22 Removed executable bits from all php files 2011-09-07 22:51:20 +02:00
H. Westphal
85c380647c Added support for sorting by time like other profiler storage implementations. 2011-09-07 22:38:22 +02:00
H. Westphal
73692c62cf Fixed MongoDbProfilerStorage::find() when passing empty parameters. 2011-09-07 22:32:54 +02:00
H. Westphal
4cd2dec01d Use token as identifier to make usage of the automatically created index. 2011-09-07 20:49:37 +02:00
Fabien Potencier
f15cbc6014 Merge branch '2.0'
* 2.0:
  fix italian translation for branch 2.0
  Added missing method to HTTP Digest entry point
2011-09-07 07:38:06 +02:00
jdreesen
1134c1a1d8 [Validator] Fixed typo in Image constraint 2011-09-06 16:59:08 +02:00
Arnout Boks
522addebe5 [Validator] Fixed typo in Image constraint 2011-09-06 14:34:25 +02:00
Stefano Sala
cd40ed43a3 Added missing method to HTTP Digest entry point 2011-09-06 13:32:33 +02:00
Fabien Potencier
1c0b48930d Merge branch '2.0'
* 2.0:
  [Validator] Sync polish translation
  [FrameworkBundle] sanitize target arg in asset:install command
  few optimisations for XliffFileLoader and XmlFileLoader
  [FrameworkBundle] Sync the Russian translations
  [FrameworkBundle] Added Dutch validator translation for trans-unit 41
  [FrameworkBundle] Updated German validator translation
  [FrameworkBundle] Fixed a typo in the translation file per @PeymanHR
2011-09-06 09:00:04 +02:00
Fabien Potencier
9685b0015c merged branch brki/mimetype-extension-guesser-refactor (PR #1386)
Commits
-------

34494b3 whitespace fixes
1a86a4a Refactor mime-type to file extension guessing
e7481a3 Decouple mime-type to extension logic from File class

Discussion
----------

[2.1] Decouple mimetype-to-extension logic from File class

This allows guessing the extension from a given mime type
without requiring the existence of a local file.

If a file's meta information (mime-type, etc.) is already available (i.e. it's
been extracted once and stored in some persistent data store), it would be
nice to be able to make a best-guess on the extension based on the known mime-type.

A concrete use case of this is for the symfony-cmf, where a file has been stored
in the jackrabbit data store.  When delivering this file or saving it to disk, we'd like to
use an extension that's created based on the known mime type of the file.

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

by brki at 2011/06/21 04:35:13 -0700

Now implemented similarly to the existing MimeTypeGuesser.

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

by brki at 2011/06/21 07:51:22 -0700

whitespace removed

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

by stof at 2011/09/04 05:04:54 -0700

@fabpot @brki what is the status of this PR ?
2011-09-06 08:57:16 +02:00
Fabien Potencier
f75d8ff653 merged branch benjamindulau/ImageValidator (PR #1214)
Commits
-------

89f4791 Fixed CS
a348efe Removed trailing whitespaces
135531a Replaced setExpectedException() methods by annotations
6ad83e7 Updated according to PR review
2de243c * Added Fixtures 2x2px test.gif image file * Updated tests for using fixture image instead of imagecreate function
a5a2dfa [ImageValidator] Added dedicated ImageValidator class with min width, max width, min height and max height validations

Discussion
----------

[2.1] [ImageValidator] Improved ImageValidator + tests

Added dedicated ImageValidator class with min width, max width, min height and max height validations

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

by kriswallsmith at 2011/06/04 10:32:56 -0700

This is nice but doesn't belong in the core as it adds a dependency on GD.

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

by benjamindulau at 2011/06/04 10:41:02 -0700

@kriswallsmith i'm not sure, php.net doc says :

    Note:

    This function does not require the GD image library.

Well, that could also be a mistake :)

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

by pborreli at 2011/06/04 11:17:25 -0700

i think @benjamindulau is right

```
$ php -m
[PHP Modules]
bcmath
calendar
com_dotnet
Core
ctype
date
dom
ereg
filter
ftp
hash
iconv
json
libxml
mcrypt
mhash
mysqlnd
odbc
pcre
PDO
Phar
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
zip
zlib
```

```
$ php -r "var_dump(getimagesize(__DIR__.'/src/Symfony/Bundle/FrameworkBund
le/Resources/public/images/blue_picto_less.gif'));"
array(7) {
  [0]=>
  int(18)
  [1]=>
  int(18)
  [2]=>
  int(1)
  [3]=>
  string(22) "width="18" height="18""
  ["bits"]=>
  int(5)
  ["channels"]=>
  int(3)
  ["mime"]=>
  string(9) "image/gif"
}
```

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

by benjamindulau at 2011/06/04 11:22:57 -0700

However, the tests use imagejpeg and imagedestroy, that's not valid.
But, i'm not sure how to correctly test the validator then.

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

by benjamindulau at 2011/06/04 11:31:51 -0700

Can i use an image from FrameworkBundle resources ?

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

by pborreli at 2011/06/06 03:47:24 -0700

just add your own image inside Fixture folder (smaller the better, 1x1, 1x2 ..)

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

by stof at 2011/09/04 05:27:42 -0700

@benjamindulau could you rebase your PR and update it according to the comments ?

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

by benjamindulau at 2011/09/04 06:31:34 -0700

Yep, i think i can find some time today to do that

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

by benjamindulau at 2011/09/04 09:27:29 -0700

I've updated the PR.

A big thank to Stof who helped me with my git mess ;-)
2011-09-06 08:18:07 +02:00
Fabien Potencier
22548d0537 merged branch stealth35/csv_dumper (PR #2092)
Commits
-------

dea46c7 [Translation] support CsvDumper [Translation] support CsvDumper [Translation] support CsvDumper [Translation] support CsvDumper [Translation] support CsvDumper

Discussion
----------

[2.1][Translation] support CsvDumper

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

by michelsalib at 2011/09/05 04:56:47 -0700

The DumperInterface is probably going to change soon, it should be considered when merging : #2051.
2011-09-06 08:03:26 +02:00
Fabien Potencier
6c9331650f merged branch beberlei/QtTranslations (PR #1154)
Commits
-------

f2761dd Fix typo and include suggestion by Stof
4ac380e Adjust QtTranslations patch and include QtTranslationsDumper + test aswell
5712798 Adjust QtTranslationLoader to throw RuntimeException
21b29c2 Merge symfony/master
6bf43a1 [Translation] Add .ts as file extension to search for Qt Translation files.
5808715 [Translation] Add Qt Translation component with tests

Discussion
----------

[2.1] Qt translations

Add support for QT translations - it has a GUI and www.crowdin.net supports it.

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

by stof at 2011/05/30 07:24:48 -0700

You also need to register it in FrameworkBundle.

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

by tristanbes at 2011/06/26 12:08:47 -0700

crowdin seems to be a cool service. didn't know about this website. thanks

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

by fabpot at 2011/07/11 02:58:31 -0700

Just for the record: I've just removed all usage of `\Exception` in Symfony2 master:

6a7359389d

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

by beberlei at 2011/07/11 03:02:14 -0700

I will adjust the PR.

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

by tristanbes at 2011/08/28 11:10:02 -0700

Any news @beberlei ?

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

by beberlei at 2011/08/29 01:07:28 -0700

Yes, i have to allocate some time. Havent managed to do so yet.

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

by stof at 2011/09/04 05:28:16 -0700

@beberlei the PR also need to be rebased as it conflicts with master.
2011-09-06 08:00:21 +02:00
Fabien Potencier
a00c1f5927 merged branch Wotre/profiler_mongodb (PR #1784)
Commits
-------

41b7a19 Updated the tests so that tests will be marked as skipped when there is no MongoDB server present!
233c7db Updated the code to follow the symfony coding standards
7b24de5 Updated the code to follow the symfony coding standard using stof his remarks
fbcbdde - Fixed a small bug - Updated some phpdoc
00fdfec Added a MongoDbProfilerStorage engine

Discussion
----------

[2.1] [HttpKernel] MongoDb storage for Profiler

As a documentbased database like MongoDB is [supposedly fantastic in logging](http://blog.mongodb.org/post/172254834/mongodb-is-fantastic-for-logging) I implemented a storage engine for the profiler that should enable us to use this database as storage for this.

Activate it using this way:

    framework:
        profiler:
            dsn:     mongodb://user:pass@location/database/collection

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

by stof at 2011/07/24 11:23:06 -0700

btw, the MongoDB session storage has already be rejected from the core so this should probably be moved to the DoctrineMongoDBBundle (even if it uses only the PHP extension and not Doctrine). @fabpot thoughts about this ?

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

by Wotre at 2011/07/24 11:52:56 -0700

Just my personal opinion, if it is prefered that way I will move this into the DoctrineMongoDBBundle.

While it is reasonable to bundle all Mongo related things together, I do believe that in the case of logging we want to avoid as many depencies as possible. Some exceptions can occur pretty early inside the framework, and it would be a shame if those aren't logged because this layer is written on top of doctrine. I'm not exactly familliar enough with the symfony internals as I only started using it a few days ago, but I can imagine that this can make a difference with some exceptions.

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

by stof at 2011/07/24 11:59:10 -0700

I don't ask you to use Doctrine in this code. It is fine to use the extension directly if it is enough.

Btw, the profiler is *not* used early. :)

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

by Wotre at 2011/07/26 10:45:05 -0700

So... Any final remark whether this should be moved to [the DoctrineMongoDBBundle](https://github.com/symfony/DoctrineMongoDBBundle) or not?

If it has to be moved, any comment on where in that bundle this should be put?

Also, if it has to be moved, how can we arrange the configuration using DI? Currently I've put a line in the FrameworkExtension file to use this engine for everything with a $dsn starting with mongodb; I imagine this kind of ugly depency can't really exist between the FrameworkBundle and another one.

Although it seems completely illogical to me, I will move it, but I do need some directions on how to elegantly do this...

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

by stof at 2011/07/26 11:03:04 -0700

@fabpot what do you think ?

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

by stof at 2011/09/04 01:28:48 -0700

@fabpot what do you think about the place where this should be done ?
2011-09-06 07:53:28 +02:00
Fabien Potencier
ed472d36b7 merged branch alexandresalome/new-profiler-storage (PR #1772)
Commits
-------

9f0bd03 [HttpKernel] Update tests for FileProfilerStorage
b7032bc [HttpKernel] Update FileProfileStorage to search from EOF
188a5fa [HttpKernel] Override the existing tokens in FileProfilerStorage
b1b1424 [HttpKernel] Delete folders in the profiler cache
88bc3ec [HttpKernel] Fixes standards of FileProfilerStorage
affe66c Merge remote-tracking branch 'origin/master' into new-profiler-storage
ea916c3 [HttpKernel] Coding convention for the file profiler storage
9ae2c8d [HttpKernel] CS in file storage
b415efd [HttpKernel] Add a test for semicolon in file storage test
1c1215f [HttpKernel] Use subfolders for better storage in file storage of profiler
4b1dc1f [HttpKernel] Fix the folder attribute of file storage to private
70f73e1 [HttpKernel] Fix tests for the file storage of profiler
d5313d9 [HttpKernel] Add tests for the file profiler storage
09fc0a2 [HttpKernel] Add Symfony credits to the file storage class for the profiler
d1d5892 [HttpKernel] Finalize the file storage for the profiler
2f65cf2 Add POC for file storage system

Discussion
----------

[2.1] [HttpKernel] File storage for profiler

Symfony2 has some problems when dealing with multiple concurrency queries in the SQLite storage, resulting in a timeout error or terrible lack.

I've implemented after discussions with @fabpot a filesystem storage.

Enable it in your project with :

    framework:
        profiler:
          dsn:             "file:%kernel.cache_dir%/profiler"

I also studied the possibility to store only big data string in files and rest in the SQLite, but not concluant.

Results of my measures (4 concurrency, 120 total) :

* SQLite with data : 1057ms
* SQLite without data : 615ms
* MySQL : 40ms
* This File storage : 54ms

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

by alexandresalome at 2011/07/22 12:01:10 -0700

An idea for the find method : a csv file containing ip;url;token

The iteration could be done over a big file, without loading the whole file in memory.

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

by alexandresalome at 2011/07/23 14:22:32 -0700

OK new version, with as explained previously : a CSV file containing the index + file for each profile.

The speed is similar to the speed of MySQL, and no memory overhead should occur with this solution.

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

by alexandresalome at 2011/07/23 14:37:14 -0700

Hm... Created tests, duplicated from SqliteProfilerStorageTest.

Any idea on how to put this code in common ? Is it usual to create a base class for 2 tests ?

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

by alexandresalome at 2011/07/23 14:48:39 -0700

Just tested with 24.000 requests, the 24.001'th request still takes less than 50ms to execute.

The index file is about 2Mb, and iterating the whole file is fast.

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

by alexandresalome at 2011/07/23 14:53:19 -0700

I've filled the file with 120Mb of data, requests are still less than 50ms for executing.

Iterating the index takes more than 30s (so it crashed), but it's because of the amount of lines. 30 seconds = 1,400,000 lines in this computer. The file = 1,500,000 lines

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

by alexandresalome at 2011/07/23 14:56:54 -0700

I've tested it with Linux, is someone can test with Windows

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

by stloyd at 2011/07/24 00:32:32 -0700

IMO to speedup it a bit more and not end up with "crash" (to not end with "limit" of files per directory, also to many files in dir slow down every OS) you should use same method to write as Twig, split up files in to directories. If you do this you can speed up index more, because you can create smaller one per directory.

Also you should fix CS (coding standards).

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

by stloyd at 2011/07/24 02:10:20 -0700

Tested on Win 7, seems ok. Similar speed to sqlite, dunno why ;-) but used a bit less of memory.

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

by alexandresalome at 2011/07/24 02:13:21 -0700

Did you tried with concurrent requests ? It makes sense when you use assetic
and your browser hits the application 4 times simultaneously for CSS
generation

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

by alexandresalome at 2011/07/24 02:17:23 -0700

I used Apache Benchmark for producing results :

    ab -c 4 -n 120 URL

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

by alexandresalome at 2011/07/24 02:56:55 -0700

OK I used subfolders, based on last characters (because the first part of token is mostly the same between queries.

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

by stof at 2011/09/04 01:27:15 -0700

@fabpot any news about it ? Can it be merged ?
2011-09-06 07:45:55 +02:00
Teo
bbb68b7df9 Added RSS HTTP request format 2011-09-05 17:10:26 +03:00
stealth35
8d50c162b9 few optimisations for XliffFileLoader and XmlFileLoader 2011-09-05 15:06:29 +02:00
stealth35
dea46c721f [Translation] support CsvDumper
[Translation] support CsvDumper
[Translation] support CsvDumper
[Translation] support CsvDumper
[Translation] support CsvDumper
2011-09-05 13:14:52 +02:00
Benjamin Eberlei
f2761dd627 Fix typo and include suggestion by Stof 2011-09-04 20:47:45 +02:00
Benjamin Eberlei
4ac380e016 Adjust QtTranslations patch and include QtTranslationsDumper + test aswell 2011-09-04 20:43:59 +02:00
Benjamin Eberlei
571279823a Adjust QtTranslationLoader to throw RuntimeException 2011-09-04 20:29:01 +02:00
Benjamin Eberlei
21b29c201b Merge symfony/master 2011-09-04 20:25:40 +02:00
Benjamin Dulau
89f4791704 Fixed CS 2011-09-04 19:10:51 +02:00
Benjamin Dulau
a348efec19 Removed trailing whitespaces 2011-09-04 18:12:05 +02:00
Benjamin Dulau
6ad83e7970 Updated according to PR review 2011-09-04 17:45:25 +02:00
Benjamin Dulau
a5a2dfaaa6 [ImageValidator] Added dedicated ImageValidator class with min width, max width, min height and max height validations 2011-09-04 17:28:46 +02:00
Jordi Boggiano
536d9790c3 [Console] Added Command::isEnabled method that defines whether to add the command or not 2011-09-04 17:12:33 +02:00
Wouter Van Hecke
233c7db191 Updated the code to follow the symfony coding standards 2011-09-04 14:38:29 +02:00
Fabien Potencier
dccd2d560f [HttpFoundation] implemented RFC6266 (Content-Disposition header)
references:

 * http://trac.tools.ietf.org/wg/httpbis/trac/wiki/ContentDispositionProducerAdvice
 * https://github.com/mnot/sweet/blob/master/lib/index.js
 * http://www.mnot.net/blog/2011/09/02/rfc6266_and_content-disposition
2011-09-04 09:35:13 +02:00
Fabien Potencier
e7b2d2d659 merged 2.0 branch 2011-09-04 09:28:37 +02:00
Fabien Potencier
adb7291b67 Merge branch 'EvanK-patch-1' into 2.0
* EvanK-patch-1:
  Per the [documentation][1], the `NotBlank` constraint should be using the `empty` language construct, otherwise it will not trigger on, for example, a boolean false from an unchecked checkbox field.
2011-09-02 09:39:11 +02:00
Evan Kaufman
639513a67a Per the [documentation][1], the NotBlank constraint should be using the empty language construct, otherwise it will not trigger on, for example, a boolean false from an unchecked checkbox field.
[1]: http://symfony.com/doc/2.0/reference/constraints/NotBlank.html
2011-09-02 09:37:48 +02:00
Fabien Potencier
74a77af694 merged branch stealth35/mime_wildcard (PR #2075)
Commits
-------

5a47010 [Validator] FileValidator allow MIME with wildcard

Discussion
----------

[Validator] FileValidator allow MIME with wildcard

 - Allow MIME with wildcard like `image/*`
 - Image constraint use wildcard mime

(squash failed sorry #2068)
2011-09-01 16:19:23 +02:00
stealth35
5a470103f0 [Validator] FileValidator allow MIME with wildcard 2011-09-01 16:10:16 +02:00
Tom Klingenberg
e991c595b8 [Console] Improved checks for InputArgument and InputOption constructor's $mode parameter.
Check that $mode in InputArgument::__construct() is not below 1 to actually look if any of the flags are set.
Check that $mode in InputOption::__construct() is not below 1 to actually look if any of the flags are set.
Check for the correct parameter type, as in InputOption (integer).
InputArgumentTest: Added test for negative integer $mode parameter input in constructor.
InputOptionTest: Added test for negative integer $mode parameter input in constructor.
2011-08-31 23:53:00 +02:00
William DURAND
f448029061 [HttpKernel] Tweaked SQLite to speed up SqliteProfilerStorage
See: http://stackoverflow.com/questions/6108602/avoiding-locked-sqlite-database-timeouts-with-php-pdo
2011-08-31 13:29:56 +02:00
Fabien Potencier
a6670c214a [Routing] fixed a caching issue when annotations are used on a base class used by more than one concrete class
Doctrine caches annotations. For methods, it uses PHP reflection and the getDeclaringClass() to create
a unique cache key. Unfortunately, if you have 2 classes that extend another one, the cache will be shared.
It's not a problem except that before this patch, the default route name was also cached (as the cache is serialized
after we changed the object). So, all other classes inherited this default route name. The fix is quite easy:
just don't change the read annotation object.
2011-08-30 21:39:58 +02:00
Fabien Potencier
946ccb6bd2 [Routing] fixed annotation loaders for abstract classes, added more unit tests 2011-08-30 20:57:43 +02:00
Fabien Potencier
6a81f07862 [Routing] made a small speed optimization 2011-08-30 20:53:32 +02:00
Fabien Potencier
053b42158e [Templating] added better support for encoding problems when escaping a string (available as of PHP 5.4)
From the PHP CHANGELOG:

The flag ENT_SUBSTITUTE makes invalid multibyte sequences be replaced by
U+FFFD (UTF-8) or &#FFFD; by htmlspecialchars and htmlentities. It is an
alternative to the default behavior, which just returns an empty string and to
ENT_IGNORE, which is a security risk. The behavior follows the recommendations
of Unicode Technical Report #36.
2011-08-30 07:43:00 +02:00
Fabien Potencier
93ea745397 merged branch henrikbjorn/autoload (PR #1857)
Commits
-------

ae3b128 [ClassLoader] Support for autoloading include_path incl. tests.

Discussion
----------

Autoload

GH Issue #1823

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

by stof at 2011/07/29 00:42:10 -0700

note that another fix was proposed in #1852 but this implementation is cleaner IMO

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

by henrikbjorn at 2011/08/12 01:57:45 -0700

@fabpot @stof any suggestions? need this kind of badly

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

by stof at 2011/08/12 02:06:54 -0700

for me it is fine. I guess you need to wait the end of @fabpot's holydays to see it merged.

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

by henrikbjorn at 2011/08/25 02:24:13 -0700

Added tests in the hope it will make it in soon :)

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

by henrikbjorn at 2011/08/29 03:31:08 -0700

Any other requests / suggestions ?

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

by stof at 2011/08/29 03:36:15 -0700

could you rebase the PR ? Github says that it conflicts.

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

by henrikbjorn at 2011/08/29 04:11:43 -0700

Should be rebased now or that is what git cli says :)

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

by henrikbjorn at 2011/08/29 04:16:28 -0700

And squashed.
2011-08-29 15:37:03 +02:00
alexandresalome
b7032bc971 [HttpKernel] Update FileProfileStorage to search from EOF 2011-08-29 15:34:31 +02:00
Fabien Potencier
0eae562cb2 converted file_exists calls to either is_file or is_dir where it makes sense 2011-08-29 15:28:26 +02:00
Michel Salib
6278fcb306 -- add dumpers for translation component
-- update license and phpDoc

-- fix CS

-- remove pot file loader

-- add unit tests
2011-08-29 14:06:21 +02:00
alexandresalome
188a5fa1ab [HttpKernel] Override the existing tokens in FileProfilerStorage 2011-08-29 13:58:35 +02:00
alexandresalome
b1b1424f48 [HttpKernel] Delete folders in the profiler cache 2011-08-29 13:57:30 +02:00
alexandresalome
88bc3ecf3d [HttpKernel] Fixes standards of FileProfilerStorage 2011-08-29 13:52:48 +02:00
alexandresalome
affe66c949 Merge remote-tracking branch 'origin/master' into new-profiler-storage 2011-08-29 13:44:52 +02:00
Henrik Bjørnskov
ae3b12801f [ClassLoader] Support for autoloading include_path incl. tests. 2011-08-29 13:15:35 +02:00
Luis Muñoz
723cb71390 [Translation] Add compatibility to PCRE 6.6.0 for explicit interval pluralization 2011-08-28 22:05:29 +02:00
Fabien Potencier
a74605532e merged branch chEbba/xdebug_file_link_format (PR #1927)
Commits
-------

cc098a3 [HttpKernel] Add support for xdebug.file_link_format to Debug\ExceptionHandler.php

Discussion
----------

[HttpKernel] Add support for xdebug.file_link_format to Debug\ExceptionHandler

Format file and line as url, if xdebug.file_link_format is set. Inspired by #1893
2011-08-27 08:08:25 +02:00
Fabien Potencier
f9be0f2623 merged branch brikou/finder_exclude_dirs (PR #1926)
Commits
-------

5be62f6 made exclude method accept array of dirs

Discussion
----------

[2.1] [Finder] made "exclude" method accept array of dirs (as "in" method)
2011-08-27 08:00:11 +02:00
Fabien Potencier
07bdb8ac84 merged branch stloyd/patch-3 (PR #2011)
Commits
-------

020fa51 [RedirectResponse] Added missing `doctype` and `title` tag

Discussion
----------

[RedirectResponse] Added missing `doctype` and `title` tag
2011-08-26 18:08:50 +02:00
Fabien Potencier
2ccee10c51 merged branch stealth35/mime_guesser (PR #1874)
Commits
-------

ea0db2d [HttpFoundation] Remove useless ContentTypeMimeTypeGuesser

Discussion
----------

[2.1] [HttpFoundation] Remove useless ContentTypeMimeTypeGuesser

`mime_content_type` exists just for the compat between the old PHP 5.2
`mime_magic` extension and `file_info` extension

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

by fabpot at 2011/08/19 05:31:25 -0700

I will merge it in 2.1 as some people might rely on it.

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

by stealth35 at 2011/08/19 05:46:02 -0700

ok in the meantime, we can invert the guesser checker :

```php
/**
 * Registers all natively provided mime type guessers
 */
private function __construct()
{
    if (FileBinaryMimeTypeGuesser::isSupported()) {
        $this->register(new FileBinaryMimeTypeGuesser());
    }

    if (FileinfoMimeTypeGuesser::isSupported()) {
        $this->register(new FileinfoMimeTypeGuesser());
    }

    if (ContentTypeMimeTypeGuesser::isSupported()) {
        $this->register(new ContentTypeMimeTypeGuesser());
    }
}
```

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

by stloyd at 2011/08/19 05:48:38 -0700

@stealth35 You should make new PR for change you mentioned above.

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

by stealth35 at 2011/08/19 05:53:12 -0700

@stloyd done PR #1989

EDIT : forget this
2011-08-26 17:49:56 +02:00
Fabien Potencier
a8609e1eab merged branch lsmith77/add_patch_support (PR #1916)
Commits
-------

007e395 do not set a default CONTENT_TYPE for PATCH
fa2c027 Added support for the PATCH method

Discussion
----------

[2.1] [HttpFoundation] Added support for the PATCH method

http://tools.ietf.org/html/rfc2068#section-19.6.1.1
http://tools.ietf.org/html/rfc5789

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

by Seldaek at 2011/08/07 03:23:20 -0700

According to the spec it seems that PATCH requests shouldn't be of application/x-www-form-urlencoded content-type so it shouldn't match the first if, and in the second it's probably wrong to default to application/x-www-form-urlencoded, no?

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

by lsmith77 at 2011/08/07 03:31:48 -0700

Hmm you are right. I assumed the diff would be encoded as ``application/x-www-form-urlencoded`` but there indeed is no indication of that in the spec. But given that the second case would still need some sort of handling for PATCH, just not sure what exactly ``$defaults['CONTENT_TYPE']`` should be set to.

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

by Seldaek at 2011/08/07 03:48:53 -0700

As I understand it, a PATCH request must specify a content-type or it's invalid, so we could just skip the second behavior if no content-type is present.

As your first link says:

    The list of differences is in a format defined by the media type of the entity (e.g.,
    "application/diff") and MUST include sufficient information to allow
    the server to recreate the changes necessary to convert the original
    version of the resource to the desired version.

Sounds like PATCH is highly application specific, and not so standardized, probably because it's not very useful for most purposes.

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

by lsmith77 at 2011/08/07 04:02:43 -0700

Yes, but to me this means that the patch is actually correct aside from the fact that its setting a default Content-Type, which I just corrected (not sure if this use of switch is ok with our coding style). Now if the Content-Type does end up being ``application/x-www-form-urlencoded`` then I would say its correct to decode it.
2011-08-26 17:44:39 +02:00
Jordan Alliot
9a05db0e7e Simplified Filesystem->copy() 2011-08-26 09:37:17 +01:00
Fabien Potencier
98966c8779 updated VERSION and deps 2011-08-26 09:59:43 +02:00
Fabien Potencier
8f50592f31 [HttpFoundation] changed \LogicException to \InvalidArgumentException 2011-08-26 08:45:12 +02:00
Fabien Potencier
1c7694ff30 [HttpFoundation] added a missing exception 2011-08-25 10:38:08 +02:00
Joseph Bielawski
542cfd62df [ServerBag] Skip unnecessary loop in getHeaders() 2011-08-24 21:56:02 +03:00
Joseph Bielawski
020fa51c54 [RedirectResponse] Added missing doctype and title tag 2011-08-24 05:31:42 +03:00
Daniel Holmes
e294211343 [DomCrawler] Removed unused document property in Form 2011-08-24 13:45:37 +10:00
Jeremy Mikola
39fabab013 [EventDispatcher] Fix removeSubscriber() to work with priority syntax 2011-08-23 16:41:08 -04:00
Fabien Potencier
0c6f47fcf3 Merge branch 'domcrawler-disabled-fields'
* domcrawler-disabled-fields:
  [DomCrawler] fixed disabled fields in forms (they are available in the DOM, but their values are not submitted -- whereas before, they were simply removed from the DOM)
  $node->hasAttribute('disabled') sf2 should not create disagreement between implementation and practice for a crawler. If sahi real browser can find an element that is disabled, then sf2 should too. https://github.com/Behat/Mink/pull/58#issuecomment-1712459
2011-08-23 16:00:30 +02:00
Fabien Potencier
3380f2a039 [DomCrawler] fixed disabled fields in forms (they are available in the DOM, but their values are not submitted -- whereas before, they were simply removed from the DOM) 2011-08-23 11:21:48 +02:00
Fabien Potencier
04a549bf6e merged branch cordoval/patch-1 (PR #1890)
Commits
-------

8a980bd $node->hasAttribute('disabled') sf2 should not create disagreement between implementation and practice for a crawler. If sahi real browser can find an element that is disabled, then sf2 should too. https://github.com/Behat/Mink/pull/58#issuecomment-1712459

Discussion
----------

$node->hasAttribute('disabled') sf2 should not create disagreement betwee

$node->hasAttribute('disabled') sf2 should not create disagreement between implementation and practice for a crawler. If sahi real browser can find an element that is disabled, then sf2 should too.
https://github.com/Behat/Mink/pull/58#issuecomment-1712459

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

by cordoval at 2011/08/09 20:34:56 -0700

@fabpot please let me know if this is going to be in sometime soon or not, just wondering why it is deviating ...

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

by fabpot at 2011/08/23 01:11:42 -0700

I have just checked in a browser and the Symfony2 implementation is actually the right one.

Try this in a browser:

    <form action='#' method="post">
        <input name="foo" disabled="disabled" value="foo" />
        <input name="bar" value="bar" />

        <input type="submit" />
    </form>

    <?php

    print_r($_POST);

    // output: Array ( [bar] => bar ) when the form is submitted

And here is the discussion about it in the HTML4 spec: http://www.w3.org/TR/html4/interact/forms.html#h-17.12:

"In this example, the INPUT element is disabled. Therefore, it cannot receive user input nor will its value be submitted with the form."

And the same is tru for HTML5: http://www.w3.org/TR/html5/association-of-controls-and-forms.html#constructing-form-data-set

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

by cordoval at 2011/08/23 01:29:53 -0700

@fabpot I guess you got my scenario wrong. I am not trying to submit any form. I am just happen to have a disabled box that is checked and I want to read with the DOM Crawler that is checked. Not to submit or anything but for the purposes of testing.

Please consider also that this request comes from asserting values using behat mink, mink is fully dependent on sf2 driver for when it is used except it is told to use a different driver like a real browser like sahi. When testing in chrome and firefox, the verification with the DOM is made that the disabled box is checked properly. Symfony2 DOM Crawler however misses that spot for that use.

Even in the case where Symfony2 DOM Crawler component would have been thought not for this purpose of testing, or further for this particular scenario it would be good to make it more reusable for this kind of scenario.

Just saying....

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

by fabpot at 2011/08/23 02:00:34 -0700

Indeed, I didn't get your issue right. So, basically, all fields should be in the form, but the disabled field values should not be submitted (that makes sense).

I've prepared a fix in this patch: e8852586073bc23d4a41f4cd9cbe0d17a2f0c76d which is in the symfony/domcrawler-disabled-fields branch for now as I don't know if we can make this change in 2.0 or if we need to put it in 2.1.

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

by cordoval at 2011/08/23 02:15:01 -0700

oh no I was hoping to enter the authors, you already did the fix :'(
2011-08-23 11:21:17 +02:00
Fabien Potencier
1bb53b8b7f merged branch Abhoryo/patch-1 (PR #1956)
Commits
-------

e9d2a67 CS
3a64b08 Search in others user providers when a user is not found in the first user provider and throws the right exception.

Discussion
----------

Chain user provider doesn't search in all user providers

I commit these changes because Chain user provider doesn't search in all user providers.

Example with the Acme/DemoBundle:

    // security.yml
    ...
        providers:
            chain_provider:
                providers: [in_memory, in_memory_extend]
            in_memory_extend:
                users:
                    admin2: { password: adminpass2, roles: [ 'ROLE_ADMIN' ] }
            in_memory:
                users:
                    user:  { password: userpass, roles: [ 'ROLE_USER' ] }
    ...
        firewalls:
    ...
            secured_area:
                pattern:    ^/demo/secured/
                provider: chain_provider OR in_memory_extend
    ...

We can see these logs :

    security.INFO: User "admin2" has been authenticated successfully [] []
    security.DEBUG: Write SecurityContext in the session [] []
    security.DEBUG: Read SecurityContext from the session [] []
    security.DEBUG: Reloading user from user provider. [] []
    security.WARNING: Username "admin2" could not be found. [] []

The new code search in others user providers when a user is not found in the first user provider and throws the right exception.

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

by lsmith77 at 2011/08/14 12:20:04 -0700

I wonder if it should be a provider option to continue on a failed user lookup. I can see cases where you really dont want to iterate over all providers and others where you do.

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

by Abhoryo at 2011/08/14 17:27:16 -0700

If someone need a provider like you describe, he can create one.
Here we talk about a chain user provider.

Doc : [using-multiple-user-providers](http://symfony.com/doc/current/book/security.html#using-multiple-user-providers)

We can read in the doc: "The chain_provider will, in turn, try to load the user from both the in_memory and user_db providers."
But its not the case right now.
2011-08-23 08:52:35 +02:00
Fabien Potencier
0b531932a0 merged branch stloyd/issue_1986 (PR #2000)
Commits
-------

c29fa9d [Form] Fix for treatment zero as empty data. Closes #1986

Discussion
----------

[Form] Fix for treatment zero as empty data. Closes #1986

For more info please read #1986.
2011-08-23 08:44:09 +02:00
Fabien Potencier
2b1bb2c357 [Form] added missing DelegatingValidator registration in the Form Extension class (used when using the Form component outside a Symfony2 project where the validation.xml is used instead) 2011-08-22 22:35:46 +02:00
Ryan Weaver
fdd2e7a30a [Form] Fixing a bug where setting empty_value to false caused a variable to not be found 2011-08-22 15:12:16 -05:00
Fabien Potencier
274eff0e5d merged branch igorw/eventdispatcher-license (PR #1997)
Commits
-------

8d48cea [EventDispatcher] Change the license of EventDispatcher from LGPL to MIT

Discussion
----------

[EventDispatcher] Change the license of EventDispatcher from LGPL to MIT

It was previously agreed to re-license the Doctrine2 based
EventDispatcher refactoring to use the MIT license. However, the files
still retain the LGPL license notice.

This commit changes the license to MIT.

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

by fabpot at 2011/08/21 05:55:00 -0700

That's right but I would prefer that the PR comes from someone of the Doctrine core team like @beberlei or @jwage.

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

by fabpot at 2011/08/21 05:55:28 -0700

or at least, they can perhaps acknowledge this PR.

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

by beberlei at 2011/08/22 00:11:20 -0700

Acknowledged
2011-08-22 17:54:17 +02:00
stloyd
c29fa9d64e [Form] Fix for treatment zero as empty data. Closes #1986 2011-08-22 15:19:31 +02:00
Fabien Potencier
12a852e18b [Yaml] made a small optimization 2011-08-22 15:06:47 +02:00
Igor Wiedler
8d48cea9e1 [EventDispatcher] Change the license of EventDispatcher from LGPL to MIT
It was previously agreed to re-license the Doctrine2 based
EventDispatcher refactoring to use the MIT license. However, the files
still retain the LGPL license notice.

This commit changes the license to MIT.
2011-08-21 14:32:21 +02:00
Robert Campbell
72d71b52f2 Cleaned up unused code in Symfony\Component\EventDispatcher\EventDispatcher::getListeners() 2011-08-20 15:44:49 -05:00
Fabien Potencier
b66eb4db57 merged branch stloyd/form_datetime_transformer (PR #1851)
Commits
-------

d880db2 [Form] Test covered fix for invalid date (13 month/31.02.2011 etc.) send to transformer. Closes #1755
df74f49 Patched src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToArrayTransformer.php to throw an exception when an invalid date is passed for transformation (e.g. 31st February)

Discussion
----------

[Form] Fix for "DateTimeToArrayTransformer" with invalid dates

Hey,

this is test covered fix from @mdavis1982 (closes #1755)

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

by stloyd at 2011/08/16 01:31:32 -0700

@fabpot Can we have this fix merged ?
2011-08-19 14:26:00 +02:00
Fabien Potencier
a5ccda47b4 merged branch martinmayer/session_saving (PR #1937)
Commits
-------

34a1b53 [HttpFoundation] Do not save session in Session::__destroy() when saved already

Discussion
----------

[HttpFoundation] Saving session data in __destroy() has a side effect on functional tests

Having functional test with several non-insulated requests, TestSessionListener invokes session saving at the end of every request. But instance of Session remains in memory until it's collected by garbage collector which saves the same data again in __destroy() method. The problem is that session object can get collected after other requests changed session data (e. g. user logged in) resulting in former data overwriting the latter.
2011-08-19 14:17:33 +02:00
Fabien Potencier
88b1dd7576 merged branch schmittjoh/visibilityChange (PR #1977)
Commits
-------

3dcb238 increased visibility of httpUtils property

Discussion
----------

increased visibility of httpUtils property
2011-08-19 14:14:38 +02:00
Fabien Potencier
95719e78ad merged branch schmittjoh/requestMethodOverrideFix (PR #1980)
Commits
-------

a1d9fed updated tests
b6ee1a6 fixes a bug when overriding method via the X-HTTP-METHOD-OVERRIDE header

Discussion
----------

Request method override fix
2011-08-19 14:13:57 +02:00
Fabien Potencier
ea800c2e51 merged branch hidenorigoto/validator_pattern_late_static_bind (PR #1914)
Commits
-------

275da0d [Validator] changed 'self' to 'static' for child class to override pattern constant

Discussion
----------

[Validator] change 'self::' to 'static::' for PATTERN constant overridable in child classes

In TimeValidator and UrlValidator, PATTERN constant is not used with late static bind(static::) while DateValidator supports it.
2011-08-19 14:11:41 +02:00
Fabien Potencier
e7ec02ffcc merged branch Gregwar/email_guessing (PR #1970)
Commits
-------

80d1718 [Fix] Email() constraints now guess as 'email' field type

Discussion
----------

[Fix] Email() constraints now guess as 'email' field type

I don't know what this was set to "text"
2011-08-19 14:03:35 +02:00
Johannes Schmitt
b6ee1a67a7 fixes a bug when overriding method via the X-HTTP-METHOD-OVERRIDE header 2011-08-18 12:18:12 +02:00
Johannes Schmitt
3dcb238cd6 increased visibility of httpUtils property 2011-08-18 08:51:56 +02:00
Grégoire Passault
80d1718a62 [Fix] Email() constraints now guess as 'email' field type 2011-08-16 14:27:16 +02:00
Fabien Potencier
d1ad47c0eb merged branch krmcbride/form-doc-fixes (PR #1959)
Commits
-------

e3cb39d [Form] Fixed a few PHPDoc comments

Discussion
----------

[Form] Fixed a few PHPDoc comments
2011-08-14 18:27:26 +02:00
Fabien Potencier
36226913be merged branch pylebecq/master (PR #1958)
Commits
-------

e88ecbb [Form] Fixed a typo in AbstractType phpdoc

Discussion
----------

[Form] Fixed a typo in AbstractType phpdoc

This PR is a new version of PR #1862.

Original comment :
Hi,
Nothing really awesome, but I fixed a typo in some phpdoc of the AbstractType class.
2011-08-14 18:27:01 +02:00
Kevin McBride
e3cb39dd9f [Form] Fixed a few PHPDoc comments 2011-08-14 08:43:34 -07:00
Fabien Potencier
5d4b8a7c88 merged branch aboks/acl_voter (PR #1954)
Commits
-------

09c41d3 [Security] Fixed incorrect merge of two modifications (53f5c23c and 85199677) to AclVoter

Discussion
----------

[Security] Fixed incorrect merge of two modifications to AclVoter

It seems two modifications to `AclVoter` (53f5c23c and 85199677) have been merged incorrectly, leading to a method call on an object that is known to be `null` and a fatal error when running the tests
2011-08-14 10:54:09 +02:00
Abhoryo
e9d2a67c1f CS 2011-08-14 01:38:02 +03:00
Abhoryo
3a64b08bd9 Search in others user providers when a user is not found in the first user provider and throws the right exception. 2011-08-14 00:00:10 +03:00
Fabien Potencier
283097db09 Revert "expanded namespaces within phpdoc (special for PhpStorm)"
This reverts commit 6e7439e73a.
2011-08-13 19:27:36 +02:00
lenar
805a2672d0 Remove Content-Length header adding for now. Fixes #1846. 2011-08-13 17:30:17 +03:00
Pierre-Yves LEBECQ
e88ecbbbfd [Form] Fixed a typo in AbstractType phpdoc 2011-08-13 13:43:13 +02:00
Arnout Boks
09c41d32ca [Security] Fixed incorrect merge of two modifications (53f5c23c and 85199677) to AclVoter 2011-08-13 12:46:41 +02:00
Fabien Potencier
941d05b8a4 merged branch realmfoo/master (PR #1932)
Commits
-------

4f9d229 The trace argument value could be string ("*DEEP NESTED ARRAY*")
6e7439e expanded namespaces within phpdoc (special for PhpStorm)
f0a6ee5 merge from master
8519967 Calling supportsClass from vote to find out if we can vote

Discussion
----------

The trace argument of an exception can be string (*DEEP NESTED ARRAY*) but with an array type specified

It leads to the exception of a foreach loop:

Invalid argument supplied for foreach() /.../vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/CodeHelper.php:103
2011-08-13 10:49:16 +02:00
Fabien Potencier
81c82fec9b merged branch oncletom/patch-1 (PR #1947)
Commits
-------

ae55a98 Added $format in serialize() method, to keep consistence and give a hint to the normalizer.

Discussion
----------

Added $format in serialize() method, to keep consistence and give a hint

Added $format in serialize() method, to keep consistence and give a hint to the normalizer.

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

by Seldaek at 2011/08/12 02:06:19 -0700

👍
2011-08-13 10:47:09 +02:00
Fabien Potencier
ec529fb7af merged branch patashnik/dom_crawler_charset (PR #1933)
Commits
-------

81fb8e1 [DomCrawler] fix finding charset in addContent

Discussion
----------

[DomCrawler] fix finding charset in addContent

According to http://www.ietf.org/rfc/rfc2045.txt content type can include other field after charset. So they should be cut.
2011-08-13 10:37:29 +02:00
Fabien Potencier
6fd9b62ac6 merged branch hhamon/validator_phpdoc_typo (PR #1936)
Commits
-------

d7c93ca [Validator] fixed phpdoc.

Discussion
----------

[Validator] fixed phpdoc.
2011-08-13 10:31:19 +02:00
Fabien Potencier
7f3b6baf3a [ClassLoader] fixed CS 2011-08-13 10:30:20 +02:00
Oncle Tom
ae55a98604 Added $format in serialize() method, to keep consistence and give a hint to the normalizer. 2011-08-12 12:01:28 +03:00
Baptiste Clavié
7ec533eb93 got an if-condition out of unnecessary loops in Symfony\Component\ClassLoader\UniversalClassLoader 2011-08-11 16:23:36 +03:00
Martin Mayer
34a1b53168 [HttpFoundation] Do not save session in Session::__destroy() when saved already 2011-08-10 16:34:36 +02:00
Hugo Hamon
d7c93cacd0 [Validator] fixed phpdoc. 2011-08-10 16:11:31 +02:00
Alexey Popkov
81fb8e16e7 [DomCrawler] fix finding charset in addContent 2011-08-10 13:41:07 +04:00
realmfoo
6e7439e73a expanded namespaces within phpdoc (special for PhpStorm) 2011-08-10 11:16:31 +04:00
realmfoo
f0a6ee5a4d merge from master 2011-08-10 10:59:19 +04:00
Kirill chEbba Chebunin
cc098a3c14 [HttpKernel] Add support for xdebug.file_link_format to Debug\ExceptionHandler.php 2011-08-10 00:19:12 +04:00
Brikou CARRE
5be62f6606 made exclude method accept array of dirs 2011-08-09 18:23:43 +02:00
Gregwar
a1810d6881 [Various] Fixed errors on PHPDocs exception names (TransformationFailedException) 2011-08-09 00:14:29 +02:00
Fabien Potencier
54999ef02d [HttpKernel] made a small internal refactoring to ease extensibility 2011-08-08 23:20:53 +02:00
Fabien Potencier
be031f54a1 [HttpKernel] fixed ControllerResolver when the controller is a class name with an __invoke() method 2011-08-08 23:20:03 +02:00
Lukas Kahwe Smith
007e3955b8 do not set a default CONTENT_TYPE for PATCH 2011-08-07 13:01:39 +02:00
Lukas Kahwe Smith
fa2c0273ec Added support for the PATCH method
http://tools.ietf.org/html/rfc2068#section-19.6.1.1
http://tools.ietf.org/html/rfc5789
2011-08-07 12:07:28 +02:00
hidenorigoto
275da0d478 [Validator] changed 'self' to 'static' for child class to override pattern constant 2011-08-07 15:48:14 +09:00
Luis Cordova
8a980bd1e1 $node->hasAttribute('disabled') sf2 should not create disagreement between implementation and practice for a crawler. If sahi real browser can find an element that is disabled, then sf2 should too.
https://github.com/Behat/Mink/pull/58#issuecomment-1712459
2011-08-02 15:13:21 -05:00
Jordi Boggiano
908a7a35be [HttpFoundation] Fix bug in clearCookie/removeCookie not clearing cookies set with a default '/' path, unless it was explicitly specified 2011-08-02 19:30:11 +02:00
Fabien Potencier
b463646ce0 merged branch Seldaek/ucl_exception (PR #1825)
Commits
-------

c0571fc [ClassLoader] Improve exception messages of the debug class loader

Discussion
----------

[ClassLoader] Improve exception messages of the debug class loader

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

by Seldaek at 2011/07/31 14:01:40 -0700

Ok, I updated this to just clarify the message, because when I got the issue after some serious copy-paste coding, I thought it was quite confusing - it seems to imply you mistyped the class name when using the class, and therefore it was not found, while the typo is in the class's file itself.
2011-08-02 09:24:13 +02:00
Michel Salib
1087792f7e -- fix use of STDIN 2011-08-01 02:02:37 +02:00
Jordi Boggiano
c0571fc08c [ClassLoader] Improve exception messages of the debug class loader 2011-07-31 22:59:22 +02:00
stealth35
ea0db2d6f4 [HttpFoundation] Remove useless ContentTypeMimeTypeGuesser
mime_content_type exists just for the compat between the old PHP 5.2
mime_magic extension and file_info extension
2011-07-31 14:07:00 +02:00
stloyd
d880db2791 [Form] Test covered fix for invalid date (13 month/31.02.2011 etc.) send to transformer. Closes #1755 2011-07-28 12:16:58 +02:00
Matthew Davis
df74f49a49 Patched src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToArrayTransformer.php to throw an exception when an invalid date is passed for transformation (e.g. 31st February) 2011-07-28 12:16:57 +02:00
Alexander
cbbdcebff5 [HttpFoundation] Fixed incorrect ServerBag comment 2011-07-28 11:27:56 +02:00
Fabien Potencier
c3ebdbf9cc prepared Symfony 2.0.0 release 2011-07-28 10:41:06 +02:00
Fabien Potencier
bcf5cebcff merged branch pborreli/last-day-typo (PR #1845)
Commits
-------

de5374e [Various] Typos

Discussion
----------

[Various] Typos
2011-07-28 10:39:55 +02:00
Pascal Borreli
de5374ebac [Various] Typos 2011-07-28 10:28:20 +02:00
Hugo Hamon
f2e4d35931 [Console] harmonized commands documentation by changing ./app/console to php app/console. 2011-07-28 10:01:57 +02:00
Lukas Kahwe Smith
6773cd7e05 [Serializer] removed @api since its not yet part of the stable API 2011-07-28 08:32:22 +02:00
lenar
07298ac699 Detect EOF when reading input stream
[Console] Change back to fgets() in DialogHelper
2011-07-27 10:47:43 +03:00
Fabien Potencier
8700cd6154 fixed CS 2011-07-27 08:27:46 +02:00
Elliot Anderson
d664f5f087 Changed the wording of the exception thrown when Bundle::getAlias() returns something different to the Container::underscore version, fixes #1768 2011-07-26 20:18:06 +10:00
Fabien Potencier
853935fbab [HttpFoundation] made PHP_AUTH_PW optional 2011-07-26 09:32:45 +02:00
Fabien Potencier
37a127aca3 merged branch snc/patch-1 (PR #1790)
Commits
-------

5219f81 Using the $status parameter instead of fixed value when creating a RedirectResponse.

Discussion
----------

Using the $status parameter instead of fixed value

I checked the usages and the optional `$status` parameter is never used, so maybe another option would be to remove the parameter completely...

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

by jaugustin at 2011/07/25 03:11:00 -0700

maybe you could test that $status is a valid redirect code

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

by stloyd at 2011/07/25 04:40:21 -0700

@jaugustin This check is already included in `RedirectResponse` class.
2011-07-26 09:23:40 +02:00
Fabien Potencier
91a41020a8 merged branch sasezaki/BrowserKit_useragent (PR #1789)
Commits
-------

266e60e Don't tell a lie to every WebServers

Discussion
----------

Please don't tell a lie to every WebServers

Fake Useragent name should be only in test case .
2011-07-26 09:21:10 +02:00
Fabien Potencier
04ac1fdba2 [Routing] changed UrlGeneratorInterface::generate() signature to allow passing objects instead of arrays 2011-07-26 08:00:41 +02:00
alexandresalome
ea916c3910 [HttpKernel] Coding convention for the file profiler storage 2011-07-25 10:51:35 +02:00
Johannes Schmitt
0b3ff39704 fix supported cookie date formats 2011-07-24 21:28:31 +02:00
Wouter Van Hecke
7b24de512a Updated the code to follow the symfony coding standard using stof his remarks 2011-07-24 20:45:33 +02:00
Henrik Westphal
5219f81f35 Using the $status parameter instead of fixed value when creating a RedirectResponse. 2011-07-24 03:16:11 -07:00
alexandresalome
9ae2c8dc0f [HttpKernel] CS in file storage 2011-07-24 11:58:14 +02:00
alexandresalome
1c1215fdce [HttpKernel] Use subfolders for better storage in file storage of profiler 2011-07-24 11:52:27 +02:00
alexandresalome
4b1dc1f002 [HttpKernel] Fix the folder attribute of file storage to private 2011-07-24 11:32:23 +02:00
sasezaki
266e60e7a2 Don't tell a lie to every WebServers 2011-07-24 14:01:26 +09:00
Wouter Van Hecke
fbcbddee09 - Fixed a small bug
- Updated some phpdoc
2011-07-24 00:35:06 +02:00
alexandresalome
70f73e1ebc [HttpKernel] Fix tests for the file storage of profiler 2011-07-23 23:35:13 +02:00
alexandresalome
09fc0a2eeb [HttpKernel] Add Symfony credits to the file storage class for the profiler 2011-07-23 23:25:58 +02:00
alexandresalome
d1d5892ddf [HttpKernel] Finalize the file storage for the profiler 2011-07-23 23:17:26 +02:00
alexandresalome
2f65cf29bf Add POC for file storage system 2011-07-23 22:53:52 +02:00
Wouter Van Hecke
00fdfec860 Added a MongoDbProfilerStorage engine 2011-07-23 20:05:48 +02:00
Arnout Boks
bd9af2b0d0 [BrowserKit] Fixed incorrect temp dir when running insulated functional tests under Windows 2011-07-23 18:13:32 +02:00
Fabien Potencier
fe1f42f142 updated version back to dev 2011-07-23 17:20:56 +02:00
Fabien Potencier
39dd8aee47 updated VERSION to RC6 2011-07-23 17:15:58 +02:00
Fabien Potencier
05c8178349 changed VERSION to -DEV again 2011-07-22 22:48:46 +02:00
Fabien Potencier
9fe6c74a27 updated VERSION to 2.0.0-RC5 2011-07-22 22:25:36 +02:00
Fabien Potencier
edcdb4137f [HttpKernel] fixed possible double-classes in compiled classes 2011-07-22 22:17:31 +02:00