Commits
-------
cfddbba Grammar and formatting in upgrade doc
Discussion
----------
Grammar and formatting in upgrade doc
Added logical component headings to changes. Grouped changes by bullets, with indented text and code blocks. Applied consistent formatting to method names and code references. Re-flowed paragraph text to abide an 80-character column.
Commits
-------
a395873 [FrameworkBundle][Session] Add auto_start pass to the storage options
Discussion
----------
[FrameworkBundle][Session] Add auto_start pass to the storage options
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
I think that is bugfix.
In currently value of auto_start in config has no effect, at least when using the session in WebTestCase context.
---------------------------------------------------------------------------
by stof at 2012-02-13T14:59:17Z
The ``auto_start`` setting is not an option passed to the session storage. It is about configuring the SessionListener. So this seems wrong
---------------------------------------------------------------------------
by drak at 2012-02-13T15:02:26Z
That said, the storage does need to know if it should respect autostart - that might be quite independent of anything else. The moment something is output a session will start if `ini_set('auto_start', 1)`.
---------------------------------------------------------------------------
by drak at 2012-02-13T15:05:52Z
I guess in the context of FrameworkBundle you probably want the storage driver auto_start off (php's autostart that is) so that sessions are only explicitly started by the session listener.
---------------------------------------------------------------------------
by dr-fozzy at 2012-02-13T15:22:02Z
Just tested out master branch. With session.auto_start = 0 in php.ini and auto_start: false at framework -> session section of config.yml
Session is <b>started</b>(cookie's are set) anyway...
(PHP 5.3.9, simple blank page)
This bug indirectly affect Varnish caching-proxy, as it's default behaviour to not cache anything if "Cookie" or "Set-Cookie" header is set.
---------------------------------------------------------------------------
by yethee at 2012-02-13T17:55:14Z
@drak, `ini_set('session.auto_start', 1)` will not work because it will be overriden [here](137b0026b7/src/Symfony/Component/HttpFoundation/Session/Storage/AbstractSessionStorage.php (L222)), if the `auto_start` option is not passed in the `$options`. Or have I missed something?
I have trouble with session in functional tests (based on WebTestCase). I put some data, authentication token, into session before send request but lost them when session is [starting](7e4f4dcdf9/src/Symfony/Bundle/FrameworkBundle/EventListener/SessionListener.php (L58))
---------------------------------------------------------------------------
by stof at 2012-02-13T18:04:19Z
@drak seems like your refactored storage now need to be aware of the auto_start setting :)
---------------------------------------------------------------------------
by drak at 2012-02-14T06:40:26Z
> @drak, ini_set('session.auto_start', 1) will not work because it will be overriden here, if the auto_start option is not passed in the $options. Or have I missed something?
This code simply sets a default value of off if there was no explicit setting. I believe this is correct: if not set, then set to off, otherwise, leave as defined. The issue in question is if FrameworkBundle passes the cofiguration on - it should and should have been since 2.0.
@stof The storage drivers do indeed need to be aware of the autostart settings and afaik they are already - whether FrameworkBundle passes this on to the storage driver is a different matter though.
@yethee - are you sure you are using the latest master from symfony/symfony (and not the split trees)? I ask because your second link points to something that's either in the 2.0 branch or well before the new code was merged.
---------------------------------------------------------------------------
by yethee at 2012-02-14T06:56:40Z
Yep, I use latest version of master branch. [Here](https://github.com/symfony/symfony/blob/master/src/Symfony/Bundle/FrameworkBundle/EventListener/SessionListener.php) current version of SessionListener, there is no difference of code to the previous link, now. I specifically has specified the link to the commit, and not a branch.
---------------------------------------------------------------------------
by drak at 2012-02-14T06:58:48Z
Does your PR solve the problem for you? I'm going to write some tests for this also.
---------------------------------------------------------------------------
by yethee at 2012-02-14T07:09:49Z
> This code simply sets a default value of off if there was no explicit setting. I believe this is correct: if not set, then set to off, otherwise, leave as defined. The issue in question is if FrameworkBundle passes the cofiguration on - it should and should have been since 2.0.
How can I pass `auto_start` option in the `setOptions` method? Now this option is not pass, and is always set the default value.
Difference between current implementation and 2.0 that in the previous version of sessions is automatically started when put any data into session. https://github.com/symfony/symfony/blob/2.0/src/Symfony/Component/HttpFoundation/Session.php#L120
---------------------------------------------------------------------------
by yethee at 2012-02-14T07:17:18Z
@drak, yes, it makes the behavior of the session as in 2.0 branch
https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpFoundation/Session/Storage/AbstractSessionStorage.php#L186
---------------------------------------------------------------------------
by drak at 2012-02-14T14:41:29Z
That means it was as I suspected, that the auto_start value in the config was not communicated to the session storage driver in `FrameworkBundle`, which your patch now fixes. @fabpot I guess this is ok for merge now.
Commits
-------
97cbf90 [Propel] Added tests for the PropelDataCollector
d9ce982 [Propel] Added tests for CollectionToArrayTransformer
4878af4 [Propel] Fixed CS
dd5d72a Added Propel to the vendors.php script
Discussion
----------
Propel tests
This PR adds more unit tests on the Propel Bridge. More to come later :)
Added logical component headings to changes. Grouped changes by bullets, with indented text and code blocks. Applied consistent formatting to method names and code references. Re-flowed paragraph text to abide an 80-character column.
Commits
-------
09b348d [HttpFoundation] Forward compatibility tweak to allows direct use of \SessionHandlerInterface
Discussion
----------
[HttpFoundation] Forward compatibility tweak
Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
Commits
-------
7474293 memcache profiler storage support added
Discussion
----------
[HttpKernel] [FrameworkBundle] Memcache(d) Profiler Storage added
Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
There are 2 memcache PHP extensions: Memcache and MemcacheD (with "D" at the end) - both are supported.
How to use Memcache Profiler Storage (Memcache php extension is used):
change (or add if there isn't) "dsn" in framework/profiler section in config_dev.yml
```
...
framework:
...
profiler:
...
dsn: memcache://127.0.0.1/11211
...
```
How to use Memcached Profiler Storage (MemcacheD php extension is used):
change "dsn" in framework/profiler section in config_dev.yml
```
...
framework:
...
profiler:
...
dsn: memcached://127.0.0.1/11211
...
```
Last changes:
- memcached support addedd
- optimized performance (serialization done in extension, index is created with ```append``` function)
- updated to last version of Profiler (find by method, avoid duplications)
- done squash on commits
---------------------------------------------------------------------------
by stloyd at 2011-12-01T23:36:02Z
You need to add check for index name size, AFAIK memcache will fail if key is longer than 250 characters.
Also please do an `squash` for all those commits.
---------------------------------------------------------------------------
by pulzarraider at 2011-12-02T00:15:28Z
@stloyd Thanks. I will add the check for key length.
I am just starting with git. Could you please add some tutorial about squash to a documentation page: http://symfony.com/doc/2.0/contributing/code/patches.html ? It will help me (and maybe some others) to do it correct way.
---------------------------------------------------------------------------
by stof at 2011-12-02T00:19:01Z
http://help.github.com/rebase/
---------------------------------------------------------------------------
by pulzarraider at 2011-12-03T18:56:11Z
Thanks @stof, rebase done.
---------------------------------------------------------------------------
by dlsniper at 2011-12-11T14:00:17Z
Hi,
Would it be possible to either use Memcached instead of Memcache or make it configurable to use either Memcache or Memcached?
I've did a little digging on the benefits of using Memcached over Memcache (like for example: http://stackoverflow.com/questions/1442411/using-memcache-vs-memcached-with-phphttp://devzone.zend.com/1869/zendcon-sessions-episode-040-memcached-the-better-memcache-interface/ ) and maybe this will also help in not having two extensions installed for people who are using Memcached already.
Regards.
---------------------------------------------------------------------------
by pulzarraider at 2011-12-11T16:15:58Z
@dlsniper thanks for great comment. I will add memcached support.
---------------------------------------------------------------------------
by stof at 2011-12-12T20:49:00Z
@pulzarraider what is the status of this PR ? Is it still a WIP ?
---------------------------------------------------------------------------
by pulzarraider at 2011-12-12T22:58:48Z
@stof Yes, it's still WIP. I'm working on a memcached (with D at the end) support. It will be finished in the next few days.
---------------------------------------------------------------------------
by dlsniper at 2011-12-15T12:51:52Z
@pulzarraider if I can help you with the PR let me know.
---------------------------------------------------------------------------
by pulzarraider at 2012-01-08T20:22:24Z
@dlsniper @stof I've finally added memcached support and done some optimizations. Memcache(d) profiler storage is now ready.
---------------------------------------------------------------------------
by dlsniper at 2012-01-08T22:12:29Z
I'm glad you finished this @pulzarraider
Thanks! for your hard work!
+1 for this PR
@stof, @fabpot is it good to go on master?
---------------------------------------------------------------------------
by pulzarraider at 2012-01-28T19:45:56Z
@stof, @fabpot ping
Commits
-------
3dd3d58 [EventListener] Fix an issue with sub-requests
71bf279 cleanup
acdb325 [StopWatch] Provide a cleaner API
acd1287 [Stopwatch] rename the section event to avoid collisions
eb540be [Profiler] Allow profiling the terminate event
4ccdc53 [HttpKernel] Cleanup of PdoProfilerStorage
814876f [HttpKernel] Tweak the code of the ProfilerListener
Discussion
----------
[Profiler] Allow profiling the terminate event
![Travis](https://secure.travis-ci.org/vicb/symfony.png?branch=profiler.terminate)
This PR is mainly about allowing to profile the terminate event (i.e. see it in the timeline panel)
There are some other tweaks.
---------------------------------------------------------------------------
by vicb at 2012-02-02T14:43:20Z
please don't merge for now. good question. bad answer.
---------------------------------------------------------------------------
by vicb at 2012-02-06T15:05:46Z
While first commits were focused on problem solving, the last brings a clean API with the ability to re-open an existing section in order to add events (re-setting event origins and merging them were just hacks).
Should be ready to be merged.
_Edit: Sorry, couldn't resist adding a private helper class again!_
---------------------------------------------------------------------------
by stof at 2012-02-06T18:30:09Z
@vicb you should stop adding such classes defined in the same file. Otherwise we will have to change the CS (and to stop telling we respect the PSR-0 standard)
---------------------------------------------------------------------------
by vicb at 2012-02-06T18:33:36Z
Once again PSR-0 is about autoloading which is exactly why I do not want in such cases. CS are an other matter and yes I think they should be changed to allow this (and I am going to submit a PR right now).
The only argument I could accept is whether this class should be private or not.
---------------------------------------------------------------------------
by vicb at 2012-02-06T19:57:06Z
Thanks for your valuable feedback @stof
---------------------------------------------------------------------------
by fabpot at 2012-02-11T20:53:03Z
Have you tested it on a project? Because it breaks my simple examples (where I have some sub-requests).
---------------------------------------------------------------------------
by vicb at 2012-02-12T09:47:23Z
my bad, should be ok now.
Commits
-------
6e9f886 [WebProfilerBundle] moved variable initialization from condition
Discussion
----------
[WebProfilerBundle] moved variable initialization from condition
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
I got fatal error for the original condition on PHP 5.3.8:
Fatal error: Call to a member function getFlashBag() on a non-object in /home/context/httpd/vendor/symfony/src/Symfony/Bundle/WebProfilerBundle/Controller/ProfilerController.php on line 150
Commits
-------
2c767d1 [HttpFoundation] Fixed closeSession for the Memcached storage
ec44e68 [HttpFoundation] Fixed the use of the prefix for the Memcached storage
5808773 [HttpFoundation] Fixed a typo and updated the phpdoc for the session
0550bef Removed methods duplicated from parent class
Discussion
----------
Session cleanup
This cleans the phpdoc of the refactored session by using inheritdoc in all appropriate places. For the SessionInterface, I added the ``@api`` tag in all methods as the Session class had them.
It also fixes a few typos in the variable names.
I figured a few things:
- the Session class implements some methods that are not part of the SessionInterface. Is it intended or simply a left-over ?
- the MemcachedSessionStorage uses a ``prefix`` property which does not exist. This is clearly a copy-paste from the MemcacheSessionStorage which has it. It also call the ``Memcached#close`` method which does not exist according to PhpStorm. @drak could you check this class ? I don't know Memcached at all.
- as I said on the refactoring PR, the Serializable implementation of the Session class seems totally wrong as the SessionStorage is not serializable.
/cc @drak
---------------------------------------------------------------------------
by drak at 2012-02-12T02:09:38Z
@stof there is a ticket about this, the problem exists from Symfony 2.0 also - refs #3000 PDOSessionStorage
---------------------------------------------------------------------------
by drak at 2012-02-12T02:10:12Z
@stof I will look at the memcache issue and make a quick PR
---------------------------------------------------------------------------
by stof at 2012-02-12T02:11:07Z
@drak the issue could exist with any SessionStorage as your SessionStorageInterface does not enforce making it serializable
---------------------------------------------------------------------------
by stof at 2012-02-12T02:14:15Z
@drak note that this PR already fixes 2 typo in the memcached storage. It seems like some tests are missing for it as they should have been found (they would have raised a notice in the constructor)
---------------------------------------------------------------------------
by drak at 2012-02-12T02:14:50Z
Afaik, only PDO is not serializable@ but the `Serializable` is on the SessionInterface. The problem is with #3000, the serialization is necessary but impossible.
---------------------------------------------------------------------------
by stof at 2012-02-12T02:21:42Z
@drak what about a Mongo storage or things like that ?
---------------------------------------------------------------------------
by drak at 2012-02-12T02:23:58Z
@stof Since you've started this PR would you mind removing `$prefix.` from the `*session()` methods in `MemcachedSessionStorage` - they are not required because Memcached handles prefixes itself. I'll write some tests in another PR for them. I guess I omitted it because at the time I didn't have them on my test env.
---------------------------------------------------------------------------
by drak at 2012-02-12T02:24:35Z
@stof - Let's take the serialization issue to #3000 because it's being discussed there.
---------------------------------------------------------------------------
by stof at 2012-02-12T02:27:27Z
@drak what about the ``close()`` method which does not exist in the Memcached class ?
---------------------------------------------------------------------------
by drak at 2012-02-12T03:58:11Z
The method just needs to `return true;`.
Commits
-------
cde34fd [Form] Throwing an AlreadyBoundException in `add`, `remove`, `setParent`, `bind` and `setData` if called on a bound form
Discussion
----------
[Form] Throwing an AlreadyBoundException in `add`, `remove`, `setParent`, `bind` and `setData` if called on a bound form
Bug fix: yes
Feature addition: no
Backwards compatibility break: **yes**
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
![Travis Build Status](https://secure.travis-ci.org/bschussek/symfony.png?branch=issue3022)
The above mentioned methods now throw an exception because when invoked on a bound form they might cause strange side effects. You should rely on event listeners instead of modifying bound forms.
See also #3022
Commits
-------
88b826d [Propel] Fixed typo, removed useless use statement, used getData() instead of casting a PropelCollection
46d28cd [Propel] Fixed the CollectionToArray transformer
1f20fb1 [Propel] Removed useless code
3910735 [Propel] Avoid to duplicate objects
d69144c [Propel] Refactored the CollectionToArray transformer
1706671 [Propel] Fixed naming to reflect Doctrine bridge
1f277df [Propel] Removed useless ModelToIdTransformer
Discussion
----------
Cleaned the propel bridge (+ fixes)
I've fixed the `ModelChoiceList` with `multiple=true`, and I removed useless code.
This PR will ensure everything works fine, but it requires the following fix for Propel: https://github.com/propelorm/Propel/pull/286.
---------------------------------------------------------------------------
by willdurand at 2012-02-11T20:04:10Z
@cedriclombardot this PR will fix your issues with Sf2 + Propel in your admingen
@bschussek nevermind my comments on Twitter, it seems ok now