Commit Graph

4540 Commits

Author SHA1 Message Date
Clemens Tolboom
dd601662ea Fixed for allowing empty translation. 2012-05-19 14:06:30 +02:00
Clemens Tolboom
4c4d8890a0 Fixed PoFileLoader pluralhandling from interval to index. 2012-05-19 12:02:19 +02:00
Fabien Potencier
58b924533a removed unused use statements 2012-05-19 09:24:13 +02:00
Fabien Potencier
d48d88a05a merged 2.0 2012-05-19 09:24:03 +02:00
Fabien Potencier
cf11cc067f removed unused use statements 2012-05-19 09:22:59 +02:00
aripringle
4fa8e68cdc Add support for javascript object notation in allowed JSONP callback 2012-05-18 17:03:28 -06:00
Fabien Potencier
fc3c609bfd removed empty files 2012-05-18 21:54:07 +02:00
Fabien Potencier
18132c18b4 removed empty files 2012-05-18 20:30:14 +02:00
Fabien Potencier
3bdf52a16a fixed CS 2012-05-18 19:42:42 +02:00
Fabien Potencier
e173d79e34 fixed CS 2012-05-18 19:37:58 +02:00
Fabien Potencier
ec36ae7eda merged 2.0 2012-05-18 19:04:58 +02:00
Fabien Potencier
c9ba077a20 added missing LICENSE files 2012-05-18 19:00:00 +02:00
Philipp Kräutli
fe7b258356 Removed unnecessary use statements 2012-05-18 13:08:19 +02:00
Simon Neidhold
46be1212f2 added tokenDataExists() method to prevent loading complete profile structures upon writes 2012-05-18 10:19:27 +02:00
Fabien Potencier
a04acc8943 bumped Symfony version to 2.0.15-DEV 2012-05-18 09:50:24 +02:00
Fabien Potencier
1e15f21096 merged branch vierbergenlars/patch-1 (PR #4311)
Commits
-------

fa705db Fix trailing comma in composer (closes #4310)

Discussion
----------

Fix trailing comma in composer (bug #4310)

This pull request fixes bug #4310

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

by travisbot at 2012-05-17T19:10:37Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1359128) (merged fa705db6 into e351c9f0).
2012-05-18 09:43:09 +02:00
Fabien Potencier
813f6b3bb5 merged branch jocl/master (PR #4211)
Commits
-------

d3fee9b [Finder] ignoreDotFiles(true) filter does not match (issue #4106)

Discussion
----------

Fix for issue #4106 [Finder] ignoreDotFiles(true) filter does not match

I added new dot test files:
 * .bar
 * .foo/
 * .foo/.bar

Changed the tests and made a fix to finder that seems to okay for me.

I hope my first PR is well arranged ;-)
If not I will be pleased to get feedback...

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

by vicb at 2012-05-11T10:20:51Z

Could you squash you commits ?

There is also an issue when `ignoreDotFiles(false)` is called twice, could you add a failing TC and fix the code ?
`$this->ignore = $this->ignore ^ static::IGNORE_DOT_FILES;` should be `$this->ignore = $this->ignore & ~static::IGNORE_DOT_FILES;`

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

by travisbot at 2012-05-11T12:43:53Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1304510) (merged 72c320bc into ff7c4757).

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

by vicb at 2012-05-11T13:09:32Z

You need to:

- tackle the related issue I have mentioned,
- squash the commit,
- rebase,
- force push to your branch.

http://symfony.com/doc/current/contributing/code/patches.html has some more info.

As a fix, did you consider sending it to the 2.0 branch - your mention it as a BC in the commit comment but it really is a bug fix.

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

by jocl at 2012-05-11T13:33:30Z

Thank you. I will try it.

Hasn't ```ignoreVCS(false)``` the same twice calling problem with
```$this->ignore = $this->ignore ^ static::IGNORE_VCS_FILES;```?

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

by vicb at 2012-05-11T13:36:22Z

yep, good catch !

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

by jocl at 2012-05-12T10:32:06Z

I mentioned it as BC, since I found no place in documentation with the information that dotFiles are ignored by default. I was also wondering that it is default behavior.

But if I only read the code, it is a 100% bug.

As soon as the PR is merged, I think we should also add a little notice in documentation like it is for ignoreVCS():
http://symfony.com/doc/master/components/finder.html#files-or-directories

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

by fabpot at 2012-05-15T05:47:49Z

I think you should keep these changes on master. Last thing before I can merge: can you squash your commits as explained by @vicb?

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

by travisbot at 2012-05-15T08:20:04Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1334337) (merged 525919fa into ff7c4757).

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

by jocl at 2012-05-15T08:23:24Z

I am sorry, of wasting your time... totally confused about using git. I feel a little bit squashed :-) of a the possible actions.
I hope it is squashed now. And next time I will use the issue/ticket branch I made.

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

by fabpot at 2012-05-15T08:35:59Z

That's still not good. Squashing is explained here: http://symfony.com/doc/current/contributing/code/patches.html#rework-your-patch

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

by travisbot at 2012-05-15T20:44:14Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1339390) (merged d3fee9b2 into 03d4b026).
2012-05-18 09:39:34 +02:00
Christophe Coevoet
d1f0c25413 Fixed the composer constraint for Doctrine Common 2012-05-18 00:28:41 +02:00
Lars Vierbergen
fa705db610 Fix trailing comma in composer (closes #4310) 2012-05-17 22:05:45 +03:00
Fabien Potencier
e351c9f0a8 merged branch clemens-tolboom/filedumper-backup (PR #4302)
Commits
-------

189874d FileDumper does no backup.

Discussion
----------

FileDumper does no backup.

Backup check path missed a '/'. So no backup was made.

Removed the repeating path construction by replacing it by new variable.

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

by travisbot at 2012-05-16T14:14:58Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1345963) (merged 189874d0 into 5314836d).
2012-05-17 20:41:02 +02:00
Fabien Potencier
b3799680d5 updated VERSION for 2.0.14 2012-05-17 18:30:49 +02:00
Christophe Coevoet
11e0d2322c [HttpKernel] Fixed the BundleInterface
The kernel expects bundles to implement ContainerAwareInterface (a fatal
error occurs if the method is not implemented). This is done in the base
class but not enforced in the interface.
2012-05-17 12:34:40 +02:00
Clemens Tolboom
189874d056 FileDumper does no backup. 2012-05-16 16:06:33 +02:00
Fabien Potencier
5314836d3c merged branch Herzult/feature/collection_size_validator (PR #4149)
Commits
-------

3a5e84f [Validator] Add CollectionSize constraint

Discussion
----------

[Validator] Add CollectionSize constraint

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

I will also send a PR to the documentation as soon as this one is accepted.

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

by bschussek at 2012-04-29T08:24:28Z

-1

I dislike the rising amount of very specific constraints in the core. Can't we add this to Size?

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

by vicb at 2012-04-29T09:01:39Z

@bschussek #3918 implements what you propose but then the messages are not valid any more:

```php
<?php
    public $minMessage = 'This value should be {{ limit }} or more';
    public $maxMessage = 'This value should be {{ limit }} or less';
    public $invalidMessage = 'This value should be a valid number';
```

I can imagine 2 solutions:

- adding some more message,
- rename the `Size` constraint to `Range` and create a new `Size` constraint for arrays / countables.

What do you think ?

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

by bschussek at 2012-04-29T09:27:53Z

I'd prefer the second solution and merge `Size` with `SizeLength` as well.

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

by vicb at 2012-04-29T09:34:50Z

@bschussek It would make sense. @makasim @Herzult any one of you would like to contribute this (i.e. rename the current Size to Range and create a new Size supporting arrays / countables / strings) ?

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

by Herzult at 2012-04-29T14:31:12Z

Yep, I'm on it.

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

by stof at 2012-04-29T15:22:44Z

@Herzult could you take the other comment into account and merge SizeLength into you Size ?

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

by vicb at 2012-04-29T15:33:05Z

The guessers should also be modified (it might also affect the ODM which is in an other repo, if so it would be good to sync the changes).

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

by Herzult at 2012-04-29T16:38:19Z

@stof the problem merging SizeLength into Size is that they don't have the same required options & messages.

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

by Herzult at 2012-04-29T16:47:40Z

And what about renaming Range to Interval and SizeLength to IntervalLength?

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

by stof at 2012-04-29T16:54:38Z

Well, SizeLength is about matching the length of a string currently. Nothing related to intervals

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

by Herzult at 2012-04-29T17:29:40Z

Here are the current names:

 * **Size** for collection (countable) size
 * **Range** for numbers
 * **SizeLength** for strings

Merging **SizeLength** into **Size** is maybe not appropriate because collections and strings are different things. It'll be hard to find messages that fit both collections and strings. Maybe we had better to find a better name for both. What do you think?

About the ValidatorTypeGuesser, I'll update it as soon as we know ow to name the constraints.

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

by vicb at 2012-04-29T17:43:01Z

Size is a good name for both strings and "collections", could we have two sets of strings and select according to the type ?

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

by Herzult at 2012-04-29T22:39:55Z

I tried to merge them together, what do you think?

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

by vicb at 2012-04-30T06:52:37Z

I think your changes are great, may be @bschussek has more feedback. The ValidatorTypeGuesser and the translation are yet to be updated.

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

by hhamon at 2012-05-01T12:32:28Z

Am I missing something or `SizeLength` for strings is a duplicate for `MinLength` and `MaxLength` constraints?

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

by Herzult at 2012-05-02T13:29:36Z

Yep, that's true. But the only link between this PR and the SizeLength constraint is that I merged it to the one I introduced.

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

by Herzult at 2012-05-07T07:48:01Z

@bschussek what do you think?

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

by vicb at 2012-05-10T19:51:26Z

@Herzult this PR looks good to me, could you update the changelog and update guides, try to factorize the code and squash the commits ? Thanks.

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

by travisbot at 2012-05-11T15:42:35Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1306112) (merged 8d8e6443 into 4ac3bddb).

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

by vicb at 2012-05-11T21:42:21Z

* could #4259 be helpful ?
* please squash the commits.
* please create a PR / issue on [symfony-docs](https://github.com/symfony/symfony-docs)

thanks for the updates.

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

by travisbot at 2012-05-13T18:38:18Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1321123) (merged eeda9044 into 4ac3bddb).

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

by travisbot at 2012-05-13T18:45:12Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1321146) (merged 491ca19a into 8b54eb56).

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

