Commit Graph

130 Commits

Author SHA1 Message Date
bronze1man
addd560b0d fix some file mode bug 755->644 2013-08-06 10:31:28 +08:00
Fabien Potencier
7d581471ce removed dead code and fixed CS 2013-07-28 20:26:16 +02:00
Jean-François Simon
2dc1ee04b4 [HtppKernel] fixed inline fragment renderer 2013-07-10 16:02:46 +02:00
Fabien Potencier
2d61ebf26b merged branch lsmith77/fix_include_default_text (PR #8445)
This PR was merged into the 2.2 branch.

Discussion
----------

Fix include default text

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: [![Build Status](https://travis-ci.org/lsmith77/symfony.png?branch=fix_include_default_text)](https://travis-ci.org/lsmith77/symfony)
Fixes the following tickets: -
License of the code: MIT

Commits
-------

9d1004b fix handling of a default 'template' as a string
2013-07-08 16:43:11 +02:00
Lukas Kahwe Smith
9d1004b59e fix handling of a default 'template' as a string 2013-07-08 15:32:00 +02:00
Fabien Potencier
82dbaee06d [HttpKernel] fixed the inline renderer when passing objects as attributes (closes #7124) 2013-07-08 11:12:10 +02:00
Toni Uebernickel
afad9c7894 instantiate valid commands only 2013-06-04 12:08:18 +02:00
Fabien Potencier
1ead34ff8c Merge branch '2.1' into 2.2
* 2.1:
  Fix several instances of doubled words
  [Finder] Fix iteration fails with non-rewindable streams
  [Finder] Fix unexpected duplicate sub path related AppendIterator issue
  Added type of return value in VoterInterface.
  Fixed two bugs in HttpCache

Conflicts:
	src/Symfony/Component/Finder/Tests/FinderTest.php
2013-05-27 16:47:40 +02:00
Jason Desrosiers
532160026f Fixed two bugs in HttpCache
1. 304 responses always send "Content-Type: text/html; charset=UTF-8"
header
I discovered that the HttpCache::handle method calls Response::prepare
after calling Response::isModified.  Response::isModified removes the
Content-Type header as it should, but Response::handle adds in the
default Content-Type header when none is set.  If the default
Content-Type is not the correct Content-Type, then the Content-Type in
the cache gets clobered.  I solved this problem by moving the
Response::isModified call after the Response::prepare call.  I updated
the testRespondsWith304WhenIfModifiedSinceMatchesLastModified and
testRespondsWith304WhenIfNoneMatchMatchesETag tests to verify that the
Content-Type header was not being sent for 304 responses.

2. Failure to invalidate cached entities referred to by the Location
header
I discovered that the Store::invalidate method was looking for Location
and Content-Location headers to invalidate, but it was looking in the
request headers instead of the response headers.  Because the
Store::invalidate method doesn't take a response, I decided it was
better to move this logic to the HttpCache::invalidate method instead.
I updated the testInvalidatesCachedResponsesOnPost test to verify that
Location headers are getting invalidated correctly.
2013-05-21 00:25:38 +02:00
Fabien Potencier
a00abf6cda fixed CS 2013-05-10 18:49:00 +02:00
Fabien Potencier
66433c5626 Merge branch '2.1' into 2.2
* 2.1:
  bumped Symfony version to 2.1.11-DEV
  updated VERSION for 2.1.10
  update CONTRIBUTORS for 2.1.10
  updated CHANGELOG for 2.1.10
  fixed CS
  [Process] Cleanup tests & prevent assertion that kills randomly Travis-CI
  [Filesystem] Fix regression introduced in 10dea948

Conflicts:
	src/Symfony/Component/Form/Extension/Core/DataTransformer/DataTransformerChain.php
	src/Symfony/Component/HttpKernel/Kernel.php
	src/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
	src/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php
2013-05-06 22:02:13 +02:00
Fabien Potencier
9f522de0d5 fixed CS 2013-05-06 12:48:41 +02:00
Fabien Potencier
9f02b05997 Merge branch '2.1' into 2.2
* 2.1:
  remove validation related headers when needed
  use while loop for iterating
  [Filesystem] copy() is not working when open_basedir is set

Conflicts:
	src/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php
2013-05-01 09:15:36 +02:00
Bilal Amarni
2b554d77fa remove validation related headers when needed 2013-05-01 06:14:15 +02:00
Henrik Bjørnskov
fbe039bfca use while loop for iterating
The other method limits the number of results without taking the
constraints into account.

Fixes GH-7883
2013-05-01 05:56:28 +02:00
Fabien Potencier
ce7bcddba1 merged branch mweimerskirch/patch-13 (PR #7253)
This PR was squashed before being merged into the 2.2 branch (closes #7253).

Discussion
----------

[2.2] Pass ESI header to subrequests

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

Commits
-------

af819a7 [2.2] Pass ESI header to subrequests
2013-04-20 15:53:43 +02:00
Michel Weimerskirch
af819a7145 [2.2] Pass ESI header to subrequests 2013-04-20 15:53:42 +02:00
Uwe Jäger
da156d3f94 fix overwriting of request's locale if attribute _locale is missing 2013-04-16 21:35:51 +02:00
Fabien Potencier
2965a52d20 Merge branch '2.1' into 2.2
* 2.1:
  [HttpKernel] tweaked previous merge
  #7531: [HttpKernel][Config] FileLocator adds NULL as global resource path
  Fix autocompletion of command names when namespaces conflict
  Fix timeout in Process::stop method
  fixed CS
  Round stream_select fifth argument up.
  Fix Process timeout

Conflicts:
	src/Symfony/Component/Process/Process.php
	src/Symfony/Component/Process/ProcessBuilder.php
2013-04-07 22:19:55 +02:00
Fabien Potencier
12b7073607 [HttpKernel] tweaked previous merge 2013-04-07 17:51:54 +02:00
Roland Franssen
a3826ab4f4 #7531: [HttpKernel][Config] FileLocator adds NULL as global resource path 2013-04-07 17:48:35 +02:00
Uwe Jäger
e8cae94758 fix overwriting of request's locale if attribute _locale is missing 2013-03-28 23:37:30 +01: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
Bilal Amarni
54609b9dae [HttpCache] added a test (cached content should be kept after purging) 2013-03-17 14:48:26 +01:00
Abdellatif Ait boudad
4f3771db91 [2.2][HttpKernel] fixed wrong option name in FragmentHandler::fixOptions 2013-03-11 18:23:12 +01:00
Fabien Potencier
2850fca233 Merge branch '2.1' into 2.2
* 2.1:
  [FrameworkBundle] Fixes invalid serialized objects in cache
  remove dead code in yaml component
  fixed typo
  RedisProfilerStorage wrong db-number/index-number selected
  [DependencyInjection] added a test for the previous merge (refs #7261)
  Unset loading[$id] in ContainerBuilder on exception
  [Console] fixed StringInput binding
  [Console] added string input test
  Revert "merged branch jfsimon/issue-6749 (PR #7220)"
  fixed CS

Conflicts:
	src/Symfony/Component/Console/Tests/Input/StringInputTest.php
	src/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
2013-03-06 18:38:49 +01:00
René Kerner
c82c754b8e RedisProfilerStorage wrong db-number/index-number selected 2013-03-06 17:50:58 +01:00
Fabien Potencier
2705791d6d merged branch Tobion/fragment-render-escaping (PR #7090)
This PR was merged into the 2.2 branch.

Commits
-------

54d7d25 [HttpKernel] hinclude fragment renderer must escape URIs properly to return valid html

Discussion
----------

[HttpKernel] hinclude fragment renderer must escape URIs properly to return valid html

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

Since rendering of hinclude fragments returns html/xml, it is marked as safe. So it's not auto-escaped of course. But that means it must properly escape it's input (the URI) when outputting in html context.
Btw, this does not need to be done for esi because esi tags are processed in middleware which do not go to the client/browser.

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

by Koc at 2013-02-15T22:59:05Z

Will it works correct when `arg_separator.output="&"`?

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

by stof at 2013-02-15T23:04:01Z

if your url comes form the routing, yes. It [does not rely on the default separator](https://github.com/symfony/Routing/blob/master/Generator/UrlGenerator.php#L265) to avoid issues when the separator is configured to ``&`` as it would have been escaped again in Twig templates for instance.

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

by fabpot at 2013-02-16T07:26:19Z

Can you include the proper PR header in the description? Thanks.

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

by Tobion at 2013-02-16T12:28:18Z

Added.
2013-02-20 23:12:30 +01:00
Fabien Potencier
0de369ae38 Merge branch '2.1' into 2.2
* 2.1:
  [FrameworkBundle] tweaked reference dumper command (see #7093)
  [HttpKernel] added some tests for previous merge
  Fix REMOTE_ADDR for cached subrequests
  [Process] Warn user with a useful message when tmpfile() failed

Conflicts:
	src/Symfony/Bundle/FrameworkBundle/Command/ConfigDumpReferenceCommand.php
2013-02-17 14:00:38 +01:00
Fabien Potencier
98d57500f2 [HttpKernel] added some tests for previous merge 2013-02-17 12:42:57 +01:00
Tobias Schultze
54d7d258c1 [HttpKernel] hinclude fragment renderer must escape URIs properly to return valid html 2013-02-15 22:21:39 +01:00
Fabien Potencier
743612bbbd Merge branch '2.1' into 2.2
* 2.1:
  added support for the X-Forwarded-For header (closes #6982, closes #7000)
  fixed the IP address in HttpCache when calling the backend
  [EventDispatcher] Added assertion.
  [EventDispathcer] Fix removeListener
  [DependencyInjection] Add clone for resources which were introduced in 2.1
  [DependencyInjection] Allow frozen containers to be dumped to graphviz
  Fix 'undefined index' error, when entering scope recursively
  [Security] fixed session creation on login (closes #7011)
  Add dot character `.` to legal mime subtype regular expression
  [HttpFoundation] fixed the creation of sub-requests under some circumstancies (closes #6923, closes #6936)
2013-02-11 12:26:43 +01:00
Fabien Potencier
42d3c4c9ca added support for the X-Forwarded-For header (closes #6982, closes #7000) 2013-02-11 11:50:30 +01:00
Fabien Potencier
6a9c5102b2 fixed the IP address in HttpCache when calling the backend 2013-02-11 11:50:29 +01:00
Fabien Potencier
642c95a631 added Universal* classes in the list of deprecated classes for 3.0 2013-02-08 17:10:00 +01:00
Fabien Potencier
8f8d6cfb15 [HttpKernel] fixed regression when rendering an inline controller and passing some objects (closes #6822) 2013-02-01 17:19:49 +01:00
Fabien Potencier
c72e471c65 renamed some classes and Twig functions to more descriptive names (refs #6871)
HttpContentRenderer has been renamed to FragmentHandler.
The RendererStrategy subnamespace has been renamed to Fragment.
The strategy classes now have Fragment in their names.
ProxyRouterListener has been renamed to FragmentListener
The router_proxy configuration entry has been renamed to fragments.
2013-02-01 15:17:20 +01:00
Fabien Potencier
6a53180aa9 [HttpKernel] added a missing unit test 2013-01-24 07:51:29 +01:00
Fabien Potencier
c0d72d275f [HttpKernel] fixed typo (closes #6859) 2013-01-24 07:50:13 +01:00
Fabien Potencier
e5135f67be [HttpKernel] renamed path to _path to avoid collision 2013-01-23 13:57:53 +01:00
Fabien Potencier
ad82893691 removed the need for a proxy route for rendering strategies 2013-01-23 13:57:52 +01:00
Fabien Potencier
b9f0e17e67 [HttpKernel] made the Request required when using rendering strategies
The previous code allowed to pass null as a Request but that does not
really make sense as rendering a sub-request can only happen from a
master request. This was done to ease testing but that was a mistake.
2013-01-23 13:57:23 +01:00
Fabien Potencier
696900e68f [HttpKernel] fixed failing test 2013-01-21 22:03:00 +01:00
Fabien Potencier
aadefd378d [HttpKernel] refactored the HTTP content renderer to make it easier to extend 2013-01-21 16:17:47 +01:00
Victor Berchet
fb526a4809 [FileProfilerStorage] optimize file reads 2013-01-14 15:59:38 +01:00
Philipp Hoffmann
c1d5f16c87 Update src/Symfony/Component/HttpKernel/Tests/EventListener/RouterProxyListenerTest.php
Just a typo fix
2013-01-13 12:48:31 +01:00
Fabien Potencier
b58e8ce9aa merged branch fabpot/kernel-refactor (PR #6459)
This PR was merged into the master branch.

Commits
-------

76fefe3 updated CHANGELOG and UPGRADE files
f7da1f0 added some unit tests (and fixed some bugs)
f17f586 moved the container aware HTTP kernel to the HttpKernel component
2eea768 moved the deprecation logic calls outside the new HttpContentRenderer class
bd102c5 made the content renderer work even when ESI is disabled or when no templating engine is available (the latter being mostly useful when testing)
a8ea4e4 [FrameworkBundle] deprecated HttpKernel::forward() (it is only used once now and not part of any interface anyway)
1240690 [HttpKernel] made the strategy a regular parameter in HttpContentRenderer::render()
adc067e [FrameworkBundle] made some services private
1f1392d [HttpKernel] simplified and enhanced code managing the hinclude strategy
403bb06 [HttpKernel] added missing phpdoc and tweaked existing ones
892f00f [HttpKernel] added a URL signer mechanism for hincludes
a0c49c3 [TwigBridge] added a render_* function to ease usage of custom rendering strategies
9aaceb1 moved the logic from HttpKernel in FrameworkBundle to the HttpKernel component

Discussion
----------

[WIP] Kernel refactor

Currently, the handling of sub-requests (including ESI and hinclude) is mostly done in FrameworkBundle. It makes these important features harder to implement for people using only HttpKernel (like Drupal and Silex for instance).

This PR moves the code to HttpKernel instead. The code has also been refactored to allow easier integration of other rendering strategies (refs #6108).

The internal route has been re-introduced but it can only be used for trusted IPs (so for the internal rendering which is managed by Symfony itself, or by a trusted reverse proxy like Varnish for ESI handling). For the hinclude strategy, when using a controller, the URL is automatically signed (see #6463).

The usage of a listener instead of a controller to handle internal sub-requests speeds up things quite a lot as it saves one sub-request handling. In Symfony 2.0 and 2.1, the handling of a sub-request actually creates two sub-requests.

Rendering a sub-request from a controller can be done with the following code:

```jinja
{# default strategy #}
{{ render(path("partial")) }}
{{ render(controller("SomeBundle:Controller:partial")) }}

{# ESI strategy #}
{{ render(path("partial"), { strategy: 'esi' }) }}
{{ render(controller("SomeBundle:Controller:partial"), { strategy: 'esi' }) }}

{# hinclude strategy #}
{{ render(path("default1"), { strategy: 'hinclude' }) }}
```

The second commit allows to simplify the calls a little bit thanks to some nice syntactic sugar:

```jinja
{# default strategy #}
{{ render(path("partial")) }}
{{ render(controller("SomeBundle:Controller:partial")) }}

{# ESI strategy #}
{{ render_esi(path("partial")) }}
{{ render_esi(controller("SomeBundle:Controller:partial")) }}

{# hinclude strategy #}
{{ render_hinclude(path("default1")) }}
```

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

by fabpot at 2013-01-03T17:58:49Z

I've just pushed a new version of the code that actually works in my browser (but I've not yet written any unit tests). I've updated the PR description accordingly.

All comments welcome!

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

by Koc at 2013-01-03T20:11:43Z

what about `render(controller="SomeBundle:Controller:partial", strategy="esi")`?

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

by stof at 2013-01-04T09:01:01Z

shouldn't we have interfaces for the UriSigner and the HttpContentRenderer ?

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

by lsmith77 at 2013-01-04T19:28:09Z

btw .. as mentioned in #6213 i think it would make sense to refactor the HttpCache to use a cache layer to allow more flexibility in where to cache the data (including clustering) and better invalidation. as such if you are refactoring HttpKernel .. it might also make sense to explore splitting off HttpCache.

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

by fabpot at 2013-01-04T19:30:07Z

@lsmith77 This is a totally different topic. This PR is just about moving things from FrameworkBundle to HttpKernel to make them more reusable outside of the full-stack framework.

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

by fabpot at 2013-01-05T09:39:52Z

I think this PR is almost ready now. I still need to update the docs and add some unit tests. Any other comments on the whole approach? The class names? The `controller` function thingy? The URI signer mechanism? The proxy protection for the internal controller? The proxy to handle internal routes?

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

by sstok at 2013-01-05T10:08:25Z

Looks good to me 👍

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

by sdboyer at 2013-01-07T18:17:08Z

@Crell asked me to weigh in, since i'm one of the Drupal folks who's likely to work most with this.

i think i've grokked about 60% of the big picture here, and i'm generally happy with what i see. the assumption that the HInclude strategy makes about working with templates probably isn't one that we'll be able to use (and so, would need to write our own), but that's not a big deal since the whole goal here is to make strategies pluggable.

so, yeah. +1.

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

by winzou at 2013-01-09T20:21:44Z

Just for my information: will this PR be merged for 2.2 version? Thanks.

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

by stof at 2013-01-09T20:41:04Z

@winzou according to the blog post announcing the beta 1 release, yes. It is explicitly listed as being one of the reason to make it a beta instead of the first RC.

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

by winzou at 2013-01-09T20:49:36Z

OK thanks, I've totally skipped this blog post.

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

by fabpot at 2013-01-10T15:26:15Z

I've just added a bunch of unit tests and fix some bugs I found while writing the tests.
2013-01-11 08:24:18 +01:00
Fabien Potencier
f7da1f0eb8 added some unit tests (and fixed some bugs) 2013-01-10 16:26:59 +01:00
Fabien Potencier
f17f5867a8 moved the container aware HTTP kernel to the HttpKernel component 2013-01-10 09:21:32 +01:00
Jordi Boggiano
67d7423456 Remove use of deprecated HttpKernel LoggerInterface 2013-01-09 10:52:29 +01:00