Commit Graph

3998 Commits

Author SHA1 Message Date
Fabien Potencier
fc444f1a55 fixed support for Twig loaders when they do not extend Twig_ExistsLoaderInterface 2012-12-13 17:11:26 +01:00
Fabien Potencier
f005649315 [WebProfilerBundle] decoupled the bundle from TwigBundle 2012-12-13 16:01:47 +01:00
Fabien Potencier
35d63df044 removed the dependency on the container for exception handling 2012-12-13 15:49:45 +01:00
Fabien Potencier
2f4ac5e3d1 bumped min version of Twig to 1.11.0 2012-12-13 15:33:46 +01:00
Fabien Potencier
75636a00da [WebProfilerBundle] added missing exclusion in phpunit.xml.dist 2012-12-13 11:03:59 +01:00
Fabien Potencier
6eba7abb2c [WebProfilerBundle] fixed composer.json and added missing PHPUnit configuration 2012-12-12 12:39:13 +01:00
Fabien Potencier
e553e65047 moved the Twig CodeExtension from the bundle to the bridge 2012-12-12 12:26:16 +01:00
Fabien Potencier
2578f1ef58 merged branch stloyd/feature/form-labels (PR #6262)
This PR was merged into the master branch.

Commits
-------

d5426f0 [Form] Add tests to prove that label is not rendered when is marked as false
120547c [Form][TwigBridge] Don't set label attributes if is marked as not to be rendered [Form][FrameworkBundle] Add option to disable rendering of label for fields
36e4556 [Form] Option for not displaying a label by setting label to false. [Form] Fixed formatting & translation ..

Discussion
----------

[Form] Added option for not displaying a form-label by setting label to false

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

@fabpot @BenjaminBeck: I was just not sure what to do with "table based" forms, so I left `<td></td>` rendered when there is no label, because I'm not sure that we can hide it easily.

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

by XWB at 2012-12-11T09:30:14Z

👍
2012-12-11 17:55:20 +01:00
Fabien Potencier
fdb11be242 fixed CS 2012-12-11 11:49:22 +01:00
Fabien Potencier
3c010db2cb Merge branch '2.1'
* 2.1:
  fixed CS
  fixed CS
  [Security] fixed path info encoding (closes #6040, closes #5695)
  [HttpFoundation] added some tests for the previous merge and removed dead code (closes #6037)
  Improved Cache-Control header when no-cache is sent
  removed unneeded comment
  Fix to allow null values in labels array
  fix date in changelog
  removed the Travis icon (as this is not stable enough -- many false positive, closes #6186)
  Revert "merged branch gajdaw/finder_splfileinfo_fpassthu (PR #4751)" (closes #6224)
  Fixed a typo
  Fixed: HeaderBag::parseCacheControl() not parsing quoted zero correctly
  [Form] Fix const inside an anonymous function
  [Config] Loader::import must return imported data
  [DoctrineBridge] Fixed caching in DoctrineType when "choices" or "preferred_choices" is passed
  [Form] Fixed the default value of "format" in DateType to DateType::DEFAULT_FORMAT if "widget" is not "single_text"
  [HttpFoundation] fixed a small regression

Conflicts:
	src/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php
2012-12-11 11:41:51 +01:00
Fabien Potencier
f25750e378 merged branch symfony/deprecated (PR #6232)
This PR was squashed before being merged into the master branch (closes #6232).

Commits
-------

7428bf9 [WebProfilerBundle] Some eye candy for deprecated calls

Discussion
----------

[WebProfilerBundle] Some eye candy for deprecated calls

![Ohhh](https://lh4.googleusercontent.com/-T9DKsHWf4YU/UMIRqT0g_II/AAAAAAAAJ84/tRDRP8IMwRM/s840/stack.jpg).

@fabpot is [`|raw`](https://github.com/symfony/symfony/pull/new/deprecated#L0R117) a twig defect ?

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

by Baachi at 2012-12-08T09:12:12Z

Really nice 👍

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

by vicb at 2012-12-11T10:00:24Z

should be ready now
2012-12-11 11:14:29 +01:00
Victor Berchet
7428bf9aa4 [WebProfilerBundle] Some eye candy for deprecated calls 2012-12-11 11:14:29 +01:00
Fabien Potencier
fe194cb03f merged branch hason/tests_2_2 (PR #6202)
This PR was merged into the master branch.

Commits
-------

abe244f [TwigBundle] Fixed tests on windows

Discussion
----------

[TwigBundle] Fixed tests on windows
2012-12-11 09:58:49 +01:00
Fabien Potencier
e3ef9368df [FrameworkBundle] tweaked previous merge 2012-12-11 09:31:58 +01:00
Fabien Potencier
57b8447ae1 merged branch dantleech/twig_loader_pass (PR #6171)
This PR was merged into the master branch.

Commits
-------

f48b22a Added configuration pass that adds Twig Loaders

Discussion
----------

[Twig] [DI Pass] Added configuration pass that adds Twig Loaders

Bug fix: [no]
Feature addition: [yes]
Backwards compatibility break: [no]
Symfony2 tests pass: [yes]
Todo: Documentation?
License of the code: MIT

- Defined new Chain loader service with symfony Filesystem loader added
  by default.
- Added compiler class which picks up any services tagged "twig.loader"
- If there are any instances of "twig.loader" the "twig.loader" alias is
  set to the Twig_Loader_Chain service ID instead of the filesystem
  loader.

I think I still like the explicitness of the other pull request, but I defer to your judgment :) This is certainly much easier for the developer.

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

by dantleech at 2012-12-03T08:31:08Z

Will update the PR later today / tomorrow

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

by dantleech at 2012-12-03T18:19:09Z

ok, updated. I throw a `Symfony\Component\DependencyInjection\Exception\LogicException` if there are no loaders -- not sure if that is the best thing to do, or if that is the best exception.

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

by fabpot at 2012-12-05T15:28:24Z

Looks good to me. Can you add a note in the CHANGELOG about this new possibility and update the documentation accordingly? Thanks.

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

by dantleech at 2012-12-05T17:50:37Z

ok. updated change log and changed both count() comparisons to be strict. @fabpot which documentation should I update? or should I add `cookbook/templating/registering_multiple_loaders.rst`?

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

by stof at 2012-12-05T20:07:37Z

@dantleech at least the DIC tags reference need to be updated to mention the new tag. I'm not sure a dedicated article is needed for it (but @weaverryan will decide if it is worth it)

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

by dantleech at 2012-12-06T17:57:20Z

Made a PR for documentation: https://github.com/symfony/symfony-docs/pull/2005

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

by dantleech at 2012-12-07T16:44:00Z

ok. have updated the correct CHANGELOG and squashed to one commit
2012-12-11 09:30:20 +01:00
Joseph Bielawski
120547c8bc [Form][TwigBridge] Don't set label attributes if is marked as not to be rendered
[Form][FrameworkBundle] Add option to disable rendering of label for fields
2012-12-11 09:29:21 +01:00
Denis Gorbachev
9cf1d142b2 Fixed a typo 2012-12-10 13:42:21 +01:00
dantleech
f48b22a44e Added configuration pass that adds Twig Loaders
- Added compiler class which picks up any services tagged "twig.loader"
- If there is one loader registered we set the alias to this loader
- If there is more than one we set the alias to a chain loader and all
  the loaders to it
- If there is no loaders we throw an Exception
2012-12-07 17:39:55 +01:00
Victor Berchet
459a09fbdf [WebProfilerBundle] "View all" is "View last 10" 2012-12-07 10:03:28 +01:00
Mario A. Alvarez Garcia
cf630690be Fixed copy/paste mistake 2012-12-06 08:14:56 -05:00
Fabien Potencier
9072951fce merged branch leevigraham/failure_path (PR #5860)
This PR was squashed before being merged into the master branch (closes #5860).

Commits
-------

d0057d0 Added failure_path_parameter to mirror target_path_parameter

Discussion
----------

Added failure_path_parameter to mirror target_path_parameter

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
License of the code: MIT

Enable login failure redirect path can be assigned in a form field just like target path.

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

by stof at 2012-10-29T09:40:17Z

Please also open a PR to the doc repo to document this new feature

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

by leevigraham at 2012-10-29T09:56:29Z

@stof @fabpot Done.
2012-12-06 14:11:06 +01:00
Leevi Graham
d0057d0e64 Added failure_path_parameter to mirror target_path_parameter 2012-12-06 14:11:05 +01:00
Fabien Potencier
64b76ba1b4 merged branch vicb/sfcc (PR #6148)
This PR was merged into the master branch.

Commits
-------

7f16c1f [HttpKernel] Add DI extension configs as ressources when possible

Discussion
----------

[HttpKernel] Add DI extension configs as ressources when possible

/cc @rdohms @richardmiller

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

by vicb at 2012-11-30T11:57:48Z

btw @fabpot what about having a base class for `Extension` in the DI ? Would make it easier to re-use it when using standalone components, Di and (the suggested) Config as the greatest part of the class is not HttpKernel specific.

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

by fabpot at 2012-12-06T08:47:28Z

@vicb your suggestion makes sense.

Can you also explain the goal of this PR?

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

by vicb at 2012-12-06T09:01:58Z

The goal of this PR is to avoid having to sfcc when you modify a DI extension configuration. I think @rdohms got trapped.

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

by vicb at 2012-12-06T09:08:08Z

see https://twitter.com/rdohms/status/274059267428978688

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

by stof at 2012-12-06T09:20:54Z

I thought about it several times but never took time to implement it. It is annoying to have to clear the cache when you modify a default value in the Configuration class. So +1
2012-12-06 14:04:11 +01:00
Mario A. Alvarez Garcia
d902e9d839 [FrameworkBundle] Added hostnamePattern to the router:debug command 2012-12-06 06:57:32 -05:00
Martin Hasoň
10e5f3b3df Removed useless branch alias for dev-master in composer.json 2012-12-06 11:00:55 +01:00
Fabien Potencier
aee033699b fixed CS 2012-12-06 09:58:41 +01:00
Fabien Potencier
ee346bbc22 merged branch KingCrunch/feature/static-template-cache (PR #6083)
This PR was squashed before being merged into the master branch (closes #6083).

Commits
-------

6236c18 [FrameworkBundle] Added caching to TemplateController

Discussion
----------

[FrameworkBundle] Added caching to TemplateController

Because the main purpose for the `TemplateController` seems to be to render static pages like "disclaimer" and such, it seems useful to allow caching.

    imprint:
        pattern: /imprint
        defaults:
            _controller: SymfonyFrameworkBundle:Template:template
            template: "::pages/imprint.html.twig"
            maxAge: 86400

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

by pierredup at 2012-11-21T20:24:53Z

IMHO I think the caching should be allowed to be set optionally

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

by KingCrunch at 2012-11-21T20:38:54Z

I wrote it this way, because I assume, that it will cover more use-cases, than the other way round, but you are right, that this will change the current behaviour. Would like to hear other opinions, because I don't think one uses this action for anything else than fully-static content (means: The current behaviour doesn't feel very useful to me).

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

by pierredup at 2012-11-21T20:48:19Z

I totally agree, but I would then suggest keep the caching on by default, but have the option to turn it off if necessary

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

by pierredup at 2012-11-21T20:52:01Z

Actually I think to have caching permanently enabled for static content would probably be the best scenario, but I like to think in terms of flexibility and specific user requirements. It would be great to get some opinions from others on this

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

by KingCrunch at 2012-11-23T21:12:45Z

I thought about it and I come to the conclusion, that it is probably a not so good idea to enable caching by default, because ... well, it's not possible to disable it again. I guess something like this

    {{ render '@AcmeBundle:ArticleController:latest' with {count: 1} }}

may be not so uncommon as I suggested in the first commit.

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

by fabpot at 2012-12-03T22:18:51Z

Can you make a PR for the docs? (symfony/symfony-docs). Thanks.
2012-12-06 09:57:25 +01:00
Sebastian Krebs
6236c1835c [FrameworkBundle] Added caching to TemplateController 2012-12-06 09:57:24 +01:00
Martin Hasoň
abe244f0c9 [TwigBundle] Fixed tests on windows 2012-12-06 09:55:04 +01:00
Fabien Potencier
e75c7e20ce merged branch colinfrei/deprecatedErrorHandling (PR #6173)
This PR was squashed before being merged into the master branch (closes #6173).

Commits
-------

4878ec0 [HttpKernel] [WebProfilerBundle] Better handling of deprecated methods

Discussion
----------

[HttpKernel] [WebProfilerBundle] Better handling of deprecated methods

Bug fix: no
Feature addition: yes
Backwards compatibility break: yes, if you were expecting E_USER_DEPRECATED or E_DEPRECATED to throw an exception
Symfony2 tests pass: yes
Fixes the following tickets: #6139 partly, I'd go through and add the actual trigger_error() calls in another (or possibly one per component) PR
Todo: call trigger_error()
License of the code: MIT
Documentation PR: -

I added the deprecation count with the Exception icon in the Profiler Toolbar, and changed the color of it to be yellow for deprecations and red for exceptions (was yellow for exceptions).

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

by fabpot at 2012-12-03T09:43:09Z

Adding trigger_error calls should be done in one PR to ease the merging. thanks.
2012-12-06 09:10:08 +01:00
Colin Frei
4878ec08e6 [HttpKernel] [WebProfilerBundle] Better handling of deprecated methods 2012-12-06 09:09:04 +01:00
Fabien Potencier
869be1df6d Merge branch '2.1'
* 2.1:
  [Locale] fixed tests
  [Config] Fixed tests on Windows
  [TwigBundle] Fixed tests
  [Security] Move DigestDataTest.php inside the Security component
  Fixed DefaultValue for session.auto_start in NodeDefinition
  Fix namespace of Validator and BrowserKit Tests

Conflicts:
	src/Symfony/Bundle/TwigBundle/Tests/DependencyInjection/TwigExtensionTest.php
	src/Symfony/Bundle/TwigBundle/Tests/TwigEngineTest.php
2012-12-06 08:52:34 +01:00
Fabien Potencier
889bd2ee62 Merge branch '2.0' into 2.1
* 2.0:
  [Locale] fixed tests
  [Config] Fixed tests on Windows
  [TwigBundle] Fixed tests

Conflicts:
	phpunit.xml.dist
	src/Symfony/Bundle/TwigBundle/Tests/TwigEngineTest.php
	src/Symfony/Component/Locale/Tests/Stub/StubIntlDateFormatterTest.php
	src/Symfony/Component/Locale/Tests/Stub/StubNumberFormatterTest.php
2012-12-06 08:51:00 +01:00
Fabien Potencier
344496f9f7 merged branch Tobion/collection-flat (PR #6120)
This PR was merged into the master branch.

Commits
-------

51223c0 added upgrade instructions
50e6259 adjusted tests
98f3ca8 [Routing] removed tree structure from RouteCollection

Discussion
----------

[Routing] removed tree structure from RouteCollection

BC break: yes (see below)
Deprecations: RouteCollection::getParent(); RouteCollection::getRoot()
tests pass: yes

The reason for this is so quite simple. The RouteCollection has been designed as a tree structure, but it cannot at all be used as one. There is no getter for a sub-collection at all. So you cannot access a sub-collection after you added it to the tree with `addCollection(new RouteCollection())`. In contrast to the form component, e.g. `$form->get('child')->get('grandchild')`.
So you can see the RouteCollection cannot be used as a tree and it should not, as the same can be achieved with a flat array!
Using a flat array removes all the need for recursive traversal and makes the code much faster, much lighter, less memory (big problem in CMS with many routes) and less error-prone.

BC break: there is only a BC break if somebody used the PHP API for defining RouteCollection and also added a Route to a collection after it has been added to another collection.
So
```
$rootCollection = new RouteCollection();
$subCollection = new RouteCollection();
$rootCollection->addCollection($subCollection);
$subCollection->add('foo', new Route('/foo'));
```
must be updated to the following (otherwise the 'foo' Route is not imported to the rootCollection)
```
$rootCollection = new RouteCollection();
$subCollection = new RouteCollection();
$subCollection->add('foo', new Route('/foo'));
$rootCollection->addCollection($subCollection);
```

Also one must call addCollection from the bottom to the top. So the correct sequence is the following (and not the reverse)
```
$childCollection->->addCollection($grandchildCollection);
$rootCollection->addCollection($childCollection);
```

Remeber, this is only needed when using PHP for defining routes and calling methods in a special order. There is no change required when using XML or YAML for definitions. Also, I'm pretty sure that neither the CMF, nor Drupal routing, nor Silex is relying on the tree stuff. So they should also still work.

cc @fabpot @crell @dbu

One more thing: RouteCollection wasn't an appropriate name for a tree anyway as a collection of routes (that it now is) is definitely not a tree.
Yet another point: The XML declaration of routes uses the `<import>` element, which is excatly what the new implementation of addCollection without the need of a tree does. So this is now also more analogous.

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

by Koc at 2012-11-26T17:34:15Z

What benefit of this?

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

by Tobion at 2012-11-26T17:56:53Z

@Koc Why did you not simply wait for the description? ^^

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

by dbu at 2012-11-26T18:33:09Z

i love PR that remove more code than they add whithout removing functionality.

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

by Crell at 2012-11-26T18:49:52Z

There's an issue somewhere in Drupal where we're trying to use addCollection() as a shorthand for iterating over one collection and calling add() on the other for each item.  We can't do that, however, because the subcollections are not flattened properly when reading back and our current dumper can't cope with that.  So this change would not harm Drupal at all, and would mean I don't have fix a bug in our dumper. :-)  I cannot speak for any other projects, of course.

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

by Tobion at 2012-11-27T19:06:34Z

Ok, this is ready.
2012-12-05 16:37:03 +01:00
Martin Hasoň
acf1f86611 [TwigBundle] Fixed tests 2012-12-04 14:39:39 +01:00
Fran Moreno
2ed30e702f Fixed DefaultValue for session.auto_start in NodeDefinition
This is just for consistency with the node type (Boolean)
2012-12-03 23:02:45 +01:00
Fabien Potencier
a6e08b18de Merge branch '2.0' into 2.1
* 2.0:
  [TwigBundle] Moved the registration of the app global to the environment
  needs to use simpleContent in xsd to allow empty elements
  bumped Symfony version to 2.0.19-DEV
  removed wrong routing xsd statement `mixed="true"`
  removed unused attribute from routing.xsd
  updated VERSION for 2.0.19
  update CONTRIBUTORS for 2.0.19
  updated CHANGELOG for 2.0.19

Conflicts:
	CONTRIBUTORS.md
	src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml
	src/Symfony/Bundle/TwigBundle/TwigEngine.php
	src/Symfony/Component/HttpKernel/Kernel.php
2012-12-03 14:28:41 +01:00
Christophe Coevoet
ae3d531737 [TwigBundle] Moved the registration of the app global to the environment
This makes the app global variable available also when accessing the Twig
environment directly instead of using the TwigEngine.

Conflicts:
	src/Symfony/Bridge/Twig/CHANGELOG.md
	src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml
	src/Symfony/Bundle/TwigBundle/TwigEngine.php
2012-12-03 14:25:44 +01:00
Victor Berchet
7f16c1f5bc [HttpKernel] Add DI extension configs as ressources when possible 2012-11-29 14:58:56 +01:00
Fabien Potencier
18495e7b3c Merge branch '2.1'
* 2.1: (29 commits)
  [DependencyInjection] fixed composer.json
  [Validator] Fix typos in validators.ru.xlf
  Edited some minor grammar and style errors in russian validation file
  Updated Bulgarian translation
  [Form] improve error message with a "hasser" hint for PropertyAccessDeniedException
  [Form] Updated checks for the ICU version from 4.5+ to 4.7+ due to test failures with ICU 4.6
  [Form] simplified a test from previous merge
  Update src/Symfony/Component/Form/Extension/Core/Type/FileType.php
  fixed CS
  Xliff with other node than source or target are ignored
  small fix of #5984 when the container param is not set
  Filesystem Component mirror symlinked directory fix
  [Process][Tests] fixed chainedCommandsOutput tests
  fixed CS
  Use better default ports in urlRedirectAction
  Add tests for urlRedirectAction
  info about session namespace
  fix upgrade info about locale
  Update src/Symfony/Component/DomCrawler/Tests/FormTest.php
  Update src/Symfony/Component/DomCrawler/Form.php
  ...
2012-11-29 11:32:45 +01:00
Fabien Potencier
922c2015f6 Merge branch '2.0' into 2.1
* 2.0:
  [DependencyInjection] fixed composer.json
  [Form] Updated checks for the ICU version from 4.5+ to 4.7+ due to test failures with ICU 4.6
  fixed CS
  small fix of #5984 when the container param is not set
  fixed CS
  Use better default ports in urlRedirectAction
  Add tests for urlRedirectAction
  Update src/Symfony/Component/DomCrawler/Tests/FormTest.php
  Update src/Symfony/Component/DomCrawler/Form.php
  [Security] remove escape charters from username provided by Digest DigestAuthenticationListener
  [Security] added test extra for digest authentication
  fixed CS
  [Security] Fixed digest authentication
  [Security] Fixed digest authentication
  [SecurityBundle] Convert Http method to uppercase in the config
  Use Norm Data instead of Data

Conflicts:
	src/Symfony/Bridge/Doctrine/Form/EventListener/MergeCollectionListener.php
	src/Symfony/Bundle/FrameworkBundle/Controller/RedirectController.php
	src/Symfony/Component/DependencyInjection/composer.json
2012-11-29 11:32:18 +01:00
Fabien Potencier
7fce02c818 merged branch nomack84/issue6135 (PR #6136)
This PR was merged into the master branch.

Commits
-------

c8e65a2 [FrameworkBundle][Routing] Resolve placeholders in hostnamePattern rules

Discussion
----------

[FrameworkBundle][Routing] Resolve placeholders in hostnamePattern rules

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #6135
License of the code: MIT

Currently the placeholders in the `hostname_pattern` rule are not resolved, so that's why this PR is it for.

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

by nomack84 at 2012-11-28T14:18:02Z

@fabpot Could you please merge this? I really need this fix to be solve.
Thanks!
2012-11-28 17:24:04 +01:00
Mario A. Alvarez Garcia
c8e65a28e9 [FrameworkBundle][Routing] Resolve placeholders in hostnamePattern rules 2012-11-27 17:22:45 -05:00
marc.weistroff
431d593d59 [TwigBundle] Renames twig.loader to twig.loader.filesystem.
In the previous form of twig's service definitions, it was impossible to
use a chain loader correctly because the TwigBundle was registering paths
on the twig.loader service. This patch fixes that by creating a
twig.loader.filesystem definition and an alias twig.loader that points
to twig.loader.filesystem by default.
2012-11-27 14:37:15 -05:00
Tobias Schultze
98f3ca8395 [Routing] removed tree structure from RouteCollection 2012-11-26 18:28:37 +01:00
Fabien Potencier
c20efc7c78 fixed CS 2012-11-24 12:10:50 +01:00
Tobias Schultze
29bfa13ff0 small fix of #5984 when the container param is not set
this can happen when the config for the router is unset, but this method
does not need to depend on routing. reading an unset config would raise an exception.
2012-11-21 15:35:19 +01:00
Fabien Potencier
85be887e59 fixed CS 2012-11-19 21:00:36 +01:00
Fabien Potencier
ebd5e9286c merged branch flojon/patch-3 (PR #5984)
This PR was merged into the 2.0 branch.

Commits
-------

64b54dc Use better default ports in urlRedirectAction
64216f2 Add tests for urlRedirectAction

Discussion
----------

Default to current port in urlRedirectAction

I was a bit surprised when I used urlRedirectAction from a non-standard port (8000) it redirected me to port 80. I would argue that the default should be to use the current port instead. This is a simple patch to change that. This should only break in the case someone is relying on the current default to redirect from a non-standard port to the standard port, which should be a really rare case...

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

by Tobion at 2012-11-11T20:29:54Z

The idea is right but the implementation not. Seems this patch is not as "simple" as you said.
When you're on HTTPS and want to redirect to $scheme = HTTP, then it still uses the current HTTPS port which is wrong.

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

by flojon at 2012-11-11T20:36:47Z

Ah, I see the problem. So I guess the correct behavior would be to use the current port if staying with the same scheme or go to standard port if switching scheme. Unless the user has specified a port which will always override...

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

by Tobion at 2012-11-11T20:42:18Z

That would be the best solution that is currently possible but not the best solution that should be possible.
Because if you switch scheme but the other scheme does not use the standard port, it still doesn't work.
Ideally the Request class had an option that allows to define the ports symfony should use for HTTP and HTTPS.
This logic is in RequestContext, but it's not used here.

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

by flojon at 2012-11-11T21:32:55Z

Bummer, I forgot to check if the current port is a standard port...

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

by Tobion at 2012-11-11T21:35:13Z

add some tests

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

by flojon at 2012-11-11T23:28:18Z

Added tests and fixed my previous error

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

by flojon at 2012-11-15T18:25:12Z

@Tobion is there anything else I needed for this?

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

by fabpot at 2012-11-19T12:56:04Z

To be consistent with how we manage HTTP ports elsewhere, I'd rather use the values of the `request_listener.http_port` and `request_listener.https_port`:

```php
        if (null === $httpPort) {
            $httpPort = $this->container->getParameter('request_listener.http_port');
        }

        if (null === $httpsPort) {
            $httpsPort = $this->container->getParameter('request_listener.https_port');
        }
```

This is done in the `security.authentication.retry_entry_point` service and for the `router_listener` listener.

The parameter name is probably not the best one, but that could be changed then in master.

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

by flojon at 2012-11-19T13:49:18Z

@fabpot But then you would need to set that parameter manually right? It wouldn't automatically redirect you to the same port, which was what I wanted to achieve...

Could this be the right order of preference:
If a value was specified in the route use that.
Otherwise use the current port
unless switching scheme then use the parameter value

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

by fabpot at 2012-11-19T13:52:17Z

Your order of preference looks good to me.

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

by flojon at 2012-11-19T19:13:19Z

Man this was more involved than I thought... :)
Changed the logic to use the parameters when not using the current port. Also tried clean up the tests a little bit... Enjoy!
2012-11-19 20:59:22 +01:00
Jonas Flodén
64b54dc587 Use better default ports in urlRedirectAction 2012-11-19 20:08:12 +01:00