This PR was squashed before being merged into the master branch (closes#6391).
Commits
-------
7bad0ef [Console] Add autocomplete as you type
Discussion
----------
[Console] Add autocomplete as you type
Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
License of the code: MIT
Finally got around to reviving the console autocomplete code.
Is now up to date with Symfony master. Also changed backspace behaviour to remove one character instead of two.
stty stuff is a mystery to a lot of people, so I've commented verbosely.
See also: https://github.com/symfony/symfony/pull/2364
---------------------------------------------------------------------------
by lmcd at 2012-12-17T10:11:16Z
@stof - updated with a better solution
---------------------------------------------------------------------------
by Seldaek at 2012-12-17T10:25:15Z
Seems pretty cool, but could you replace all `/usr/bin/env stty` calls by simply `stty`? That way it would also work on windows - if you have mingw or cygwin installed and stty is in the path at least. I don't see the benefit of doing the /usr/bin/env trick here. That's good for shebang lines because you need an absolute path, but in an exec/shell_exec call, you can rely on the PATH and just type the command name.
---------------------------------------------------------------------------
by lmcd at 2012-12-17T18:33:06Z
@Seldaek makes sense. Changed.
---------------------------------------------------------------------------
by lmcd at 2012-12-17T21:32:17Z
Tested on Mac OS X 10.8 and Ubuntu 12.04. Would be great to hear from people on Windows, cygwin and those with exotic terminal setups.
I'll update my fork of SensioGeneratorBundle a little later with support for this.
@fabpot - is there still time for this to land in 2.2?
---------------------------------------------------------------------------
by fabpot at 2012-12-17T21:34:23Z
If we have good feedback from Windows users, yes it can land in 2.2. ping @pborreli
---------------------------------------------------------------------------
by michelsalib at 2012-12-17T23:39:50Z
A am about to try on windows 7 with cmd, powershell and cygwin. Any other way to test without writing a new command using the helper ?
---------------------------------------------------------------------------
by michelsalib at 2012-12-18T00:01:42Z
I tried on Windows 7 with cmd, powershell and cygwin and got this error: `Le chemin d'accès spécifié est introuvable.`. You can translate it to `The specified path could not be found`.
---------------------------------------------------------------------------
by lmcd at 2012-12-18T00:01:43Z
I've updated SensioGeneratorBundle to support autocompletion on the `generate:doctrine:entity` command. It autocompletes bundle names, configuration formats and field types. See here: c627c67ce7
@michelsalib ping
---------------------------------------------------------------------------
by lmcd at 2012-12-18T00:03:43Z
@michelsalib - hmm. I imagine it's either a problem locating stty or some configuration issue on your end. Do you have file/line number?
---------------------------------------------------------------------------
by michelsalib at 2012-12-18T00:04:41Z
Verbose mode did not help. Let me try with some dirty line by line check to see if I can give you a line.
---------------------------------------------------------------------------
by michelsalib at 2012-12-18T00:09:54Z
My bad, I should have guessed that line 144 `exec('/usr/bin/env stty', $output, $exitcode);` cannot work on regular Windows environment. This should at least fails silently for users using cmd or powershell. Apparently cygwin users can activate stty. Let me investigate.
---------------------------------------------------------------------------
by michelsalib at 2012-12-18T00:16:30Z
Ok, cygwin comes pre-bundled with stty. I applied the fix recommended by @Seldaek and it fixed the cygwin command.
The only remaining problem is that your redirect the output of the exec call to the console, in this case cmd and powershell output the error telling that stty is not defined in the system: `'stty' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.`.
---------------------------------------------------------------------------
by lmcd at 2012-12-18T00:17:41Z
Ah, I see you're running the unit tests. The `hasSttyAvailable` method was lifted from `DialogHelper` where it is also used in `askHiddenResponse`. Question: is `defined('PHP_WINDOWS_VERSION_BUILD')` true for cygwin?
---------------------------------------------------------------------------
by michelsalib at 2012-12-18T00:22:14Z
I am not running test, I am actually running a homemade command:
```
$dialog = $this->getHelper('dialog');
$ask = $dialog->ask($output, 'Autocomplete example', null, array(
'French', 'English', 'Chineese',
));
$output->writeln($ask);
```
`hasSttyAvailable` is called in the ask function at line 80. The incriminated function is here : 9ebcd4bac9/src/Symfony/Component/Console/Helper/DialogHelper.php (L411).
Also `defined('PHP_WINDOWS_VERSION_BUILD')` is true in the three of my consoles.
---------------------------------------------------------------------------
by lmcd at 2012-12-18T00:27:16Z
@michelsalib see 7be142481c
---------------------------------------------------------------------------
by michelsalib at 2012-12-18T00:28:20Z
Why keeping `/usr/bin/env` in your calls ? Cygwin cannot interpret it as long a stty is not in this folder.
---------------------------------------------------------------------------
by lmcd at 2012-12-18T00:29:30Z
@michelsalib `/usr/bin/env` was put there by someone else for the `askHiddenResponse` method. I can remove it, so long as it doesn't break something else.
---------------------------------------------------------------------------
by michelsalib at 2012-12-18T00:34:11Z
IMO users who want's to use stty should have it configured in the PATH, as @Seldaek said. Prefixing the folder where the stty "should" be is a nonsense to me. Moreover it might work well on *nix systems, but will never be compatible with cygwin.
I tested it locally (without the `/usr/bin/env` prefix) and now I have a nice autocomplete on Cygwin, and nothing on cmd or powershell. Which is just what I expected.
@lmcd very nice work :)
---------------------------------------------------------------------------
by lmcd at 2012-12-18T05:17:32Z
For anyone interested, you can scroll through available autocomplete options that match typed characters by using up and down arrow keys. This has been implemented in a seperate branch here: https://github.com/lmcd/symfony/tree/autocomplete-arrows
---------------------------------------------------------------------------
by drak at 2012-12-18T19:13:34Z
@lmcd - The console PRs never cease to amaze me. Really well done!
---------------------------------------------------------------------------
by fabpot at 2012-12-19T13:58:33Z
@lmcd Is it mergeable now?
---------------------------------------------------------------------------
by lmcd at 2012-12-19T17:59:09Z
@fabpot Yes.
---------------------------------------------------------------------------
by lmcd at 2012-12-19T20:03:31Z
Edit: commits squashed
---------------------------------------------------------------------------
by lmcd at 2012-12-19T21:29:07Z
@stloyd I have addressed the two things mentioned. I'm now using $i in place of strlen($ret) as it held the same value.
---------------------------------------------------------------------------
by fabpot at 2012-12-20T07:09:27Z
@lmcd: Thanks a lot for finishing this in time for 2.2. Before I can merge, there are two remaining tasks:
* add a note about the new feature in the CHANGELOG file of the Console component;
* create a PR on `symfony/symfony-docs` to explain the new feature.
Can you take care of that?
---------------------------------------------------------------------------
by lmcd at 2012-12-20T07:11:15Z
@fabpot sure
---------------------------------------------------------------------------
by stloyd at 2012-12-29T09:15:23Z
@lmcd You should squash your "merge" commit.
---------------------------------------------------------------------------
by lmcd at 2012-12-29T13:49:37Z
Well that screwed up. File Changed: 216 :S
Edit: hard reset to an earlier hash and reapplied the CHANGELOG commit. Should be good now ping @stloyd
---------------------------------------------------------------------------
by stloyd at 2012-12-29T14:33:58Z
@lmcd `ask()` method is quite long now, but in overall looks ok =)
---------------------------------------------------------------------------
by lmcd at 2013-01-02T20:49:49Z
Anything preventing this being merged? Ping @fabpot
This PR was merged into the master branch.
Commits
-------
29b9611 [Finder] Added support for GLOB patterns in the directories passed to the in() method.
Discussion
----------
[Finder] Added support for wildcard characters (GLOB patterns)
Added support for wildcard characters in the paths passed to the *in()* method. Each pattern has to resolve to at least one directory, otherwise exception is thrown (just like when path to an invalid directory is passed).
Example usage:
```php
$finder = new \Symfony\Component\Finder\Finder();
$files = $finder->files()
->name('validators.en.*')
->in(array(
'src/Symfony/*/*/Resources/translations',
));
foreach ($files as $file) {
var_dump($file->getRealPath());
}
```
Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #5450
Todo: -
License of the code: MIT
Documentation PR: symfony/symfony-docs#2089
This PR was merged into the master branch.
Commits
-------
5779262 Update src/Symfony/Component/HttpFoundation/Request.php
Discussion
----------
Update src/Symfony/Component/HttpFoundation/Request.php
[HttpFoundation][Request] Align const
This PR was merged into the master branch.
Commits
-------
c543116 Improve timing safe comparison function
Discussion
----------
Improve timing safe comparison function in Security bundle to not leak length information.
Improve the timing safe comparison function to better handle cases where input is of different length.
Note that it is now important to always pass any string that the user can directly control to the second parameter of the function. Otherwise, length information may be leaked.
---------------------------------------------------------------------------
by ircmaxell at 2012-12-29T13:36:32Z
@apfelbox: No, for two reasons. First, you shouldn't be passing the password directly into this function (it should be hashed first).
Second, it depends only on the length of the user supplied input (the second parameter). So the execution time will vary, but 100% based on user input. No information about the stored string is leaked...
---------------------------------------------------------------------------
by apfelbox at 2012-12-29T14:09:54Z
@ircmaxell yes, I just thought about it for a while and you are right. The `strlen($knownString)` is a constant factor and therefore the execution time of the function does not vary with it (especially if it is hashed).
Improve the timing safe comparison function to better handle cases where input is of different length.
Note that it is now important to always pass any string that the user can directly control to the second parameter of the function. Otherwise, length information may be leaked.
This PR was merged into the master branch.
Commits
-------
d5948f1 Use KernelEvents constants in TraceableEventDispatcher
Discussion
----------
[HttpKernel] Use KernelEvents constants in TraceableEventDispatcher
Can't see any reason why we're not using constants here.
This PR was merged into the master branch.
Commits
-------
7533deb [Form] Prevent trigger of E_USER_DEPRECATED for new API
Discussion
----------
[Form] Prevent trigger of E_USER_DEPRECATED for new API
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets:
Todo: -
License of the code: MIT
---------------------------------------------------------------------------
by stof at 2012-12-19T13:54:33Z
This is wrong as FormEvent extends DataEvent and so is also an instance.
Thus, DataEvent should never be constructed anymore (Sf2 does not instantiate it asnd there is no reason to dispatch it elsewhere). The BC is for typehints, and so the useful E_USER_DEPRECATED would be when DataEvent is used as typehint (which is not possible to detect AFAIK)
---------------------------------------------------------------------------
by drak at 2012-12-19T14:07:33Z
So in that case I should check specifically for two class names. Remember the intention here is to NOT trigger an error when the NEW class `FormEvent` is used. I'll update the PR.
---------------------------------------------------------------------------
by Tobion at 2012-12-19T14:25:42Z
I like the solution with an overridden constructor more because using the new stuff will not have the performance penalty of calling `get_class` at all.
---------------------------------------------------------------------------
by stof at 2012-12-19T14:52:47Z
@drak and why not simply ``if (!$this instanceof FormEvent)`` ?
---------------------------------------------------------------------------
by drak at 2012-12-19T15:58:28Z
@stof - if that's ok - I was just assuming other classes might have inherited.
@Tobion - the problem is the private name property we have to call parent which will ultimately call the deprecated constructor.
---------------------------------------------------------------------------
by drak at 2012-12-19T15:59:25Z
How about this?
---------------------------------------------------------------------------
by stof at 2012-12-19T16:51:26Z
@drak if your class inherit from DataEvent instead of FormEvent, it is logical to get a deprecation warning
---------------------------------------------------------------------------
by stof at 2012-12-19T16:52:50Z
@drak I think this allows removing some special error catching in a few places in Form tests (and also in the Form class if it was added)
---------------------------------------------------------------------------
by drak at 2012-12-19T17:33:51Z
@stof - yes, the whole idea is, if you inherit from FormEvent, no warning. anything else, gives warning - that's what we want right?
PR squashed and ready from my side.
---------------------------------------------------------------------------
by drak at 2012-12-20T14:00:13Z
ping @fabpot
---------------------------------------------------------------------------
by bschussek at 2012-12-28T15:19:40Z
👍
This PR was merged into the master branch.
Commits
-------
16a196a [Form] Fix deprecated call method
Discussion
----------
[Form] Fix deprecated call method
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: -
Fixes the following tickets: -
Todo: -
License of the code: MIT
Documentation PR: -
---------------------------------------------------------------------------
by stof at 2012-12-21T13:21:50Z
This is wrong as the typehint of the constructor is still typehinting the old interface, and so this method is not available.
But the typehint should be changed to use the new interface anyway
---------------------------------------------------------------------------
by francoispluchino at 2012-12-26T09:11:49Z
@fabpot It's OK for you?
(The failure of the Travis test is caused by the DateTime Form test only in PHP 5.3.3)
---------------------------------------------------------------------------
by bschussek at 2012-12-28T15:00:51Z
Can you please squash the commits?
---------------------------------------------------------------------------
by francoispluchino at 2012-12-28T15:57:47Z
@bschussek OK, it's done.
This PR was merged into the master branch.
Commits
-------
828eb90 Fix a tag name typo (</ësh> to </target>)
Discussion
----------
[Validator] Fix a tag name typo (</ësh> to </target>) in validators.sq.xlf
Replace </ësh> by </target> line 139.
This PR was merged into the master branch.
Commits
-------
d2a1e4e Update src/Symfony/Component/Validator/Resources/translations/validators.it.xlf
Discussion
----------
[Validator] Fix structure error in validators.it.xlf
Fix structure error in validators.it.xlf.
Probably a copy-cut that didn't work correctly.
---------------------------------------------------------------------------
by stof at 2012-12-28T17:04:17Z
I suspect a bad resolution of a merge conflict
---------------------------------------------------------------------------
by tgalopin at 2012-12-28T17:06:17Z
Indeed, probably.
This PR was merged into the master branch.
Commits
-------
0a42501 [HttpKernel] tweaked logging in the exception listener
1a6c9b3 [HttpKernel] refactored logging in the exception listener
Discussion
----------
[HttpKernel] refactored logging in the exception listener
* avoid code duplication
* allow easier overloading of the default behavior
This PR was merged into the master branch.
Commits
-------
6cd1fd4 [DependencyInjection] removed hard dependency on the Config component
Discussion
----------
[DependencyInjection] removed hard dependency on the Config component
The Config component is a hard dependency for the loaders (but loaders
themselves are optional); all other classes should not have a hard dep
on Config. The introduction of a new flag allows to remove this
dependency.
This commit also fixes skipped test dependencies.
---------------------------------------------------------------------------
by fabpot at 2012-12-28T09:47:13Z
As there is only one location where we are directly using a class from the Config component (`ContainerBuilder::addObjectResource()`), we can also just test this case and do nothing if the class does not exist instead of adding a flag, but that looks dirty.
```php
public function addObjectResource($object)
{
if (!class_exists('Symfony\Component\Config\Resource\FileResource')) {
return $this;
}
$parent = new \ReflectionObject($object);
do {
$this->addResource(new FileResource($parent->getFileName()));
} while ($parent = $parent->getParentClass());
return $this;
}
```
What do you think?
This PR was merged into the master branch.
Commits
-------
3cac604 [DependencyInjection] fixed setting a synthetic service on a frozen container
Discussion
----------
[DependencyInjection] fixed setting a synthetic service on a frozen container
By definition of a synthetic service, setting it on a frozen container should be possible.
---------------------------------------------------------------------------
by stof at 2012-12-28T08:44:44Z
This allows setting services which are not defined
---------------------------------------------------------------------------
by fabpot at 2012-12-28T08:49:29Z
@stof: right, thinking about it more, it is probably not a so good idea.
---------------------------------------------------------------------------
by fabpot at 2012-12-28T08:52:03Z
I've restricted the condition to only accept setting existing synthetic services. That should be ok.
---------------------------------------------------------------------------
by drak at 2012-12-28T19:10:23Z
This is a good enhancement but I would go further. It should still be possible to add parameters and definitions to the container after it's been compiled but not allow modification of existing services or parameters.
The Config component is a hard dependency for the loaders (but loaders
themselves are optional); all other classes should not have a hard dep
on Config. The introduction of a new flag allows to remove this
dependency.
This commit also fixes skipped test dependencies.
This PR was merged into the master branch.
Commits
-------
18daa10 [Routing] Used static to call constant in XmlFileLoader
Discussion
----------
[2.2][Routing] Used static to call constant in XmlFileLoader
It is more complicated to override XmlFileLoader if contants are called with `self`.
This PR replace `self` to `static`.
Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
License of the code: MIT
---------------------------------------------------------------------------
by piotrpasich at 2012-12-21T08:17:14Z
+1
This allows to have a meaningful information in the WDT when the route
in the Request is not the route name but the route object (like in
Drupal for instance).
This PR was merged into the master branch.
Commits
-------
0fa7378 [Validator] Card validation - Italian translations
Discussion
----------
[Validator] Card validation - Italian translations
Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: no
This PR was merged into the master branch.
Commits
-------
b32c37d Hebrew validator - added some missing validator keys
Discussion
----------
Hebrew validator - added some missing validator keys
* 2.1:
bumped Symfony version to 2.1.7-DEV
updated VERSION for 2.1.6
updated CHANGELOG for 2.1.6
[Form] Fix for `DateTimeToStringTransformer`
Conflicts:
src/Symfony/Component/HttpKernel/Kernel.php
This PR was merged into the 2.1 branch.
Commits
-------
8beee64 [Form] Fix for `DateTimeToStringTransformer`
Discussion
----------
[Form] Fix for `DateTimeToStringTransformer`
Closes: #6429
---------------------------------------------------------------------------
by stloyd at 2012-12-21T08:19:11Z
@fabpot @bschussek Could you review this ? Thanks =)
---------------------------------------------------------------------------
by stloyd at 2012-12-23T13:51:36Z
Ping @fabpot (without this every PR gets false fail results from Travis-CI)
This PR was merged into the master branch.
Commits
-------
31a7825 [FrameworkBundle] changed data collector templates to use the new namespaced template names
Discussion
----------
[FrameworkBundle] changed data collector templates to use the new namespaced template names
#6465 must be merged first.
This PR was merged into the master branch.
Commits
-------
a50e2a4 Albanian translation
Discussion
----------
Albanian translation
Albanian translation of the Validator Component
This PR was merged into the master branch.
Commits
-------
5e359d3 made the kernel optional in all data collectors
Discussion
----------
made the kernel optional in all data collectors
This PR was merged into the master branch.
Commits
-------
bf9e238 [Form] Add options with_minutes to DateTimeType & TimeType
Discussion
----------
[Form] Add option with_minutes to the DateTimeType & TimeType
Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Fixes the following tickets: -
Todo: -
Hey,
One of my project requires the datetime usage only with hours. I have submit a patch allowing to disable minutes like seconds are disabled.
---------------------------------------------------------------------------
by stloyd at 2012-04-09T16:26:11Z
You should also extend tests for those `Types`
---------------------------------------------------------------------------
by egeloen at 2012-04-09T16:31:51Z
Oups, I have looked at tests but I didn't find it at my first reading. I will do it :)
---------------------------------------------------------------------------
by stloyd at 2012-04-09T16:34:42Z
@egeloen Here you can find tests for Form Types: https://github.com/symfony/symfony/tree/master/src/Symfony/Component/Form/Tests/Extension/Core/Type
---------------------------------------------------------------------------
by egeloen at 2012-04-09T16:42:42Z
@stloyd I have added tests. Can you give me some feedbacks ?
---------------------------------------------------------------------------
by stloyd at 2012-04-09T16:46:33Z
@egeloen I'm not sure if we should allow user to set `with_minutes=false` and `with_seconds=true`. But in overall seems quite ok.
---------------------------------------------------------------------------
by egeloen at 2012-04-09T16:51:37Z
Yes, you're right. But I'm unsure how can I do this following the good way.
---------------------------------------------------------------------------
by inanimatt at 2012-05-03T15:46:02Z
Just make it throw an InvalidConfigurationException.php exception, no? :)
---------------------------------------------------------------------------
by egeloen at 2012-06-09T18:27:41Z
I have updated the PR in order to throw an ``InvalidConfigurationException`` if we enable seconds & disable minutes.
---------------------------------------------------------------------------
by egeloen at 2012-07-09T19:08:11Z
@bschussek I have removed the useless code.
I think I have found an issue about my PR. I have added 3 tests in order to show it. It seems if we disable minutes, the text widget is broken.
---------------------------------------------------------------------------
by stof at 2012-10-13T16:00:43Z
@egeloen can you rebase your PR as it conflicts with master ?
---------------------------------------------------------------------------
by egeloen at 2012-10-13T17:15:22Z
@stof rebase
Like explain previously, my PR is still failling if we disable minutes & use the text widget.
---------------------------------------------------------------------------
by egeloen at 2012-10-13T18:09:03Z
I have fixed the last issue. IMO, the PR can now be merge.
---------------------------------------------------------------------------
by stof at 2012-10-13T18:20:00Z
@bschussek @fabpot ping
---------------------------------------------------------------------------
by egeloen at 2012-10-16T18:13:00Z
@bschussek Do yo think this PR can be merge?
---------------------------------------------------------------------------
by egeloen at 2012-10-30T19:14:00Z
@fabpot is there something missing before merging?
---------------------------------------------------------------------------
by fabpot at 2012-10-31T08:22:55Z
I'm waiting for @bschussek approval.
---------------------------------------------------------------------------
by geoffrey-brier at 2012-11-13T10:49:52Z
I really need the `with_minute => false` enhancement on a project as I don't want to write CSS/JS hacks, could @bschussek approve/disapprove it so that I can make a decision?
---------------------------------------------------------------------------
by henrikbjorn at 2012-11-13T10:52:12Z
@geoffrey-brier you could do you own FieldType that extends the current one and add the option your self.
---------------------------------------------------------------------------
by egeloen at 2012-11-13T13:20:44Z
@bschussek Yes... :) I have updated the PR according to your feedback.
I needed to update the `DateTimeToStringTransformer` because it tries to create a `DateTime` only from the value (with no format). In my case, the `'03'` value is not enougt to create it. So, if the date time creation fails, it then try to create the datetime from the format. I don't know if it is the best approach but it works well.
By the way, why does it first try to create a `DateTime` without format, **then only** try to use the format ?
---------------------------------------------------------------------------
by bschussek at 2012-11-13T14:20:13Z
@egeloen Good question, I think the transformer is a bit flawed there. I'm working on that. The rest of the PR looks good. Thank you!
---------------------------------------------------------------------------
by bschussek at 2012-12-13T18:14:58Z
I fixed the transformer in #6333. Once that is merged into 2.1, and once 2.1 is merged into master after that, you can rebase this PR on master. Then we can merge it.
---------------------------------------------------------------------------
by egeloen at 2012-12-22T14:54:38Z
I have rebased & squashed commits. The PR is ready to merge. ping @fabpot