by travisbot at 2012-05-14T11:29:39Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1326110) (merged 44865024 into 8b54eb56).

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

by vicb at 2012-05-14T11:49:37Z

@Herzult what about plural translations ?

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

by travisbot at 2012-05-14T16:52:37Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1328677) (merged 93480f95 into 46ffbd52).

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

by travisbot at 2012-05-14T17:03:13Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1328705) (merged 326c3b81 into 46ffbd52).

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

by vicb at 2012-05-14T20:19:18Z

thanks for the updates, this PR looks fine to me. @bschussek ?

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

by vicb at 2012-05-16T06:45:51Z

@Herzult can you squash your commits ?

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

by travisbot at 2012-05-16T11:20:44Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1344811) (merged 3a5e84f4 into 58b6ef23).
2012-05-16 14:22:22 +02:00
Antoine Hérault
3a5e84f4a7 [Validator] Add CollectionSize constraint
[Validator] Rename constraint Size to Range

[Validator] Rename constraint CollectionSize to Size

[Validator] Merge the SizeLength into the Size constraint

[Validator] Update messages in Size constraint for consistancy

[Validator] Add english and french translation for Size messages

[Validator] Tweak expected types for exceptions in SizeValidator

[Validator] Fix CS in SizeValidator

[Validator] Update the ValidatorTypeGuesser

[Validator] Tweak SizeValidator

[Validator] Update CHANGELOG

[Validator] Complete previous CHANGELOG updates

[Form] Update validator type guesser

[Validator] Pluralize collection size english messages

