{"action":"created","issue":{"url":"https://api.github.com/repos/symfony/symfony/issues/19507","repository_url":"https://api.github.com/repos/symfony/symfony","labels_url":"https://api.github.com/repos/symfony/symfony/issues/19507/labels{/name}","comments_url":"https://api.github.com/repos/symfony/symfony/issues/19507/comments","events_url":"https://api.github.com/repos/symfony/symfony/issues/19507/events","html_url":"https://github.com/symfony/symfony/pull/19507","id":168842214,"number":19507,"title":"[FrameworkBundle] Introduce a cache warmer for Serializer based on PhpArrayAdapter","user":{"login":"tgalopin","id":1651494,"avatar_url":"https://avatars.githubusercontent.com/u/1651494?v=3","gravatar_id":"","url":"https://api.github.com/users/tgalopin","html_url":"https://github.com/tgalopin","followers_url":"https://api.github.com/users/tgalopin/followers","following_url":"https://api.github.com/users/tgalopin/following{/other_user}","gists_url":"https://api.github.com/users/tgalopin/gists{/gist_id}","starred_url":"https://api.github.com/users/tgalopin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tgalopin/subscriptions","organizations_url":"https://api.github.com/users/tgalopin/orgs","repos_url":"https://api.github.com/users/tgalopin/repos","events_url":"https://api.github.com/users/tgalopin/events{/privacy}","received_events_url":"https://api.github.com/users/tgalopin/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/symfony/symfony/labels/Feature","name":"Feature","color":"02e10c"},{"url":"https://api.github.com/repos/symfony/symfony/labels/FrameworkBundle","name":"FrameworkBundle","color":"DDDDDD"},{"url":"https://api.github.com/repos/symfony/symfony/labels/Ready","name":"Ready","color":"009800"},{"url":"https://api.github.com/repos/symfony/symfony/labels/Status:%20Reviewed","name":"Status: Reviewed","color":"bfe5bf"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2016-08-02T09:43:22Z","updated_at":"2016-08-16T18:22:01Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/symfony/symfony/pulls/19507","html_url":"https://github.com/symfony/symfony/pull/19507","diff_url":"https://github.com/symfony/symfony/pull/19507.diff","patch_url":"https://github.com/symfony/symfony/pull/19507.patch"},"body":"| Q             | A\r\n| ------------- | ---\r\n| Branch?       | master\r\n| Bug fix?      | no\r\n| New feature?  | yes\r\n| BC breaks?    | no\r\n| Deprecations? | no\r\n| Tests pass?   | yes\r\n| Fixed tickets | -\r\n| License       | MIT\r\n| Doc PR        | -\r\n\r\nFollowing the cache warmer for annotations (#18533) and for the validator (#19485), this PR introduces a cache warmer for the Serializer YAML and XML metadata configuration (mainly groups).\r\n\r\nBased on the PhpArrayAdapter, it uses the naming conventions (Resources/config/serialization) to find the files and compile them into a single PHP file stored in the cache directory. This file uses shared memory on PHP 7.\r\n\r\nThe benefit of this PR are the same than the ones of the previous PR:\r\n\r\n- serialization metadata cache can be warmed up offline\r\n- on PHP 7, there is no need for user extension to get maximum performances (ie. if you use this PR and the other one, you probably won't need to enable APCu to have great performances)\r\n- on PHP 7 again, we are not sensitive to APCu memory fragmentation\r\nlast but not least, global performance is slightly better (I get 30us per class gain in Blackfire)\r\n\r\nAs previous work on the Serializer cache system introduced issues (see https://github.com/symfony/symfony/commit/96e418a14fd8dc83d5b8bfa0e5a6181544b49666), it would be interesting to pay careful attention to the backward compatibility during the review (ping @Ener-Getick)."},"comment":{"url":"https://api.github.com/repos/symfony/symfony/issues/comments/240191708","html_url":"https://github.com/symfony/symfony/pull/19507#issuecomment-240191708","issue_url":"https://api.github.com/repos/symfony/symfony/issues/19507","id":240191708,"user":{"login":"tgalopin","id":1651494,"avatar_url":"https://avatars.githubusercontent.com/u/1651494?v=3","gravatar_id":"","url":"https://api.github.com/users/tgalopin","html_url":"https://github.com/tgalopin","followers_url":"https://api.github.com/users/tgalopin/followers","following_url":"https://api.github.com/users/tgalopin/following{/other_user}","gists_url":"https://api.github.com/users/tgalopin/gists{/gist_id}","starred_url":"https://api.github.com/users/tgalopin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tgalopin/subscriptions","organizations_url":"https://api.github.com/users/tgalopin/orgs","repos_url":"https://api.github.com/users/tgalopin/repos","events_url":"https://api.github.com/users/tgalopin/events{/privacy}","received_events_url":"https://api.github.com/users/tgalopin/received_events","type":"User","site_admin":false},"created_at":"2016-08-16T18:22:01Z","updated_at":"2016-08-16T18:22:01Z","body":"I updated this PR to fix the potential BC break."}}
{"actor":{"display_login":"tgalopin"}}