Commit Graph

6973 Commits

Author SHA1 Message Date
Jean-François Simon
21291cabe7 improved bytes conversion method 2013-03-23 19:46:38 +01:00
Jean-François Simon
c6f87d0026 [CssSelector] fully rewritted component
Squashed commits:
[CssSelector] removed previous implementation
[CssSelector] rewriting, step 1
[CssSelector] rewriting, step 2
[CssSelector] rewriting, step 3
[CssSelector] rewriting, step 4
[CssSelector] rewriting, step 5
[CssSelector] rewriting, step 6
[CssSelector] fixed shortcuts regex
[CssSelector] tests, step1
[CssSelector] tests, step2
[CssSelector] tests, step3
[CssSelector] tests, step4
[CssSelector] fixed problems based @stof's on feedback
[CssSelector] tests, step5
[CssSelector] tests, step6
[CssSelector] tests, step7
[CssSelector] added my name in composer.json
2013-03-23 19:04:09 +01:00
Gunnar Lium
b5597e8209 [Security] Return 401 when using use_forward for form authentication 2013-03-23 15:10:50 +01:00
Fabien Potencier
a072ae2794 [HttpKernel] fixed tests as addScope() is now called first 2013-03-23 14:37:49 +01:00
Fabien Potencier
c28fe566fc [Security] added missing entry to the CHANGELOG 2013-03-23 14:30:20 +01:00
Fabien Potencier
aa26e663b1 merged branch adrienbrault/security-feature (PR #4776)
This PR was merged into the master branch.

Discussion
----------

[2.2] [Security] Add an option to disable the hasPreviousSession() check in AbstractAuthenticationListener

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: [![Build Status](https://secure.travis-ci.org/adrienbrault/symfony.png?branch=security-feature)](http://travis-ci.org/adrienbrault/symfony)
Fixes the following tickets: #3703
Todo: Add this option to the symfony doc security configuration reference
License of the code: MIT
Documentation PR: N/A

As stated in #3703, all authentication listeners that inherit from AbstractAuthenticationListener, only work when a previous session has been created.
This PR allows to change the default behavior in the security.yml file.

Example:

```yml
security:
    firewalls:
        secured_area:
            pattern:    ^/demo/secured/
            form_login:
                check_path: /demo/secured/login_check
                login_path: /demo/secured/login
                require_previous_session: false # The default value is true
            logout:
                path:   /demo/secured/logout
                target: /demo/
            #anonymous: ~
            #http_basic:
            #    realm: "Secured Demo Area"
```

PS: While removing my old commit, it closed the #4774 PR ...

Commits
-------

0562463 [Security] Add an option to disable the hasPreviousSession() check in AbstractAuthenticationListener
2013-03-23 14:17:47 +01:00
Fabien Potencier
74f96bfebf merged branch fabpot/contagious-services (PR #7007)
This PR was merged into the master branch.

Discussion
----------

[2.3] [WIP] Synchronized services...

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #5300, #6756
| License       | MIT
| Doc PR        | symfony/symfony-docs#2343

Todo:

 - [x] update documentation
 - [x] find a better name than contagious (synchronized)?

refs #6932, refs #5012

This PR is a proof of concept that tries to find a solution for some problems we have with scopes and services depending on scoped services (mostly the request service in Symfony).

Basically, whenever you want to inject the Request into a service, you have two possibilities:

 * put your own service into the request scope (a new service will be created whenever a sub-request is run, and the service is not available outside the request scope);

 * set the request service reference as non-strict (your service is always available but the request you have depends on when the service is created the first time).

This PR addresses this issue by allowing to use the second option but you service still always has the right Request service (see below for a longer explanation on how it works).

There is another issue that this PR fixes: edge cases and weird behaviors. There are several bug reports about some weird behaviors, and most of the time, this is related to the sub-requests. That's because the Request is injected into several Symfony objects without being updated correctly when leaving the request scope. Let me explain that: when a listener for instance needs the Request object, it can listen to the `kernel.request` event and store the request somewhere. So, whenever you enter a sub-request, the listener will get the new one. But when the sub-request ends, the listener has no way to know that it needs to reset the request to the master one. In practice, that's not really an issue, but let me show you an example of this issue in practice:

 * You have a controller that is called with the English locale;
 * The controller (probably via a template) renders a sub-request that uses the French locale;
 *  After the rendering, and from the controller, you try to generate a URL. Which locale the router will use? Yes, the French locale, which is wrong.

To fix these issues, this PR introduces a new notion in the DIC: synchronized services. When a service is marked as synchronized, all method calls involving this service will be called each time this service is set. When in a scope, methods are also called to restore the previous version of the service when the scope leaves.

If you have a look at the router or the locale listener, you will see that there is now a `setRequest` method that will called whenever the request service changes (because the `Container::set()` method is called or because the service is changed by a scope change).

Commits
-------

17269e1 [DependencyInjection] fixed management of scoped services with an invalid behavior set to null
bb83b3e [HttpKernel] added a safeguard for when a fragment is rendered outside the context of a master request
5d7b835 [FrameworkBundle] added some functional tests
ff9d688 fixed Request management for FragmentHandler
1b98ad3 fixed Request management for LocaleListener
a7b2b7e fixed Request management for RequestListener
0892135 [HttpKernel] ensured that the Request is null when outside of the Request scope
2ffcfb9 [FrameworkBundle] made the Request service synchronized
ec1e7ca [DependencyInjection] added a way to automatically update scoped services
2013-03-23 14:07:03 +01:00
Fabien Potencier
17269e137d [DependencyInjection] fixed management of scoped services with an invalid behavior set to null
The optimization for references has been removed as it does not take
scopes into account.
2013-03-23 13:59:30 +01:00
Fabien Potencier
ddd30d0b8e merged branch fabpot/request-scope (PR #7457)
This PR was merged into the master branch.

Discussion
----------

moved the request scope creation to the ContainerAwareHttpKernel class

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | symfony/symfony-docs#2343

While updating the scope documentation, I realized that the request scope was created in the FrameworkBundle while the HttpKernel that manages it was in the HttpKernel component. So, this PR makes things more consistent.

Commits
-------

cec98c1 [DependencyInjection] fixed PHP notice when the scope is not defined
550df5a moved the request scope creation to the ContainerAwareHttpKernel class
2013-03-23 13:54:47 +01:00
Fabien Potencier
26750075b8 merged branch fabpot/deprecated (PR #7227)
This PR was merged into the master branch.

Discussion
----------

[WIP] Removed deprecated stuff

Commits
-------

f2a8908 removed deprecated functionality from RouteCollection
4f4a5d1 [TwigBundle] removed deprecated syntax
45bd413 [FrameworkBundle] removed deprecated options
0bb5d01 [FrameworkBundle] removed deprecated cookie options
b3081e8 [Form] removed deprecated methods and classes
e0385a2 [Validator] removed deprecated methods
65e3b16 [Validator] removed deprecated constraints
4a70ddf [HttpFoundation] removed deprecated session methods
4e7943f [Yaml] removed deprecated support of PHP parsin when parsing YAML files
09a5969 [HttpFoundation] removed deprecated Request::splitHttpAcceptHeader() method
c28f1b0 removed deprected way to declared trusted proxies
5ff6006 removed deprecated stuff in the fragment sub-framework
0a06a7c [Translation] removed deprecated classes
67f6397 [Security] removed deprecated classes
2013-03-23 13:50:05 +01:00
Johannes M. Schmitt
a765375e91 reverts some behavior changes made in c66d1f9de30fd1b6a86cca10dd79d12c9ba9ff25 2013-03-23 13:03:22 +01:00
Tobias Schultze
f2a8908615 removed deprecated functionality from RouteCollection 2013-03-23 12:55:23 +01:00
Fabien Potencier
b3081e85a0 [Form] removed deprecated methods and classes 2013-03-23 11:48:19 +01:00
Fabien Potencier
e0385a2c1c [Validator] removed deprecated methods 2013-03-23 11:48:19 +01:00
Fabien Potencier
65e3b1684b [Validator] removed deprecated constraints 2013-03-23 11:48:18 +01:00
Fabien Potencier
4a70ddff4d [HttpFoundation] removed deprecated session methods 2013-03-23 11:48:18 +01:00
Fabien Potencier
4e7943fad0 [Yaml] removed deprecated support of PHP parsin when parsing YAML files 2013-03-23 11:48:18 +01:00
Fabien Potencier
09a5969b89 [HttpFoundation] removed deprecated Request::splitHttpAcceptHeader() method 2013-03-23 11:48:18 +01:00
Fabien Potencier
c28f1b0926 removed deprected way to declared trusted proxies 2013-03-23 11:48:18 +01:00
Fabien Potencier
5ff6006fa6 removed deprecated stuff in the fragment sub-framework 2013-03-23 11:46:55 +01:00
Fabien Potencier
0a06a7c107 [Translation] removed deprecated classes 2013-03-23 11:46:26 +01:00
Fabien Potencier
67f6397a83 [Security] removed deprecated classes 2013-03-23 11:46:26 +01:00
Fabien Potencier
d35cb9f880 [WebProfiler] added the possibility to override the application name/version in the WDT 2013-03-23 11:43:44 +01:00
Fabien Potencier
cec98c1d7a [DependencyInjection] fixed PHP notice when the scope is not defined 2013-03-23 11:39:42 +01:00
Fabien Potencier
55f0e76495 [HttpFoundation] added missing entry in the CHANGELOG 2013-03-23 11:06:01 +01:00
Bilal Amarni
5bb44f52a0 [HttpFoundation] UploadedFile - moved a security check
Squashed commit of the following:

commit b03b32ecc985c4a4f9dc7df2d3336a4cd75aae30
Merge: fb7004b fc70e13
Author: Bilal Amarni <bilal.amarni@gmail.com>
Date:   Wed Feb 27 11:33:37 2013 +0100

    [HttpFoundation] UploadedFile - moved a security check

commit fc70e138c1d3858775c9efe51268cae6d7ec3f69
Author: Bilal Amarni <bilal.amarni@gmail.com>
Date:   Thu Jan 24 11:07:29 2013 +0100

    explicitly passed UPLOAD_ERR_OK constant in a test

commit dda03a2faab9539ca3a93736dd2bc0ec27feb4e7
Author: Bilal Amarni <bilal.amarni@gmail.com>
Date:   Fri Jan 18 17:24:06 2013 +0100

    [HttpFoundation] UploadedFile - moved a security check from move() to isValid()
2013-03-23 10:56:11 +01:00
Fabien Potencier
550df5a85a moved the request scope creation to the ContainerAwareHttpKernel class 2013-03-23 10:14:37 +01:00
Fabien Potencier
69dbbdda3d added missing entries in CHANGELOGs 2013-03-23 10:10:35 +01:00
Fabien Potencier
f465d2aa6f merged branch marcosQuesada/serializer/denormalize-camelcase (PR #6951)
This PR was merged into the master branch.

Discussion
----------

[2.3] [Serializer] Enabled camelCase format to be used on denormalize method

 Enabled camelCase formater , that way when hydrating from arrays, attributes as attribute_name could be implemented as attributteName parameter, with getAttributeName and setAttributeName, giving different formating option from setAttribute_name  getAttribute_name.

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | no
| License       | MIT
| Doc PR        | no

Commits
-------

fbffdf0 Enabled camelCase format to be used on denormalize method, that way camel_case attribute can be used on object as getCamelCase()
2013-03-23 09:19:40 +01:00
Fabien Potencier
25a5395d9d merged branch lmcnearney/querystring (PR #7028)
This PR was squashed before being merged into the master branch (closes #7028).

Discussion
----------

[2.3] [Routing] Added access to querystring in RequestContext

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

This is related to a Silex change request: https://github.com/fabpot/Silex/pull/623

Commits
-------

4a2b755 [2.3] [Routing] Added access to querystring in RequestContext
2013-03-23 09:12:44 +01:00
Lance McNearney
4a2b75536e [2.3] [Routing] Added access to querystring in RequestContext 2013-03-23 09:12:43 +01:00
Fabien Potencier
77ec799751 Merge branch '2.2'
* 2.2:
  #7106 - fix for ZTS builds
  Added '@@' escaping strategy for YamlFileLoader and YamlDumper
  [Yaml] fixed bugs with folded scalar parsing
  [Form] made DefaultCsrfProvider using session_status() when available
  Added unit tests to Dumper
  Update .travis.yml (closes #7355)
  [HttpFoudantion] fixed Request::getPreferredLanguage()
  Revert "merged branch jfsimon/issue-6928 (PR #7378)"
  Routing issue with installation in a sub-directory ref: https://github.com/symfony/symfony/issues/7129
2013-03-23 09:06:49 +01:00
Fabien Potencier
a045925d2a [ClassLoader] added missing CHANGELOG entry for previous merge 2013-03-23 09:02:48 +01:00
Fabien Potencier
86d76195fb merged branch Smart-Core/master (PR #7076)
This PR was merged into the master branch.

Discussion
----------

[2.3] Add missing WinCacheClassLoader

Commits
-------

af86e5b Add missing WinCacheClassLoader
2013-03-23 09:00:58 +01:00
Fabien Potencier
03fc97d11a Merge branch '2.1' into 2.2
* 2.1:
  #7106 - fix for ZTS builds
  Added '@@' escaping strategy for YamlFileLoader and YamlDumper
  [Yaml] fixed bugs with folded scalar parsing
  [Form] made DefaultCsrfProvider using session_status() when available
  Added unit tests to Dumper
  Update .travis.yml (closes #7355)
  [HttpFoudantion] fixed Request::getPreferredLanguage()
  Revert "merged branch jfsimon/issue-6928 (PR #7378)"
  Routing issue with installation in a sub-directory ref: https://github.com/symfony/symfony/issues/7129

Conflicts:
	.travis.yml
	src/Symfony/Bundle/FrameworkBundle/Routing/Router.php
	src/Symfony/Component/Routing/RouteCollection.php
2013-03-23 08:49:54 +01:00
Fabien Potencier
8ae7d98569 merged branch DHorchler/2.1 (PR #7193)
This PR was merged into the 2.1 branch.

Discussion
----------

Routing issue with installation in a sub-directory

ref: https://github.com/symfony/symfony/issues/7129

Commits
-------

8d9cd42 Routing issue with installation in a sub-directory ref: https://github.com/symfony/symfony/issues/7129
2013-03-23 08:47:35 +01:00
Julien Moulin
11c0fb580d #7106 - fix for ZTS builds 2013-03-23 08:44:01 +01:00
Fabien Potencier
bbf9ec93e9 [Finder] added a CHANGELOG entry for the previous merge 2013-03-23 08:42:25 +01:00
Fabien Potencier
e5be0ded50 merged branch jfsimon/finder-access-denied-exception (PR #7256)
This PR was merged into the master branch.

Discussion
----------

[Finder] Adds AccessDeniedException

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | yes
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #6981

Commits
-------

714ace8 [finder] Introduced AccessDeniedException
2013-03-23 08:39:29 +01:00
Fabien Potencier
2f7a9fde7f updated various CHANGELOG files that were not updated when the PRs were merged 2013-03-23 08:35:36 +01:00
Fabien Potencier
9fba645cb2 [Console] added a note in the CHANGELOG for the previous merge, fixed some CS 2013-03-23 08:15:46 +01:00
Fabien Potencier
062cce0018 merged branch pkruithof/progress-helper-enhancements (PR #7300)
This PR was squashed before being merged into the master branch (closes #7300).

Discussion
----------

[Console] Progress helper enhancements

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | ~
| License       | MIT
| Doc PR        | ~

Two enhancements:

1. The progress bar clears the current line before writing the current progress. This can cause some flickering in the terminal. I've modified the write method to append whitespace to the line to be written, so it matches the previous line's length.
2. Added a `setCurrent` method to set the current progress. Rather than advancing by 1 or more steps, sometimes you want to just set the current state. For example if you are downloading a file, and a callback provides you with the current download status. A workaround for this could be to keep track of the previous event, calculate the difference, and advancing by the diff. But it's easier to just set the current progress.

Sidenotes:
* The [`overwrite`](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Console/Helper/ProgressHelper.php#L387) method copied documentation of the Output's [`write`](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Console/Output/Output.php#L139) method. The difference is, the overwrite method does not handle an array of messages. I've updated the documentation for this.
* The helper uses `strlen` to calculate line lengths. This could cause a problem when using multibyte strings. I'd change it to `mb_strlen`, but I'm not sure if the `mb_string` extension is required by Symfony.

Commits
-------

5ae76f0 [Console] Progress helper enhancements
2013-03-23 08:10:00 +01:00
Peter Kruithof
5ae76f0dbf [Console] Progress helper enhancements 2013-03-23 08:10:00 +01:00
Thomas Ploch
9875c4bcb4 Added '@@' escaping strategy for YamlFileLoader and YamlDumper
Added the possibility to to use '@@' as an escaping strategy for
parameters that should be treated as strings but start with '@'
(i.e. safe mailer passwords).
2013-03-23 07:58:10 +01:00
Erin Millard
bbcdfe25ca [Yaml] fixed bugs with folded scalar parsing 2013-03-23 11:54:33 +10:00
Fabien Potencier
883bf909b1 merged branch hason/di_exceptions (PR #7313)
This PR was merged into the master branch.

Discussion
----------

[DependencyInjection] Added missing support for setting previous exception

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

9b4cd73 [DependencyInjection] Added missing support for setting previous exception
2013-03-22 17:25:48 +01:00
Fabien Potencier
aac8f8fe3d merged branch bamarni/form-default-csrf-provider-session-status (PR #7449)
This PR was merged into the 2.1 branch.

Discussion
----------

[Form] made DefaultCsrfProvider using session_status() when available

| Q             | A
| ------------- | ---
| Bug fix?      | [on PHP 5.4]
| Tests pass?   | [yes]
| License       | MIT

Commits
-------

5afea04 [Form] made DefaultCsrfProvider using session_status() when available
2013-03-22 16:37:06 +01:00
Jean-François Simon
714ace8250 [finder] Introduced AccessDeniedException
This exception is thrown when trying to open a non-readable directory.

Squashed commits:
[Finder] Fixed small errors
[Finder] small changes about AccessDeniedException
[Finder] removed unnecessary comment
[Finder] added access denied exception test
[Finder] Updated AccessDeniedException base class
[Finder] fixed access denied exception test
[Finder] native adapters now throw AccessDeniedException on stderr
2013-03-22 06:21:57 +01:00
Bilal Amarni
5afea04d4a [Form] made DefaultCsrfProvider using session_status() when available 2013-03-21 16:59:06 +01:00
Fabien Potencier
9568768fd9 merged branch fabpot/kernel-flexibility (PR #7437)
This PR was merged into the master branch.

Commits
-------

7c3179a [HttpKernel] moved the Container compilation for more flexibility
757194c [HttpKernel] made the Kernel class more flexible (closes #7396)

Discussion
----------

[HttpKernel] made the Kernel class more flexible (closes #7396)

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #7396
| License       | MIT
| Doc PR        | n/a

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

by jrobeson at 2013-03-20T14:04:53Z

I still (personally) think that the compile() method is still too close to the building of the container. Is there a reasonable way to move the compile() method away from the rest of the logic used to build the container?

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

by elnur at 2013-03-20T14:34:23Z

I like this one. Can't wait to see this merged.

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

by stof at 2013-03-20T14:50:22Z

@jrobeson compiling the container is part of building it (it is the step running the compiler passes)

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

by jrobeson at 2013-03-20T15:32:26Z

i read the code stof .. that is what it does :) . I just thought it'd be easier to modify the container from the kernel of the compile() call was placed after the  buildContainer() call at https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpKernel/Kernel.php#L556

This is something i had to work around when migrating to symfony. It's not a big deal to me anymore, so no worries.

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

by stof at 2013-03-20T15:36:12Z

@jrobeson the container is not fully build until you compile it. Half of the work is done by the compile() call.

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

by fabpot at 2013-03-20T15:38:24Z

I've moved the compile method as it makes things even more flexible.

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

by jrobeson at 2013-03-20T15:41:45Z

@stof : i know .. which is even better reason to move it outside that big method.

@fabpot: thanks!
2013-03-20 18:03:16 +01:00
Eddie Jaoude
992a4401e9 Added unit tests to Dumper 2013-03-20 17:54:45 +01:00
Fabien Potencier
bb83b3ea43 [HttpKernel] added a safeguard for when a fragment is rendered outside the context of a master request 2013-03-20 17:13:45 +01:00
Fabien Potencier
ff9d6883bb fixed Request management for FragmentHandler 2013-03-20 17:13:44 +01:00
Fabien Potencier
1b98ad34ff fixed Request management for LocaleListener 2013-03-20 17:13:40 +01:00
Fabien Potencier
a7b2b7e92b fixed Request management for RequestListener 2013-03-20 16:58:09 +01:00
Fabien Potencier
0892135f45 [HttpKernel] ensured that the Request is null when outside of the Request scope 2013-03-20 16:58:09 +01:00
Fabien Potencier
ec1e7ca6ac [DependencyInjection] added a way to automatically update scoped services
A service can now be marked as synchronized; when set, all method calls
involving this service will be called each time this service is set.
When in a scope, methods are also called to restore the previous version of the
service.
2013-03-20 16:58:08 +01:00
Fabien Potencier
7c3179a364 [HttpKernel] moved the Container compilation for more flexibility 2013-03-20 16:37:56 +01:00
Jean-François Simon
c928ddc77d [HttpFoudantion] fixed Request::getPreferredLanguage() 2013-03-20 15:10:59 +01:00
Fabien Potencier
d699a929e0 Merge branch '2.2'
* 2.2: (70 commits)
  change wrapped exception message to be more usefull
  updated VERSION for 2.0.23
  update CONTRIBUTORS for 2.0.23
  updated CHANGELOG for 2.0.23
  [Form] fixed failing test
  [DomCrawler] added support for query string with slash
  Fixed invalid file path for hiddeninput.exe on Windows.
  fix xsd definition for strict-requirements
  [WebProfilerBundle] Fixed the toolbar styles to apply them in IE8
  [ClassLoader] fixed heredocs handling
  fixed handling of heredocs
  Add a public modifier to an interface method
  removing xdebug extension
  [HttpRequest] fixes Request::getLanguages() bug
  [HttpCache] added a test (cached content should be kept after purging)
  [DoctrineBridge] Fixed non-utf-8 recognition
  [Security] fixed HttpUtils class tests
  replaced new occurences of 'Request::create()' with '::create()'
  changed sub-requests creation to '::create()'
  fixed merge issue
  ...

Conflicts:
	src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php
	src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar.html.twig
	src/Symfony/Component/DomCrawler/Link.php
	src/Symfony/Component/Translation/Translator.php
2013-03-20 15:03:03 +01:00
Fabien Potencier
e24ce2f22f Merge branch '2.1' into 2.2
* 2.1:
  updated VERSION for 2.0.23
  update CONTRIBUTORS for 2.0.23
  updated CHANGELOG for 2.0.23
  [Form] fixed failing test
  [DomCrawler] added support for query string with slash
2013-03-20 14:55:39 +01:00
Fabien Potencier
757194c775 [HttpKernel] made the Kernel class more flexible (closes #7396) 2013-03-20 14:55:07 +01:00
Fabien Potencier
4047bf229f merged branch jfsimon/preg-bytes-conversion (PR #7413)
This PR was merged into the master branch.

Commits
-------

3674c22 changed bytes conversion method

Discussion
----------

Changed bytes conversion method

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes

**The old way:**

```php
switch (strtolower(substr($memory, -1))) {
    case 'g':
        $memory *= 1024;
    case 'm':
        $memory *= 1024;
    case 'k':
        $memory *= 1024;
}
```

**The new way:**

```php
if (preg_match('#^(\d+)([bkmgt])#i', $memory, $match)) {
    $shift = array('b' => 0, 'k' => 10, 'm' => 20, 'g' => 30, 't' => 40);
    $memory = ($match[1] * (1 << $shift[strtolower($match[2])]));
}
```

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

by bendavies at 2013-03-18T16:27:52Z

pretty unreadable, no?

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

by benja-M-1 at 2013-03-18T16:29:25Z

I agree, I would not like to have to debug it.

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

by pborreli at 2013-03-18T16:31:43Z

just for my culture, what does : `1 << $var` ?

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

by bendavies at 2013-03-18T16:33:23Z

@pborreli it's a left shift http://php.net/manual/en/language.operators.bitwise.php

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

by jfsimon at 2013-03-18T16:47:15Z

@bendavies @benja-M-1 it's concise and easily recognised (if you understood it the first time).
FYI I didn't find it myself... pretty clever isn't it?

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

by benja-M-1 at 2013-03-18T16:50:53Z

Clearly too much clever for me :)

And what about moving this code in its own class to avoid the copy/paste?

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

by jfsimon at 2013-03-18T16:52:51Z

@benja-M-1 It would add a dependency to the components using it :(

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

by bendavies at 2013-03-18T16:55:26Z

@jfsimon clever indeed, but not necessarily better!

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

by jfsimon at 2013-03-18T16:57:18Z

@bendavies that's true.

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

by Tobion at 2013-03-18T17:00:56Z

There are other places where it could be used too (e.g. FileValidator).

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

by bendavies at 2013-03-18T17:06:01Z

on the other side of the argument, i *hate* the sneaky fall through on the switch statement.
very confusing the first time you see it!

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

by bendavies at 2013-03-18T17:19:42Z

this method has already made it into symfony here: https://github.com/symfony/symfony/pull/7395

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

by jfsimon at 2013-03-19T08:16:19Z

@Tobion I have some questions about the `FileValidator`:
* Why is th `k` in lower case and the `M` in upper case?
* Why is the size divided by 1000 and not 1024?

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

by Tobion at 2013-03-19T08:30:23Z

I was wondering the same. I guess this config (which is also displayed to users) uses the official metric prefixes (k = kilo, M = mega). So it's not about the computer terms where 1 KB = 1024 byte.

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

by vicb at 2013-03-19T16:03:21Z

kB =1000, kiB=1024.
Imo regexps should be case insensitive and account for the "i".
I am not in favor of the changes in this pr (the current way is also documented on php.net fwiw)
2013-03-20 14:37:17 +01:00
Gordon Franke
d015a0f660 change wrapped exception message to be more usefull 2013-03-20 14:23:26 +01:00
Jean-François Simon
839c78a4b0 Revert "merged branch jfsimon/issue-6928 (PR #7378)"
This reverts commit 70ec4f6c61, reversing
changes made to 3a03f3e346.
2013-03-20 14:19:35 +01:00
Fabien Potencier
47cf973b92 merged branch nikrou/relative-path-with-slash (PR #7434)
This PR was merged into the 2.1 branch.

Commits
-------

e6b7515 [DomCrawler] added support for query string with slash

Discussion
----------

[DomCrawler] added support for query string with slash

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Link\getUri() failed to return correct uri when current query string contains slash
Test pass on branch 2.1 but fails on master
2013-03-20 13:44:25 +01:00
Fabien Potencier
e1cd990a77 [Form] fixed failing test 2013-03-20 12:02:29 +01:00
Nicolas Roudaire
e6b75153e3 [DomCrawler] added support for query string with slash
Link\getUri() failed to return correct uri when current query string contains slash
2013-03-20 09:46:19 +01:00
Fabien Potencier
6c531c132b merged branch kherge/2.2 (PR #7428)
This PR was merged into the 2.2 branch.

Commits
-------

633c051 Fixed invalid file path for hiddeninput.exe on Windows.

Discussion
----------

[2.2] [Console] Fix "The system cannot find the path specified." on Windows for askHiddenResponse().

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | none available
| License       | MIT
| Doc PR        | n/a
2013-03-19 23:06:41 +01:00
Kevin Herrera
633c051409 Fixed invalid file path for hiddeninput.exe on Windows. 2013-03-19 13:48:08 -07:00
Fabien Potencier
b3ca7988cc Merge branch '2.1' into 2.2
* 2.1:
  Add a public modifier to an interface method
  [HttpRequest] fixes Request::getLanguages() bug
  [HttpCache] added a test (cached content should be kept after purging)
  [DoctrineBridge] Fixed non-utf-8 recognition
  [Security] fixed HttpUtils class tests
2013-03-19 21:41:20 +01:00
Fabien Potencier
601da456ba [ClassLoader] fixed heredocs handling
The end of an hereodc must have a newline to avoid PHP syntax errors.
2013-03-19 09:32:26 +01:00
Fabien Potencier
67b5e1cc64 fixed handling of heredocs 2013-03-19 09:20:23 +01:00
Fabien Potencier
46341e171a merged branch bamarni/issue-6830 (PR #7408)
This PR was merged into the 2.1 branch.

Commits
-------

54609b9 [HttpCache] added a test (cached content should be kept after purging)

Discussion
----------

[HttpCache] added a test (cached content should be kept after purging)

closes #6830
2013-03-18 19:53:03 +01:00
Fabien Potencier
84ff273986 merged branch jfsimon/issue-7037 (PR #7395)
This PR was merged into the master branch.

Commits
-------

a011842 [HttpKernel] fixed memory collector
def2ccb Add PHP memory_limit to WDT

Discussion
----------

[HttpKernel] fixed memory collector

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #7037

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

by vicb at 2013-03-15T20:21:55Z

OT, that's great to see many contributions for you @jfsimon, thanks !

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

by jfsimon at 2013-03-18T09:35:54Z

Thanks @vicb, this is so lovely :)
2013-03-18 18:10:19 +01:00
Jean-François Simon
3674c22b31 changed bytes conversion method 2013-03-18 17:08:21 +01:00
Jean-François Simon
a011842982 [HttpKernel] fixed memory collector 2013-03-18 16:18:56 +01:00
Elnur Abdurrakhimov
366bba6919 Add a public modifier to an interface method 2013-03-18 15:34:11 +01:00
Fabien Potencier
1c0f481ec1 merged branch bamarni/patch-1 (PR #7005)
This PR was merged into the master branch.

Commits
-------

ed58e36 [HttpKernel] CLI - don't always display errors

Discussion
----------

[HttpKernel] CLI - don't always display errors

I had closed #6370 by mistake when cleaning up my branches.

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

by sstok at 2013-02-13T15:13:16Z

👍
2013-03-18 15:30:54 +01:00
Fabien Potencier
d55877a7b4 merged branch Tobion/trans-refactor (PR #7058)
This PR was merged into the 2.2 branch.

Commits
-------

0992032 [Translator] fix metadata
3b71000 [Translator] fix typecast in transChoice
88f98c9 [Translator] optimized adding of resources and saving a call to array_unique
e88bf7b [Translator] fix phpdoc of MessageCatalogueInterface::add and ::replace
c97ee8d [Translator] mention that the message id may also be an object that can be cast to string in TranslatorInterface and fix the IdentityTranslator that did not respect this
5a36b2d [Translator] fix MessageCatalogueInterface::getFallbackCatalogue that can return null
d1c34e8 [Translator] coding style

Discussion
----------

[Translator] several fixes and refactorings

Reasoning see individual commits.

BC break: no <del>yes because I added an array typehint to `MessageCatalogueInterface::add` and `::replace` since it's required. I could remove the typhint again so there would be no bc break, but IMO having it is much more explicit and consistent as there are already other array typhints as in the constructor.</del>

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

by Tobion at 2013-02-14T09:36:35Z

@fabpot removed typehint and code movement. Added 2 more commits.

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

by Tobion at 2013-03-04T16:14:37Z

@fabpot ping
2013-03-18 15:27:58 +01:00
Fabien Potencier
ea9883f4be merged branch jfsimon/issue-6592 (PR #7331)
This PR was merged into the master branch.

Commits
-------

57aa3d5 [FrameworkBundle] adds --clean option translation:update command

Discussion
----------

[FrameworkBundle] adds --clean option translation:update command

This PR adds `--clean` option to `translation:update` command.
This options activates unused translation removal.

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #6592
2013-03-18 15:16:29 +01:00
Fabien Potencier
94ca2754ff merged branch jfsimon/issue-7069 (PR #7271)
This PR was merged into the master branch.

Commits
-------

b6a5457 [Validator] Fixed member (getter/property) metadata readers. [Validator] added overridden getter metadata test [Validator] class member reflection build requires object instance [Validator] fixed error [Validation] fixed member metadata reflection cache [Validation] added property metedata test [Validation] fixed class/member metadata mapping [Validation] removed var_dump
9b6cd80 Update src/Symfony/Component/Validator/Mapping/GetterMetadata.php

Discussion
----------

[Validator] Use concrete Class Methods to check validations

This PR just adds a test to #7069.

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | yes
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #7069

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

by vicb at 2013-03-05T18:21:02Z

@jfsimon Do you have a response about my comment in the original PR ?

At least we now have a BC break (ie new is no more called).

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

by jfsimon at 2013-03-05T18:30:43Z

@vicb I didn't saw it. I update the description.

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

by vicb at 2013-03-05T18:34:01Z

np, do you have a reply ?

_BCB = yes should trigger a note in the changelog_

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

by jfsimon at 2013-03-05T18:51:15Z

@vicb a response about the `newReflectionMember` method update?

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

by vicb at 2013-03-05T19:08:54Z

Yep

"Jean-François Simon" <notifications@github.com> wrote:

>@vicb a response about the `newReflectionMember` method update?
>
>---
>Reply to this email directly or view it on GitHub:
>https://github.com/symfony/symfony/pull/7271#issuecomment-14457748

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

by Gladhon at 2013-03-06T08:04:38Z

@vicb
newReflectionMember is a Method that comes from the parent and has no argument "object". So it can only get the reflection Member of the configured class, while we need once (in this special case) need the method of the concrete class.

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

by jfsimon at 2013-03-06T08:29:11Z

@vicb @Gladhon correct me if I'm wrong.

This method is only used to check the member scope. In the case of a getter, this scope is always public (`method_exists` returns true only if method is visible, then is this case public, isn'it?), so the `isPublic`, `isProtected` and `isPrivate` methods can be safely overriden. Am I right?

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

by Gladhon at 2013-03-06T08:43:54Z

Yes i am in agreement with that.

But I just think about to change the getPropertyValue also in PropertyMetadata. Can that make sense in any case ?

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

by vicb at 2013-03-06T08:56:21Z

@jfsimon `method_exists` returns `true` when the method exists, whatever its visibility.

My question is whether it would make sense to change the signature of `newReflectionMember` to accept an objet ?
That would be a BC break but the implementation proposed here is also a BC break (`newReflectionMember` which was called from `getReflectionMember` is no more called with this PR - it could have been overriden by a dev)

Finally `PropertyMetadata` should probably be updated in the same way.

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

by vicb at 2013-03-06T08:57:33Z

_and fyi you can both work on the same PR, ie @Gladhon you can send some changes (a PR) to the repo of @jfsimon_

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

by Gladhon at 2013-03-06T10:22:07Z

Well, i like it how it is now. Cause if we change that, you also need to have a object if calling "isPublic". For me it makes more sence to have only the object parameter if its realy needed.
Where do you see a real benefit if we change the `newReflectionMember` instead ?

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

by jfsimon at 2013-03-07T13:43:43Z

@vicb I think passing object instance to `getReflectionMember` is **required** for consistency.
I just pushed it.
2013-03-18 15:13:05 +01:00
Jean-François Simon
b6a545711a [Validator] Fixed member (getter/property) metadata readers.
[Validator] added overridden getter metadata test
[Validator] class member reflection build requires object instance
[Validator] fixed error
[Validation] fixed member metadata reflection cache
[Validation] added property metedata test
[Validation] fixed class/member metadata mapping
[Validation] removed var_dump
2013-03-18 15:05:03 +01:00
Jean-François Simon
57aa3d51a7 [FrameworkBundle] adds --clean option translation:update command
[FrameworkBundle] moved operation classes to component

[FrameworkBundle] fixed catalogue operation classes

[Translation] renamed catalogue operation classes

[Translation] renamed operation classes
2013-03-18 14:53:00 +01:00
Fabien Potencier
70ec4f6c61 merged branch jfsimon/issue-6928 (PR #7378)
This PR was squashed before being merged into the 2.1 branch (closes #7378).

Commits
-------

17dc2ff [HttpRequest] fixes Request::getLanguages() bug

Discussion
----------

[HttpRequest] fixes Request::getLanguages() bug

This PR adds to suported languages the first segment of all compouds languages codes.
When receiving `Accept-Language: en-us` header, accepted languages will now be `en, en_US`.

This should not be a BC break as most browsers already send the long **and** short versions of language codes... but some dont.

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #6928
2013-03-18 14:41:52 +01:00
Michel Weimerskirch
17dc2ff895 [HttpRequest] fixes Request::getLanguages() bug 2013-03-18 14:41:52 +01:00
Bilal Amarni
54609b9dae [HttpCache] added a test (cached content should be kept after purging) 2013-03-17 14:48:26 +01:00
Lee McDermott
def2ccb6d2 Add PHP memory_limit to WDT 2013-03-15 17:17:12 +01:00
Jean-François Simon
bd38483bf2 [Security] fixed HttpUtils class tests 2013-03-15 16:24:21 +01:00
Jean-François Simon
53cf12b544 replaced new occurences of 'Request::create()' with '::create()' 2013-03-15 13:43:45 +01:00
Fabien Potencier
801a7f887b Merge branch '2.1' into 2.2
* 2.1:
  changed sub-requests creation to '::create()'

Conflicts:
	src/Symfony/Bundle/FrameworkBundle/HttpKernel.php
	src/Symfony/Component/Security/Http/HttpUtils.php
2013-03-15 11:54:52 +01:00
Jean-François Simon
b9c37f2727 changed sub-requests creation to '::create()' 2013-03-15 11:44:42 +01:00
Fabien Potencier
81e27e927d fixed merge issue 2013-03-15 11:26:01 +01:00
Fabien Potencier
0d7593c636 Merge branch '2.1' into 2.2
* 2.1:
  sub-requests are now created with the same class as their parent
  [FrameworkBundle] removed BC break
  [FrameworkBundle] changed temp kernel name in cache:clear
  [DoctrineBridge] Avoids blob values to be logged by doctrine
  [Security] use current request attributes to generate redirect url?
  [Validator] fix showing wrong max file size for upload errors
  [TwigBridge] removed double var initialization (refs #7344)
  [2.1][TwigBridge] Fixes Issue #7342 in TwigBridge
  [FrameworkBundle] fixed cahe:clear command's warmup
  [TwigBridge] now enter/leave scope on Twig_Node_Module
  [TwigBridge] fixed fixed scope & trans_default_domain node visitor
  [TwigBridge] fixed non probant tests & added new one
  [BrowserKit] added ability to ignored malformed set-cookie header
  [Translation] removed wriong 'use'
  [Translation] added xliff loader/dumper with resname support
  [TwigBridge] fixes

Conflicts:
	src/Symfony/Bundle/FrameworkBundle/HttpKernel.php
	src/Symfony/Component/Security/Http/HttpUtils.php
	src/Symfony/Component/Translation/Loader/XliffFileLoader.php
	src/Symfony/Component/Translation/Tests/Loader/XliffFileLoaderTest.php
2013-03-15 11:14:31 +01:00
fzerorubigd
64aca11785 fix validator translation 2013-03-14 21:52:50 +01:00
Jean-François Simon
e51432abaa sub-requests are now created with the same class as their parent 2013-03-14 17:43:08 +01:00
Fabien Potencier
82a78ed545 merged branch BenoitLeveque/assets-install-finder-issue (PR #7341)
This PR was merged into the 2.2 branch.

Commits
-------

602cdee replace INF to PHP_INT_MAX inside Finder component.

Discussion
----------

[2.2][Finder] fix assets:install issue

I have some bundle with assets, and when i do.
```
app/console assets:install --env=prod
```
I don't have any of my file inside web/bundles, only empty first level directory like "css"
bug issue introduced by 7c66dffa6b

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

by fabpot at 2013-03-13T13:34:10Z

Can you base your patch on the 2.1 branch as the bug is also there? Thanks.

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

by BenoitLeveque at 2013-03-13T14:29:55Z

i didn't reproduce this issue on the latest commit (175cdc0fd0) on 2.1 branch

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

by taylorotwell at 2013-03-13T14:35:28Z

Yeah, it appears the Finder component's recursion is basically broken on the 2.2 branch.

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

by BenoitLeveque at 2013-03-14T13:24:52Z

@fabpot i can't reproduce this issue on the 2.1 branch because you already fix it, see 7241be9b64
2013-03-14 14:30:47 +01:00
Fabien Potencier
7966d8f831 merged branch janschoenherr/patch-4 (PR #7365)
This PR was squashed before being merged into the 2.2 branch (closes #7365).

Commits
-------

d9ee869 [HttpKernel] Updated TraceableEventDispatcher.php

Discussion
----------

[HttpKernel] Updated TraceableEventDispatcher.php

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | no
| Fixed tickets |
| License       | MIT
| Doc PR        |

Currently, if no listeners are registered for an dispatched event, the StopwatchEvent "$eventName.'.loading'" is never being stopped.
2013-03-14 12:41:06 +01:00
janschoenherr
d9ee8695dc [HttpKernel] Updated TraceableEventDispatcher.php 2013-03-14 12:41:05 +01:00
Tobias Schultze
d7a74349a9 [Routing] fix url generation for optional parameter having a null value 2013-03-14 10:39:13 +01:00