[Validator] Pluralize Size french messages
2012-05-16 13:15:05 +02:00
Fabien Potencier
980a062092 merged branch ouardisoft/2.0 (PR #4300)
Commits
-------

d1c831d Change must-proxy-revalidate by proxy-revalidate

Discussion
----------

Change must-proxy-revalidate by proxy-revalidate

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

by travisbot at 2012-05-16T09:20:54Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1344060) (merged d1c831d7 into 8cd6cbcf).
2012-05-16 11:25:06 +02:00
ouardisoft
d1c831d7b2 Change must-proxy-revalidate by proxy-revalidate 2012-05-16 09:17:19 +00:00
Miha Vrhovnik
445fd2f9aa In console terms columns are width and rows are height 2012-05-16 11:10:06 +02:00
Fabien Potencier
8cd6cbcfc4 fixed some CS 2012-05-16 09:53:50 +02:00
Fabien Potencier
90c26a48cd [Console] fixed some CS 2012-05-16 09:33:59 +02:00
Fabien Potencier
398f445c32 fixed test 2012-05-16 07:44:57 +02:00
Fabien Potencier
41621e42e9 fixed phpdoc @param alignment 2012-05-15 22:19:31 +02:00
Fabien Potencier
f27f5969b6 fixed 2.0 merge 2012-05-15 22:15:08 +02:00
Jochen Bayer
d3fee9b22e [Finder] ignoreDotFiles(true) filter does not match (issue #4106)
Added new dot files/folder:
 * .bar
 * .foo/
 * .foo/.bar

Adapted unit tests to the new test directory structure.
Possible patch to fix Finder to ignore dot files.

And fixed issue if ignoreDotFiles(false) and ignoreVCS(false) is called twice.
Added 2 asserts to FinderTest.
2012-05-15 22:04:44 +02:00
Fabien Potencier
ce9791246b fixed phpdoc @param alignment 2012-05-15 18:56:32 +02:00
Fabien Potencier
03d4b0264f merged 2.0 2012-05-15 18:49:53 +02:00
Fabien Potencier
926ac98c9a [Finder] replaced static by self on a private variable 2012-05-15 18:46:20 +02:00
Fabien Potencier
ca56446507 merged branch bschussek/options-resolver (PR #4292)
Commits
-------

d2c162d [OptionsResolver] Added methods isKnown() and isRequired()

Discussion
----------

[OptionsResolver] Added methods isKnown() and isRequired()

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

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

by travisbot at 2012-05-15T14:42:10Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1336375) (merged d2c162d8 into 563f77a3).
2012-05-15 17:10:00 +02:00
Fabien Potencier
563f77a3f0 fixed CS 2012-05-15 12:49:24 +02:00
Fabien Potencier
00108fbd62 merged branch scoolen/json-decode-params (PR #4283)
Commits
-------

38cbbe7 Moved JSON encoding and decoding to separate classes which expose all their available parameters

Discussion
----------

[Serializer][JsonEncoder] Exposed json_encode and json_decode params

In `JsonEncoder::decode()` you are unable to change the `$assoc` parameter from `json_decode`. I created two sub-classes that handle JSON encoding and decoding while exposing all the available parameters from `json_encode` and `json_decode`. You can now do this:

```php
$jsonEncoder = new JsonEncoder(new JsonEncode(JSON_HEX_TAG), new JsonDecode(true, 1024));
$serializer = new Serializer(array(), array($jsonEncoder));
```

Additionally I made `json_last_error()` available from `JsonEncoder`:
```php
$jsonEncoder->getLastEncodingError();
$jsonEncoder->getLastDecodingError();
```

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: N/A
Todo: -
License of the code: MIT
Documentation PR: -

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

by travisbot at 2012-05-14T18:46:16Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1329496) (merged 38cbbe71 into 46ffbd52).

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

by fabpot at 2012-05-15T05:07:04Z

ping @Seldaek / @lsmith77

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

by Seldaek at 2012-05-15T09:47:48Z

This looks fine to me, I asked him to submit the PR, but I wanted to get feedback from others.
2012-05-15 12:46:45 +02:00
Bernhard Schussek
d2c162d842 [OptionsResolver] Added methods isKnown() and isRequired() 2012-05-15 11:47:43 +02:00
Fabien Potencier
bd07b8919d merged branch bschussek/options (PR #3968)
Commits
-------

95727ff [OptionsResolver] Updated PHP requirements to 5.3.3
1c5f6c7 [OptionsResolver] Fixed issues mentioned in the PR comments
d60626e [OptionsResolver] Fixed clear() and remove() method in Options class
2b46975 [OptionsResolver] Fixed Options::replace() method
16f7d20 [OptionsResolver] Improved implementation and clarity of the Options class
6ce68b1 [OptionsResolver] Removed reference to non-existing property
9c76750 [OptionsResolver] Fixed doc and block nesting
876fd9b [OptionsResolver] Implemented fluid interface
95454f5 [OptionsResolver] Fixed typos
256b708 [OptionsParser] Renamed OptionsParser to OptionsResolver
04522ca [OptionsParser] Added method replaceDefaults()
b9d053e [Form] Moved Options classes to new OptionsParser component

Discussion
----------

Extracted OptionsResolver component out of Form

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

![Travis Build Status](https://secure.travis-ci.org/bschussek/symfony.png?branch=options)

This PR refactors the options-related code of the Form component into a separate component. See the README file for usage examples.

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

by schmittjoh at 2012-04-17T18:11:03Z

To me it seems like we have some redundancy with the Config/Definition component. I'm wondering if these two can/should be merged somehow?

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

by kriswallsmith at 2012-04-17T18:14:44Z

I would also suggest merging this into the Config component. Its current name too closely resembles Python's optparser lib, which could create confusion.

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

by bschussek at 2012-04-17T18:18:49Z

Merge conflict artifacts are fixed now.

@schmittjoh Do we? Isn't the idea of the Config component to read complex configuration from different configuration providers? (YAML, XML, Annotations etc.)

The idea of this parser is to be highly performant and to be usable in simple classes. If this can be achieved with the Config component, I'm happy to learn more.

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

by schmittjoh at 2012-04-17T18:27:08Z

The config component is basically a super intelligent version of array_merge and the like.

About performance, I haven't really done any tests to say something about the impact. I think it's safe to say that it would be at least slower than your implementation in its current form due to the additional indirection. However, we could probably add a caching layer.

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

by bschussek at 2012-04-17T18:31:22Z

Have you checked the README I wrote? Are you sure the Config component is intended for the same purpose and not *way* too complex in this case?

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

by stof at 2012-04-17T18:51:14Z

You also forgot to update the ``replace`` section of the root composer.json file.

And regarding doing such thing with the Config Definition stuff, it would be more difficult: it builds the tree of values with their defaults, and then merges stuff coming from different sources. The form component however receives defaults from different places (which also define the allowed keys at the same time) and then receives user options only once. And it needs to handle easily default values which depend from other values. So I think both implementations are useful for different needs (however, we could argue about making it a subnamespace in the Config component, but this would add yet another different stuff in it)

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

by jalliot at 2012-04-17T18:58:03Z

@bschussek You need to add this component to the main composer.json too.

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

by lsmith77 at 2012-04-18T06:54:17Z

doesn't this overlap a bit with the ``TreeBuilder`` in the Config component?

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

by lsmith77 at 2012-04-18T06:59:12Z

ah just saw @stof's comment .. i think the biggest argument against TreeBuilder is that it was designed for a very specific purpose and performance wasn't one of them. where as Form needs something that performs fast. so yeah i do see different use cases, but i don't think this means we should have a new component.

furthermore while i haven't read the code in details i am surprised it doesn't make use of http://php.net/manual/en/function.array-replace-recursive.php to merge defaults into a user supplied options array.

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

by bschussek at 2012-04-18T08:10:49Z

@stof, @jalliot: Fixed.

> furthermore while i haven't read the code in details i am surprised it doesn't make use of http://php.net/manual/en/function.array-replace-recursive.php to merge defaults into a user supplied options array.

@lsmith77: Because that's not what this component does. The key feature of this component is to resolve default values of options that depend on the *concrete* values of other options. I invite you to read the README.

Is it a good idea to merge this into Config? I think that both components address different audiences and different purposes. The idea of this one is to initialize classes with simple, run-time provided arrays. The idea of Config is to load and validate complex configurations from storage providers, such as the filesystem.

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

by bschussek at 2012-04-18T08:18:48Z

Note: Not all relevant code of this component is shown in the diff. The (crucial) Options and LazyOption classes have only been moved out of Form.

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

by lsmith77 at 2012-04-18T08:20:02Z

> Is it a good idea to merge this into Config? I think that both components address different audiences and different purposes. The idea of this one is to initialize classes with simple, run-time provided arrays. The idea of Config is to load and validate complex configuration values from the filesystem (typically).

decoupled is all fine, but to me this feels a bit too granular. but i am just expressing a gut feeling here

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

by jalliot at 2012-04-18T08:34:03Z

I think too it should be included in the config component (maybe in a subnamespace). Indeed the behaviour is too different to be merged into the current component but its purpose is similar and is all about *configuration* (hence the name of the component). Otherwise we could also split the current Config component into smaller components as it seems to me there are already parts of it that are totally unrelated to each other.

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

by bschussek at 2012-04-18T11:30:55Z

@jalliot Can you go into detail which parts that are and what changes you suggest?

@kriswallsmith Any other naming suggestion?

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

by jalliot at 2012-04-18T11:34:35Z

@bschussek I don't know the current component well enough but that's the impression I had last time I looked at its code but I may be wrong.

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

by stof at 2012-04-18T19:30:43Z

@bschussek the Definition subnamespace of the Config component is standalone. It is not directly related to the Loader part

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

by bschussek at 2012-04-19T09:32:48Z

@stof So what do you recommend?

I think this is also a question of marketing. Is the Definition subnamespace intended to be used totally separately of the loaders? What are the use cases? If there are good use cases, it makes sense to me to extract the Definition part into a separate component. Otherwise not.

It is also a question of marketing, because the purpose of a component should be communicable in simple words (quoting @fabpot). The purpose of Config is (copied from the README):

> Config provides the infrastructure for loading configurations from different data sources and optionally monitoring these data sources for changes. There are additional tools for validating, normalizing and handling of defaults that can optionally be used to convert from different formats to arrays.

I think this purpose is completely different than that of OptionsParser.

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

by stof at 2012-04-19T11:39:50Z

The current description itself shows the current state: what is advocated as the main goal of the component (and was the original part) is the loader stuff. But the Definition part (mentioned as "additional tools") is bigger in term of LOC

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

by bschussek at 2012-04-19T11:55:17Z

@stof: Yes, this is a fact, but what's your opinion? How do we proceed with this PR?

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

by stof at 2012-04-19T12:21:44Z

Well, my opinion is that the current Config component may deserve to be split into 2 components (as someone may need only part of it). But this would be a huge BC break. @fabpot what do you think ?

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

by bschussek at 2012-04-23T10:14:57Z

@fabpot Can we merge this?

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

by fabpot at 2012-05-10T06:45:20Z

@bschussek I'm +1 for this PR but as mentioned by @kriswallsmith, we must find another name as `OptionsParser` immediately make me think of something related to the CLI.

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

by stof at 2012-05-10T06:47:45Z

However, after thinking about it again, I would vote for keeping it in its own component instead of adding yet another independant part in Config, to avoid forcing Form users to get the whole Config component

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

by bschussek at 2012-05-10T09:09:36Z

I'm having difficulties finding a better name. The main difference to CLI option parsers is that these actualy *parse* a string, while this class only receives an array of options (does not do any parsing). Otherwise both have the same purpose.

A couple of other suggestions:

* OptionsLoader (likely confused with our filesystem loaders)
* OptionsResolver
* OptionsMerger
* OptionsMatcher (not accurate)
* OptionsBuilder (likely confused with the builder pattern)
* OptionsJoiner
* OptionsBag (likely confused with the session bags)
* OptionsConfig (likely confused with Config)
* OptionsDefinition (likely confused with Config\Definition)
* OptionsSpec
* OptionsCombiner
* OptionsInitializer
* OptionsComposer

The difficulty is to find a name that best reflects its purpose:

```
$parser->setDefaults(...);
$parser->setRequired(...);
$parser->setOptional(...);
$parser->setAllowedValues(...)
$parser->parse($userOptions);
```

The only of the above examples that makes sense to me here is OptionsResolver -> resolve($userOptions).

Ideas?

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

by stof at 2012-05-10T09:56:54Z

OptionsResolver seems a better name than OptionsParser

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

by luxifer at 2012-05-10T09:59:45Z

Agree with @stof

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

by r1pp3rj4ck at 2012-05-10T10:03:53Z

I don't really like the plural in the name, but OptionsResolver seems better than OptionsParser. OptionResolver maybe?

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

by sstok at 2012-05-10T10:10:14Z

@r1pp3rj4ck Options makes more sense as they can be nested/deeper, and thus are multiple.

Agree with @stof also.

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

by r1pp3rj4ck at 2012-05-10T10:13:01Z

@sstok well, we have multiple events too and the name is EventDispatcher, not EventsDispatcher. Actually none of the component names are plural.

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

by newicz at 2012-05-10T10:33:50Z

OptionsResolver - I find it suggesting that there is some kind of problem to be resolved and there's not,
maybe OptionsDefiner but it isn't good aswell this is a tough one
2012-05-15 10:14:33 +02:00
Bernhard Schussek
95727ff5e7 [OptionsResolver] Updated PHP requirements to 5.3.3 2012-05-15 10:12:07 +02:00
Igor Wiedler
4b0cdde2b1 [Validator] Change default of ValidatorFactory::buildDefault to exclude annotations 2012-05-15 09:02:29 +02:00
Igor Wiedler
c7a8678992 [Validator] Move doctrine/common dependency from require to suggest 2012-05-15 09:02:26 +02:00
Fabien Potencier
982c369f37 added @ to all chmod() calls to avoid PHP warnings (operation not permitted) when using CIFS or NTFSa (closes #2125) 2012-05-15 08:44:52 +02:00
Fabien Potencier
6bcdd321e6 [HttpKernel] fixed unit tests when run standalone (closes #4266, patch from Gator92) 2012-05-15 08:39:08 +02:00
jaugustin
9215c4478f [Form] fix failing tests for remove call on an objectCollection 2012-05-14 20:50:10 +02:00
Bernhard Schussek
076a104e86 [Form] Created failing test for PropertyPath modifying collections while iterating them 2012-05-14 20:50:04 +02:00
Sander Coolen
38cbbe7193 Moved JSON encoding and decoding to separate classes which expose all their available parameters 2012-05-14 20:09:23 +02:00
Bernhard Schussek
1c5f6c76c1 [OptionsResolver] Fixed issues mentioned in the PR comments 2012-05-14 19:35:41 +02:00
Bernhard Schussek
d60626efd5 [OptionsResolver] Fixed clear() and remove() method in Options class 2012-05-14 19:35:41 +02:00
Bernhard Schussek
2b46975e32 [OptionsResolver] Fixed Options::replace() method 2012-05-14 19:35:40 +02:00
Bernhard Schussek
16f7d20dff [OptionsResolver] Improved implementation and clarity of the Options class 2012-05-14 19:35:40 +02:00
Bernhard Schussek
6ce68b1b05 [OptionsResolver] Removed reference to non-existing property 2012-05-14 19:35:40 +02:00
Bernhard Schussek
9c76750cb8 [OptionsResolver] Fixed doc and block nesting 2012-05-14 19:35:35 +02:00
Bernhard Schussek
876fd9ba17 [OptionsResolver] Implemented fluid interface 2012-05-14 19:35:07 +02:00
Bernhard Schussek
95454f5f6b [OptionsResolver] Fixed typos 2012-05-14 19:35:07 +02:00
Bernhard Schussek
256b7081a4 [OptionsParser] Renamed OptionsParser to OptionsResolver 2012-05-14 19:35:07 +02:00
Bernhard Schussek
04522ca4ed [OptionsParser] Added method replaceDefaults() 2012-05-14 19:35:07 +02:00
Bernhard Schussek
b9d053edb2 [Form] Moved Options classes to new OptionsParser component 2012-05-14 19:35:07 +02:00
Romain Geissler
47605f63e3 [Form][DataMapper] Do not update form to data when form is read only 2012-05-14 17:35:21 +02:00
Alexander
b7fc009316 [Config] Numerical keys for prot. arrays if useAttributeAsKey is set 2012-05-14 16:26:32 +02:00
Fabien Potencier
46ffbd5282 merged branch willdurand/form-date-types (PR #4204)
Commits
-------

ceb5ce6 [Form] fixed tests
a1e3a59 [TwigBridge] Switched to composer
df36afb [Form] Added tests
6d5ad3b [Form] Added right HTML types to Datetime/Date/Time types if single_text is true

Discussion
----------

[Form] Added right HTML types to Datetime/Date/Time types if single_text is true

When you set the `widget` option to `single_text`, you get a HTML input tag which is fine, but you the type is `text`, and it's wrong. You don't have any other way to get the right `type` as this attribute is defined to the FormView instance itself (see FileType for instance).

This PR adds right HTML types like the FileType does.

Cheers,
William

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

by willdurand at 2012-05-09T16:04:16Z

@fabpot anything else to do there?

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

by fabpot at 2012-05-11T16:28:43Z

adding some unit tests?

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

by willdurand at 2012-05-11T16:35:40Z

fair point :)

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

by travisbot at 2012-05-12T16:34:43Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1314731) (merged 2631c8b7 into cb905c5f).

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

by travisbot at 2012-05-12T17:14:12Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1314902) (merged ceb5ce6e into e1934527).

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

by willdurand at 2012-05-12T17:16:17Z

@fabpot ok, so I had to fix some other tests but there is a weird dependency between the tests in TwigBridge, and the Form component. I fixed the test suite's setup in the TwigBridge, and fixed some failing tests.
2012-05-14 13:31:58 +02:00
Fabien Potencier
6fba6d7389 merged branch duplabe/customnormalizer-fix (PR #4273)
Commits
-------

e647eaa [Serializer] Fix CustomNormalizer supportsDenormalization interface check.

Discussion
----------

[Serializer] Fix CustomNormalizer supportsDenormalization interface check.

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
License of the code: MIT
Documentation PR: -

Fixes the previous PR: https://github.com/symfony/symfony/pull/4257

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

by travisbot at 2012-05-13T20:57:00Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1322002) (merged e647eaa6 into 459942b4).
2012-05-14 13:29:22 +02:00
Fabien Potencier
de8a28713a merged branch hason/localeexceptions (PR #4250)
Commits
-------

6438c80 [Locale] Updated exception messages

Discussion
----------

[Locale] Updated exception messages

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

by travisbot at 2012-05-10T15:12:46Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1296098) (merged 60eabc7c into fae4523f).

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

by travisbot at 2012-05-11T21:27:29Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1309320) (merged 6438c808 into dd0da03c).

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

by hason at 2012-05-14T09:23:26Z

@fabpot corrected
2012-05-14 13:27:56 +02:00
Sebastiaan Stok
bbf7183ccb [Routing] fixed spelling errors in phpdoc 2012-05-14 13:10:18 +02:00
duplabe
e647eaa646 [Serializer] Fix CustomNormalizer supportsDenormalization interface check. 2012-05-13 22:45:59 +02:00
Fabien Potencier
8d7f7f5b11 [CssSelector] updated upstream code repository 2012-05-13 10:03:21 +02:00
Fabien Potencier
c642a5ec19 [CssSelector] ignored an optional whitespace after a combinator 2012-05-13 09:14:40 +02:00
Fabien Potencier
d34383f10b [CssSelector] removed an unneeded condition (taken care of afterward in the code) (closes #4269) 2012-05-12 20:35:22 +02:00
William DURAND
ceb5ce6e5e [Form] fixed tests 2012-05-12 19:09:49 +02:00
William DURAND
df36afb123 [Form] Added tests 2012-05-12 18:44:54 +02:00
William DURAND
6d5ad3b289 [Form] Added right HTML types to Datetime/Date/Time types if single_text is true 2012-05-12 18:44:53 +02:00
Fabien Potencier
e193452742 switched to use mbstring whenever possible instead of iconv 2012-05-12 10:17:30 +02:00
Martin Hasoň
6438c80858 [Locale] Updated exception messages 2012-05-11 23:22:47 +02:00
Christian Raue
64101aba0a separate numeric value from suffix in File constraint's error message $uploadIniSizeErrorMessage 2012-05-11 23:15:32 +02:00
Christian Raue
ff122d336c fixed tests 2012-05-11 23:15:30 +02:00
Christian Raue
868d649d5c separate numeric values from suffixes in File constraint's error message $maxSizeMessage 2012-05-11 23:15:29 +02:00
Fabien Potencier
dd0da03c8c merged branch gajdaw/finder_contains_exception_test (PR #4056)
Commits
-------

f2fea97 [Component][Finder] tests and condition: contains() used on dir

Discussion
----------

[Component][Finder] tests and condition: contains() used on dir

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

`Finder::contains()` and `Finder::notContains()` can't be used on directories.

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

by travisbot at 2012-05-08T06:33:11Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1273818) (merged f2fea974 into 919604ab).
2012-05-11 18:30:27 +02:00
Fabien Potencier
cbc3ed36b9 [HttpKernel] added some constant for better forward compatibility 2012-05-11 18:16:17 +02:00
Fabien Potencier
4c7261e3b1 merged 2.0 2012-05-11 18:14:47 +02:00
Fabien Potencier
d212a30cc0 removed some files from check_cs as they have been fixed now 2012-05-11 18:04:46 +02:00
Victor Berchet
51b753a6b8 [Session] cleanup of the PDO storage 2012-05-10 12:33:43 +02:00
Fabien Potencier
62594291e4 [Form] fixed wrong class path (closes #4239) 2012-05-10 12:15:10 +02:00
Fabien Potencier
bed0b90bea merged branch vicb/session_pdo_storage (PR #4244)
Commits
-------

b865b09 [Session] Fix the PDO handler for mysql concurrent write

Discussion
----------

[RFC][Session] Make the PDO handler looks less hacky

Related discussion: ebc2f01e5b (commitcomment-1304221)

The current code works but looks hacky (`$dbTimeCol = CASE WHEN $dbTimeCol = :time THEN (VALUES($dbTimeCol) + 1) ELSE VALUES($dbTimeCol) END`).

Todo: wrap the mysql specific code in a `try...catch` if we choose this PR way (to be consistent with all other PDO invocations).

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

by travisbot at 2012-05-10T07:50:39Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1293131) (merged b865b096 into 48099a85).
2012-05-10 11:48:38 +02:00
Fabien Potencier
28d045ed48 merged branch vicb/session_nnhandlers (PR #4227)
Commits
-------

12e22c0 [Session] Memcache/d cleanup, test improvements
788adfb [Session] Pdo Handler cleanup
0216e05 [HttpFoundation][Session] Assume that memcache(d) instances are already configured
72d21c6 [HttpFoundation][Session] change possible replace() & set() for set only()

Discussion
----------

[Session] Non-native Session handlers

A few item to discuss. Needs @drak inputs.

* 72d21c66 is trivial,
* 0216e056 is about memcache(d) handlers
    * I don't think the handlers should configure the memcache(d) instances. Those instances are injected into the storage so they should already be confidured (this will be done in the CacheBundle when available)
    * A SW prefix has been added to the memcached handlers so that the same instance of memcached can be shared - you can still set the `Memcached::OPT_PREFIX_KEY` before injecting the memcached instance.
    * It was not possible to use an expiration > 30days before, see [php.net](http://www.php.net/manual/en/memcached.expiration.php)
* 788adfb6 is trivial (cleanup in the PDO handler)

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

by travisbot at 2012-05-08T09:49:03Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1274808) (merged 788adfb6 into e54f4e46).

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

by drak at 2012-05-09T15:20:38Z

Overall this PR looks good to me. Since Memcache/d objects are passed by DI anyway, there is no need to provide a way to configure the objects here.

However, I am not sure it's consistent to provide internal handling of the prefix/expire if we are saying the objects should be configured and injected - if we hand over all configuration to the injected objects, that's exactly what we should do. In the case of the `Memcache` handler there is no handling for prefix by the Memcache object that is why it's handled internally.

Unless there are some other technical consideration I've missed, I would also not expect the same Memcache/d object to be used in all use cases (e.g. session storage and database caching layer).   I realise we are trying to unify things in one cache component, but I am not entirely convinced session storage would necessarily have to be part of that nor that "one object fits all" is practical or wise.

As far as I am aware, apart from default settings, memcache/memcached instances retain their own settings once configured so it's quite feasible to expect there might be a couple of differently configured instances in a complex system.

In summary, I would remove the `$memcachedOptions` config entirely from the `MemcachedHander` along with the associated prefix and time and let it all be configured by the injected `Memcached` instance.

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

by travisbot at 2012-05-10T07:32:53Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1293064) (merged 12e22c0d into e54f4e46).

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

by vicb at 2012-05-10T07:34:31Z

@drak thanks for your feeback.

About the prefix: it might be necessary to avoid collisions when you re-use the same instance of `memcache/d`. This is why the prefix is handled internally and not by `memcached` (it would be global and not serve the purpose then).

About the ttl:

* `memcache/d` can not handle ttl > 30 days (they would consider the time as an absolute timestamp then) and this is why the PR always convert the ttl to an absolute ts (`time() + $ttl`)
* Moreover I think that the ttl should be initialized by the `Session`: there is no reason why the ttl should be different from the `gc_maxlifetime`. I think this is out of the scope of this PR.

About sharing `memcache/d ` instances: it will be possible but it does not mean that you have to, you still can use different instances if this suit your needs.

The tests have been improved.

If you are ok with the latest changes, this PR should be ready to be merged

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

by drak at 2012-05-10T09:29:18Z

@vicb - I think it's ok to merge now. You are right about the TTL since PHP will pass a maxlifetime not a timestamp, and since memcached varies how it treats $expire, it does need to be normalised in the handler. I'm not necessarily 100% convinced about the prefix, but I don't object.  Nice work.

/cc @fabpot
2012-05-10 11:47:04 +02:00
Victor Berchet
12e22c0d1f [Session] Memcache/d cleanup, test improvements 2012-05-10 09:28:59 +02:00
Fabien Potencier
48099a852c [HttpKernel] added more fine-grained information about the version (the constant are named after the PHP ones) 2012-05-10 08:02:55 +02:00
William DURAND
6f343b4328 [Console] Fixed typo 2012-05-09 18:42:13 +02:00
Douglas Greenshields
8009675dba [Validator] corrected small docblock typo 2012-05-09 12:25:32 +02:00
Victor Berchet
b865b096b5 [Session] Fix the PDO handler for mysql concurrent write 2012-05-09 10:13:10 +02:00
Victor Berchet
788adfb6c0 [Session] Pdo Handler cleanup 2012-05-08 11:30:40 +02:00
Victor Berchet
0216e05605 [HttpFoundation][Session] Assume that memcache(d) instances are already configured 2012-05-08 11:20:17 +02:00
Victor Berchet
72d21c6614 [HttpFoundation][Session] change possible replace() & set() for set only() 2012-05-08 10:05:47 +02:00
Fabien Potencier
e54f4e46c9 merged branch gajdaw/2_1_component_yaml_fix_4022 (PR #4126)
Commits
-------

80a2a92 [2.1][Component][Yaml] fix 4022

Discussion
----------

[2.1][Component][Yaml] fix 4022

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: [![Build Status](https://secure.travis-ci.org/gajdaw/symfony.png?branch=2_1_component_yaml_fix_4022)](http://travis-ci.org/gajdaw/symfony)
Fixes the following tickets: #4121, #4022, #4135
Todo:

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

by stof at 2012-04-27T13:03:15Z

Why is it marked as ``[2.2]`` if it is a bugfix ?

@fabpot ping

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

by gajdaw at 2012-04-27T14:42:21Z

The title should be [2.1] - now it is correct.

I marked it 2.0 and PR was for 2.0 originally.

Fabien suggested that it should go to master branch: https://github.com/symfony/symfony/pull/4121#issuecomment-5362990

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

by fabpot at 2012-05-07T09:17:31Z

That does not work when you have something after the unindented collection:

    collection:
        key:
        - a
        - b
        - c
    foo: bar

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

by gajdaw at 2012-05-07T11:11:30Z

@fabpot Last commit contains test with your yaml:

    collection:
        key:
        - a
        - b
        - c
    foo: bar

Everything seems fine. Can you give me a hint: what do you mean, when you say "That does not work"?

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

by fabpot at 2012-05-07T12:36:19Z

Sorry, the failing test is the following:

    test: Key/value after unindented collection
    brief: >
        Key/value after unindented collection
    yaml: |
        collection:
            key:
            - a
            - b
            - c
            foo: bar
    php: |
        array('collection' => array('key' => array('a', 'b', 'c'), 'foo' => 'bar'))

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

by gajdaw at 2012-05-07T15:48:26Z

@fabpot Last commit passed your test.

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

by fabpot at 2012-05-07T17:28:21Z

Can you squash your commits? Thanks.

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

by travisbot at 2012-05-08T05:32:58Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1273487) (merged 20891c58 into 919604ab).

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

by gajdaw at 2012-05-08T05:36:51Z

Done.

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

by travisbot at 2012-05-08T07:23:47Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1274162) (merged 80a2a92e into 898ff4e0).
2012-05-08 09:27:29 +02:00
Włodzimierz Gajda
80a2a92edb [2.1][Component][Yaml] fix 4022 2012-05-08 09:18:55 +02:00
Fabien Potencier
919604ab71 merged branch symfony/domcrawler-encoding (PR #4214)
Commits
-------

c9ebe67 [DomCrawler] fixed encoding when using addHtmlContent() (fixes #3881)

Discussion
----------

[DomCrawler] fixed encoding when using addHtmlContent() (fixes #3881)

After looking around, this is clear that loadHtml() resets the encoding set on the DomDocument instance. So, the only workaround that actually works (and which is not an ugly hack) is to use `mb_convert_encoding` when it exists.

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

by Seldaek at 2012-05-07T12:38:43Z

+1 (Side note: Using your fork of symfony for PRs would be good I think, otherwise it creates noisy versions on packagist.)
2012-05-07 19:19:26 +02:00
Fabien Potencier
1dd92b6221 merged branch Seldaek/parambag (PR #4220)
Commits
-------

3d9990a [DependencyInjection] Add ParameterBag::remove

Discussion
----------

[DependencyInjection] Add ParameterBag::remove
2012-05-07 19:19:05 +02:00
Fabien Potencier
761579df7c merged branch shieldo/session_docblock_typos (PR #4216)
Commits
-------

8ff11c1 [HttpFoundation] fixed docblock typos in session class

Discussion
----------

[HttpFoundation] fixed docblock typos in session class
2012-05-07 19:18:56 +02:00
Victor Berchet
9907df2569 [Routing] Fix a regression introduced by #4170 2012-05-07 18:20:56 +02:00
Jordi Boggiano
3d9990a0ec [DependencyInjection] Add ParameterBag::remove 2012-05-07 18:13:02 +02:00
Douglas Greenshields
8ff11c1ad3 [HttpFoundation] fixed docblock typos in session class 2012-05-07 15:20:20 +01:00
Fabien Potencier
c9ebe67d65 [DomCrawler] fixed encoding when using addHtmlContent() (fixes #3881) 2012-05-07 14:20:03 +02:00
Fabien Potencier
f14961b747 [DomCrawler] converted all usage of filter() to filterXPath() in unit tests to be less dependent on CssSelector 2012-05-07 14:03:55 +02:00
Fabien Potencier
906f6f662c [DependencyInjection] fixed private services removal when used as configurators (closes #3758) 2012-05-07 12:47:50 +02:00
Fabien Potencier
43249dea5f [DependencyInjection] added support for anonymous services as properties (closes #2964) 2012-05-07 12:30:49 +02:00
Fabien Potencier
23b5e60436 [DependencyInjection] fixed anonymous services handling in XmlFileLoader
Previous to this commit, it was not possible to have anonymous services
as arguments AND anonymous services in custom configs
2012-05-07 12:23:11 +02:00
Fabien Potencier
1244158ceb [DependencyInjection] made a small cleanup 2012-05-07 12:17:20 +02:00
Fabien Potencier
a3ee885d08 merged branch vicb/validator/fix (PR #4200)
Commits
-------

bdc21b4 [Validator] Add a base AbstractLoader
ead4908 [Validator] Some cleanup of the GraphWalker
23e15bb [Validator] Fix a bug in the ExecutionContext

Discussion
----------

[Validator] Fix/cleanup

Bug fix: yes
Feature addition: no
Backwards compatibility break: yes
Symfony2 tests pass: [![Build Status](https://secure.travis-ci.org/vicb/symfony.png?branch=validator/fix)](http://travis-ci.org/vicb/symfony)

* d2100a27 has some fixes for the EC,
* 51769e03 has some cleanup in the graph walker,
* f9b3591c add an AbstractLoader (namespace aliases does not belong to FileLoaders).

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

by vicb at 2012-05-07T08:32:40Z

@fabpot PR ready
2012-05-07 10:44:17 +02:00
Fabien Potencier
3719c70870 updated minimum PHP version to 5.3.3
5.3.3 has some interesting fixes and this is the version used by
Redhat 6 and Debian 6
2012-05-07 10:29:11 +02:00
Victor Berchet
bdc21b4dc4 [Validator] Add a base AbstractLoader 2012-05-07 10:27:33 +02:00
Victor Berchet
ead4908eff [Validator] Some cleanup of the GraphWalker 2012-05-07 10:27:10 +02:00
Victor Berchet
23e15bb878 [Validator] Fix a bug in the ExecutionContext 2012-05-07 10:26:46 +02:00
Fabien Potencier
cc85a6efda merged branch vicb/routingmatcher (PR #4170)
Commits
-------

a196ca0 [Routing] Compiler: remove lazy quantifiers with no effect
8232aa1 [Routing] Compiler: fix in the computing of the segment separators

Discussion
----------

[Routing] Fix the matching process

This PR is based on the PR #3678, #4139.

[![Build Status](https://secure.travis-ci.org/vicb/symfony.png?branch=routingmatcher)](http://travis-ci.org/vicb/symfony)

**The spec**

A pattern is composed of both text and variable segments: `/{variable}-test/{other_variable}`.

A variable segment will match anything until a separator is encountered. The separator is the character following the variable segment when available or preceding the variable otherwise (i.e. at the end of the pattern).

That is:

* the separator is `-` for the `variable`,
* the separator is `/` for the `other_variable`.

*Note: This default matching behavior can be overridden if a requirement is specified for a variable)*

**Fixes**

* The current behavior is to consider booth the preceding and following characters as separators (considering availability),
* The "preceding" separator of the first variable is always set to `/` whatever the preceding character is (due to `$pos = 0` for the first iteration).

**Todo**

Update the doc once this is merged
2012-05-07 10:15:50 +02:00
Fabien Potencier
f273edc176 [HttpFoundation] added missing RFC reference 2012-05-05 10:20:38 +02:00
Fabien Potencier
503a51fa29 [HttpFoundation] updated RFC references in Response 2012-05-05 08:22:03 +02:00
Fabien Potencier
cb905c5ff6 merged branch stephpy/cs_fixes (PR #4198)
Commits
-------

bc63fb2 Fix some cs

Discussion
----------

Fix some cs

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

by fabpot at 2012-05-03T21:13:33Z

Can you squash your commits? Thanks.

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

by stephpy at 2012-05-03T22:18:07Z

It's ok
2012-05-04 12:13:57 +02:00
Stéphane PY
bc63fb26be Fix some cs 2012-05-04 00:17:06 +02:00
Fabien Potencier
b49d611eca merged branch GromNaN/browser-kit-cookie-jar-dependency (PR #4178)
Commits
-------

95b8e29 [BrowserKit] Remove dependency of CookieJar to Response

Discussion
----------

[BrowserKit] Remove dependency of CookieJar to Response

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

The CookieJar has currently a hard dependency to `BrowserKit\Response`, but this dependency could be avoided.

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

by stof at 2012-05-01T21:52:34Z

Renaming a method *is* a BC break.

You should add a new method and keep the old one accepting the Response (and make it calling the new method internally). This way, it would add the new feature without breaking the BC.

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

by stof at 2012-05-01T21:53:31Z

And btw, I don't see the issue with BrowerKit depending on BrowserKit. If you have a class, you also have the other one.

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

by GromNaN at 2012-05-02T05:57:51Z

The issue is that I want to use the CookieJar without the Request/Response of BrowserKit.

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

by fabpot at 2012-05-03T06:37:02Z

You should also keep some unit tests for the old method.

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

by GromNaN at 2012-05-03T08:22:39Z

@fabpot I've made the changes.

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

by fabpot at 2012-05-03T10:53:47Z

Can you squash your commits before I merge? Thanks.

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

by GromNaN at 2012-05-03T10:57:30Z

@fabpot Squashed
2012-05-03 13:11:02 +02:00
Jérôme Tamarelle
95b8e29f57 [BrowserKit] Remove dependency of CookieJar to Response 2012-05-03 12:58:56 +02:00
Jerome Tamarelle
970d0b4ddb [BrowserKit] Check class existence only when required. 2012-05-03 09:50:46 +02:00
Fabien Potencier
b983fcd565 merged branch Tobion/patch-4 (PR #4175)
Commits
-------

b1de2a2 [HttpKernel] fix typo, commit 9fed41 fixed only half of it

Discussion
----------

[HttpKernel] fix typo

commit 9fed41 fixed only half of it
2012-05-03 08:40:32 +02:00
Sebastien Armand
43dc19e00a update exception message so user can know which message has caused the exception 2012-05-02 22:02:53 +08:00
Tobias Schultze
b1de2a2f2f [HttpKernel] fix typo, commit 9fed41 fixed only half of it 2012-05-01 21:35:18 +03:00
Fabien Potencier
8eea5c3d5f merged branch shieldo/fix_exception_message (PR #4173)
Commits
-------

69e0451 [Security] fixed English grammar in exception message

Discussion
----------

[Security] fixed English grammar in exception message
2012-05-01 18:03:29 +02:00
Fabien Potencier
9fed41ee9b [HttpKernel] fixed typo 2012-05-01 18:02:24 +02:00
Fabien Potencier
5bed5f3c2c merged branch willdurand/fix-components (PR #4155)
Commits
-------

c195957 [Components] Tests/Autoloading fixes

Discussion
----------

Fix components

See #4141

----
This PR:

* configures each component to use composer to manage "dev" dependencies instead of env variables;
* adds phpunit configuration file on Filesystem component;
* fixes READMEs.

It's mergeable without any problems, but I would recommend to wait a fix in Composer in order to use `self.version` in `require`/`require-dev` sections.

Note: I kept `suggest` sections because it makes sense but this PR doesn't aim to provide useful explanations for each entry. It could be another PR, not that one.

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

by willdurand at 2012-04-30T20:43:13Z

@fabpot I reviewed each component, one by one. Now `phpunit` always works, even if tests are skipped. A simple `composer install --dev` allows to run the complete test suite. Each commit is well separated from the others. I guess, everything is ok now.

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

by Tobion at 2012-04-30T20:47:00Z

Please squash, as it makes no sense to have the same commit for each component.

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

by fabpot at 2012-05-01T14:26:11Z

Can you squash your commits before I merge? Thanks.

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

by willdurand at 2012-05-01T14:29:38Z

done

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

by fabpot at 2012-05-01T15:48:25Z

It does not seem that the commits are squashed.

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

by willdurand at 2012-05-01T15:54:08Z

done
2012-05-01 17:59:34 +02:00
William DURAND
c1959571ac [Components] Tests/Autoloading fixes
* Switched to Composer to manage "dev" dependencies
* Fixed READMEs
* Excluded vendor in phpunit.xml.dist files
* Fixed message in bootstrap.php files
* Added autoloader for the component itself
2012-05-01 17:51:41 +02:00
Fabien Potencier
462ddfced9 merged branch pulzarraider/httpfoundation_changelog_fix (PR #4169)
Commits
-------

ea3f8c5 [HttpFoundation] added native Redis session handler to CHANGELOG

Discussion
----------

[HttpFoundation] Added native Redis session handler to CHANGELOG

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
2012-05-01 16:21:36 +02:00
Fabien Potencier
53dadbb9d6 [DependencyInjection] fixed a test 2012-05-01 16:19:44 +02:00
Douglas Greenshields
69e0451143 [Security] fixed English grammar in exception message 2012-05-01 14:45:52 +01:00
Fabien Potencier
26f933e7bd fixed CS 2012-05-01 15:23:48 +02:00
Hugo Hamon
9ac8d43dd1 [Security] fixed phpdoc. 2012-05-01 13:15:31 +01:00
Hugo Hamon
a3ecea3ed3 [Security] added some missing phpdoc for AbstractToken::setUser() and UsernamePasswordToken::__construct() methods. 2012-05-01 13:13:14 +01:00
Victor Berchet
a196ca03a5 [Routing] Compiler: remove lazy quantifiers with no effect 2012-05-01 11:56:03 +02:00
Victor Berchet
8232aa150b [Routing] Compiler: fix in the computing of the segment separators 2012-05-01 11:56:03 +02:00
Andrej Hudec
ea3f8c53f9 [HttpFoundation] added native Redis session handler to CHANGELOG 2012-05-01 08:53:36 +02:00
Andrej Hudec
991474be12 [HttpKernel] RedisProfilerStorage - Fix falling unit tests when Redis extension is not available 2012-04-30 20:54:41 +02:00
Fabien Potencier
59dd4df7f4 bumped Symfony version to 2.0.14-DEV 2012-04-30 18:52:26 +02:00
Fabien Potencier
dbd95683aa merged branch pulzarraider/memcache_profiler_update (PR #4150)
Commits
-------

1f6c8d5 [HttpKernel] Added mock objects for Memcache(d) and Redis
e17217b [HttpKernel] Remove destructive flush() from memcache(d) storage profilers

Discussion
----------

[HttpKernel] Memcache and Redis profiler storage update

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

Changes of this PR:

- change ```purge()``` method of memcache(d) profiler storage to delete only required items and be less destructive,
- mock objects for Redis and Memcache(d) storages were added to make unit tests independent from memcache(d)/redis extensions and memcache(d)/redis servers running on localhost.
2012-04-30 17:38:04 +02:00
Fabien Potencier
33c7743063 merged branch adanlobato/master (PR #4130)
Commits
-------

42a73f4 Typo fix

Discussion
----------

[Typo] Removed extra 's'
2012-04-30 17:33:53 +02:00
Fabien Potencier
b66b6fc99e updated VERSION for 2.0.13 2012-04-30 15:31:20 +02:00
John Kary
5b92b9ed43 [Console] Selectively output to STDOUT or OUTPUT stream
Addresses issues with writing console output for IBM i5 Series (OS400).
The normal QP2TERM shell outputs garbage text when attempting to write
directly to STDOUT, likely because of EBCDIC character-encoding used
on IBM platforms. Writing to the OUTPUT mimics using 'echo' or 'print'
and prints properly in the console.

Fixes #1434
2012-04-29 14:28:50 -05:00
Andrej Hudec
1f6c8d5c7e [HttpKernel] Added mock objects for Memcache(d) and Redis 2012-04-29 01:33:14 +02:00
Ismael Ambrosi
7dfd410481 Fixes typos 2012-04-28 00:51:32 -03:00
Andrej Hudec
e17217b14a [HttpKernel] Remove destructive flush() from memcache(d) storage profilers 2012-04-27 22:40:33 +02:00
Fabien Potencier
4ac3bddb5d Revert "merged branch Tobion/patch-3 (PR #4136)"
This reverts commit 606ddf48c5, reversing
changes made to 00e7a94a8c.
2012-04-27 19:55:49 +02:00
Fabien Potencier
9fbf8555f0 Revert "merged branch Seldaek/master (PR #4133)"
This reverts commit 00e7a94a8c, reversing
changes made to a01dec00f4.
2012-04-27 19:55:40 +02:00
Fabien Potencier
091ede2dd1 merged branch bschussek/issue3994 (PR #4046)
Commits
-------

246c885 [Form] Fixed: Default value of 'error_bubbling' is now determined by the 'single_control' option
d3bb4d0 [Form] Renamed option 'primitive' to 'single_control'
167e64f [Form] Fixed: Field attributes are not rendered in the label anymore. Label attributes are now passed in "label_attr"
68018a1 [Form] Dropped useless test that is guaranteed by OptionsParser tests and that needs to be adapted very often
649752c [Form] Fixed: CSRF token was not displayed on empty complex forms
c623fcf [Form] Fixed: CSRF protection did not run if token was missing
eb75ab1 [Form] Fixed results of the FieldType+FormType merge.

Discussion
----------

[Form] Fixed errors introduced in the FieldType+FormType merge

Bug fix: yes
Feature addition: no
Backwards compatibility break: yes
Symfony2 tests pass: yes
Fixes the following tickets: #3994, #4000, #2294, #4118
Todo: -

![Travis Build Status](https://secure.travis-ci.org/bschussek/symfony.png?branch=issue3994)

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

by Tobion at 2012-04-22T15:39:20Z

`primitive` is a pretty abstract option name. It depends on the person what he considers primitive. Maybe more explicit naming or better documentation what it means.

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

by bschussek at 2012-04-22T15:47:29Z

Better suggestions?

The distinction here is between primitive and complex forms, where primitive forms are such forms that can be represented by a single HTML tag. This obviously needs to be documented.

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

by Tobion at 2012-04-22T15:49:45Z

Maybe `single_widget` or something like that.

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

by vicb at 2012-04-23T13:09:43Z

@Tobion @bschussek would `elementary` be better than `primitive` ?

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

by vicb at 2012-04-23T13:17:04Z

and `compound \ composite` better than `complex` ?

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

by bschussek at 2012-04-23T14:08:33Z

@vicb I fail to see how elementary/compound is easier to understand than primitive/complex. Maybe single_widget, but what's the opposite of this case? multi_widget?

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

by vicb at 2012-04-23T14:15:09Z

Actually I am fine with anything... as long as it is documented.

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

by bschussek at 2012-04-23T14:22:31Z

Still I think that this unveals a more profound naming problem. How do we (also in the documentation) name forms with children (formerly "forms") and forms without children (formerly "fields")?

Should we refer to them as

* forms and fields?
* complex and primitive forms?
* ...

We must first answer this question before we can find an intuitive option name. If the documentation always switches between different terminologies, neither will it be understandable nor will this option be easy to remember.

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

by vicb at 2012-04-23T15:10:32Z

> Still I think that this unveals a more profound naming problem. How do we (also in the documentation) name forms with children (formerly "forms") and forms without children (formerly "fields")?

To make it clear, I would rather say forms that **can have** children and forms that **can not have** children (i.e. Empty collections have no children but they can have and this is reason why you have to introduce those options, right ? - that could be a good example for the doc).

It will probably be better to refer to "complex" / "primitive" forms in the doc (and use the "form" / "field" terms to explain them).

Note: I think @Tobion concern is that "primitive" / "complex" could be pejorative terms (this is why I have proposed "elementary" / "compound").

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

by Tobion at 2012-04-23T16:00:54Z

1. primitive/complex is subjective (and could be pejorative too)
2. elementary/compound is more explicit so probably better than primitive/complex
3. I dislike this option in general. Does it make sense to change this option from a user perspective? I guess it's always the same as long as the widget structure stays the same. So it should be resolved at a higher level dynamically from the widget structure and not exposed to any configuration.
4. In documentation I would use the terms forms and fields. Because all people with HTML knowledge will understand that fields cannot have sub-fields whereas forms can. But since this distinction is not findable in code, it should be mentioned that all these are implemented as a form hierarchy.

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

by mvrhov at 2012-04-23T16:02:00Z

how about simple and complex?

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

by bschussek at 2012-04-23T16:06:33Z

@Tobion It does not make sense to change this option from the user perspective, still the overloading type has to propagate to FormType whether it is a form or a field, so that the default behaviour is correct.

A second option how to implement this is to add a method `isField` to FormTypeInterface that can be overloaded and receives the options. I don't really like to introduce new methods here unless absolutely required.

What about renaming the option "primitive" to "is_field"? The blocks in the template would then be named "form_widget_field" and "form_widget_form".

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

by tristanbes at 2012-04-25T14:01:06Z

Oh, I should've seen this before, i thought I was doing something wrong. (empty collections gets an input field bug)

Please big :UP: on this. When will it be merged ? @bschussek

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

by Tobion at 2012-04-25T15:30:28Z

+1 for "is_field" and "form_widget_field" but I would rather use "form_widget_compound" instead of "form_widget_form" which is quite strange.

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

by bschussek at 2012-04-26T16:34:04Z

@Tobion "simple" and "compound" then?

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

by Tobion at 2012-04-26T16:49:58Z

no "field" and "compound"

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

by bschussek at 2012-04-26T17:17:02Z

I don't like "field" for a simple reason: Consider the "date" type. We are typically speaking of the "date" field there. But technically, the "date" field is a compound field. So?

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

by Tobion at 2012-04-26T21:17:37Z

I don't understand the open question. You proposed "is_field" and "form_widget_field" yourself. So calling the template block "form_widget_field" is a comprehensible consequence of "is_field". I wouldn't call the date type with multiple inputs a field.

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

by tristanbes at 2012-04-26T21:52:39Z

We should take a decision cause right here i got all my forms that are broken because of the empty collection rendering as input field :-).

I guess we are many in that situation.

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

by bschussek at 2012-04-27T08:28:16Z

I renamed "primitive" to "single_control" now to match with the HTML specification which names all input elements (input, select etc.) "controls". The opposite is now "compound".

Meanwhile, I added a fix for #4118.

@fabpot This is ready for merge now.

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

by Tobion at 2012-04-27T10:22:49Z

Hm, I know naming things is hard and sometimes not really important. But since users need to know which block to override, it is essential to make it clear. I think there is still one issue.
The block is named `form_widget_single_control` in order, as you said, to abstract away if it's an input, select etc. But in fact it can only render `input` and nothing else. So this is misleading.
So you could also simply name it `form_widget_input`.
Apart from that I agree with everything.
2012-04-27 19:13:34 +02:00