{"action":"created","comment":{"url":"https://api.github.com/repos/symfony/symfony/pulls/comments/204380167","pull_request_review_id":139447606,"id":204380167,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNDM4MDE2Nw==","diff_hunk":"@@ -0,0 +1,39 @@\n+<?php\n+\n+/*\n+ * This file is part of the Symfony package.\n+ *\n+ * (c) Fabien Potencier <fabien@symfony.com>\n+ *\n+ * For the full copyright and license information, please view the LICENSE\n+ * file that was distributed with this source code.\n+ */\n+\n+namespace Symfony\\Component\\Routing\\Generator;\n+\n+/**\n+ * ConfigurableQueryEncodingTypeInterface must be implemented by URL generators\n+ * that can be configured to build query strings by replacing spaces with their\n+ * percent-encoded value (%20) according to RFC3986 or by replacing them with a\n+ * plus sign (+) according to RFC1738.\n+ *\n+ * @author Jonathan Cox <jonathan.cox@fostermade.co>\n+ */\n+interface ConfigurableQueryEncodingTypeInterface","path":"src/Symfony/Component/Routing/Generator/ConfigurableQueryEncodingTypeInterface.php","position":22,"original_position":22,"commit_id":"f1bf4186620a59871565afb468c4b064b0113eed","original_commit_id":"f1bf4186620a59871565afb468c4b064b0113eed","user":{"login":"likeuntomurphy","id":2012253,"node_id":"MDQ6VXNlcjIwMTIyNTM=","avatar_url":"https://avatars2.githubusercontent.com/u/2012253?v=4","gravatar_id":"","url":"https://api.github.com/users/likeuntomurphy","html_url":"https://github.com/likeuntomurphy","followers_url":"https://api.github.com/users/likeuntomurphy/followers","following_url":"https://api.github.com/users/likeuntomurphy/following{/other_user}","gists_url":"https://api.github.com/users/likeuntomurphy/gists{/gist_id}","starred_url":"https://api.github.com/users/likeuntomurphy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/likeuntomurphy/subscriptions","organizations_url":"https://api.github.com/users/likeuntomurphy/orgs","repos_url":"https://api.github.com/users/likeuntomurphy/repos","events_url":"https://api.github.com/users/likeuntomurphy/events{/privacy}","received_events_url":"https://api.github.com/users/likeuntomurphy/received_events","type":"User","site_admin":false},"body":"My understanding was that adding an argument would be a BC break for anyone who may have extended the `UrlGenerator`, so I mirrored the way configurable requirements were implemented. I see that `defaultEncoding` was added in `4.1` (it wasn’t there when I wrote this in December) — so I’ll happily change it if my understanding of the BC implications is wrong.","created_at":"2018-07-23T12:21:38Z","updated_at":"2018-07-23T12:21:38Z","html_url":"https://github.com/symfony/symfony/pull/27969#discussion_r204380167","pull_request_url":"https://api.github.com/repos/symfony/symfony/pulls/27969","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/symfony/symfony/pulls/comments/204380167"},"html":{"href":"https://github.com/symfony/symfony/pull/27969#discussion_r204380167"},"pull_request":{"href":"https://api.github.com/repos/symfony/symfony/pulls/27969"}},"in_reply_to_id":204322982},"pull_request":{"url":"https://api.github.com/repos/symfony/symfony/pulls/27969","id":201675595,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAxNjc1NTk1","html_url":"https://github.com/symfony/symfony/pull/27969","diff_url":"https://github.com/symfony/symfony/pull/27969.diff","patch_url":"https://github.com/symfony/symfony/pull/27969.patch","issue_url":"https://api.github.com/repos/symfony/symfony/issues/27969","number":27969,"state":"open","locked":false,"title":"[Routing][FrameworkBundle] Allow configurable query encoding type in UrlGenerator","user":{"login":"likeuntomurphy","id":2012253,"node_id":"MDQ6VXNlcjIwMTIyNTM=","avatar_url":"https://avatars2.githubusercontent.com/u/2012253?v=4","gravatar_id":"","url":"https://api.github.com/users/likeuntomurphy","html_url":"https://github.com/likeuntomurphy","followers_url":"https://api.github.com/users/likeuntomurphy/followers","following_url":"https://api.github.com/users/likeuntomurphy/following{/other_user}","gists_url":"https://api.github.com/users/likeuntomurphy/gists{/gist_id}","starred_url":"https://api.github.com/users/likeuntomurphy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/likeuntomurphy/subscriptions","organizations_url":"https://api.github.com/users/likeuntomurphy/orgs","repos_url":"https://api.github.com/users/likeuntomurphy/repos","events_url":"https://api.github.com/users/likeuntomurphy/events{/privacy}","received_events_url":"https://api.github.com/users/likeuntomurphy/received_events","type":"User","site_admin":false},"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        | symfony/symfony-docs#10073\r\n\r\nThis PR introduces a change that makes it very easy for developers to use RFC 1738 if they choose.\r\n\r\nI have seen #19625, but I believe there are cases when PHP_QUERY_RFC1738 may be preferred even if the generator is not used in a form context, strictly speaking. One such case is search — it can begin with an actual form, but subsequent facet and pagination links can simply be generated. Pagination and related search links in Google use RFC 1738, as do pagination and “Pro Tip!” recommendation links on GitHub.\r\n\r\nWhile we could simply replace `%20` with `+` after generating facet URLs, it becomes much more complicated to accomplish the same effect in pagination links if you are using a bundle like KnpPaginatorBundle.\r\n\r\nExtending the generator class seems excessive, as it would require copying over 150 lines of code to override the `doGenerate` method just to change one parameter. \r\n","created_at":"2018-07-16T15:31:54Z","updated_at":"2018-07-23T12:21:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"49bdc248ec0cf67dc4519afa5d82f2b787362d40","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":100378,"node_id":"MDU6TGFiZWwxMDAzNzg=","url":"https://api.github.com/repos/symfony/symfony/labels/Feature","name":"Feature","color":"02e10c","default":false},{"id":148416,"node_id":"MDU6TGFiZWwxNDg0MTY=","url":"https://api.github.com/repos/symfony/symfony/labels/FrameworkBundle","name":"FrameworkBundle","color":"DDDDDD","default":false},{"id":111254,"node_id":"MDU6TGFiZWwxMTEyNTQ=","url":"https://api.github.com/repos/symfony/symfony/labels/Routing","name":"Routing","color":"DDDDDD","default":false},{"id":237003792,"node_id":"MDU6TGFiZWwyMzcwMDM3OTI=","url":"https://api.github.com/repos/symfony/symfony/labels/Status:%20Needs%20Review","name":"Status: Needs Review","color":"ededed","default":false}],"milestone":{"url":"https://api.github.com/repos/symfony/symfony/milestones/18","html_url":"https://github.com/symfony/symfony/milestone/18","labels_url":"https://api.github.com/repos/symfony/symfony/milestones/18/labels","id":3234645,"node_id":"MDk6TWlsZXN0b25lMzIzNDY0NQ==","number":18,"title":"next","description":"https://symfony.com/roadmap?version=4.2#checker","creator":{"login":"nicolas-grekas","id":243674,"node_id":"MDQ6VXNlcjI0MzY3NA==","avatar_url":"https://avatars3.githubusercontent.com/u/243674?v=4","gravatar_id":"","url":"https://api.github.com/users/nicolas-grekas","html_url":"https://github.com/nicolas-grekas","followers_url":"https://api.github.com/users/nicolas-grekas/followers","following_url":"https://api.github.com/users/nicolas-grekas/following{/other_user}","gists_url":"https://api.github.com/users/nicolas-grekas/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolas-grekas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolas-grekas/subscriptions","organizations_url":"https://api.github.com/users/nicolas-grekas/orgs","repos_url":"https://api.github.com/users/nicolas-grekas/repos","events_url":"https://api.github.com/users/nicolas-grekas/events{/privacy}","received_events_url":"https://api.github.com/users/nicolas-grekas/received_events","type":"User","site_admin":false},"open_issues":143,"closed_issues":129,"state":"open","created_at":"2018-04-02T12:03:21Z","updated_at":"2018-07-23T10:54:02Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/symfony/symfony/pulls/27969/commits","review_comments_url":"https://api.github.com/repos/symfony/symfony/pulls/27969/comments","review_comment_url":"https://api.github.com/repos/symfony/symfony/pulls/comments{/number}","comments_url":"https://api.github.com/repos/symfony/symfony/issues/27969/comments","statuses_url":"https://api.github.com/repos/symfony/symfony/statuses/f1bf4186620a59871565afb468c4b064b0113eed","head":{"label":"fostermadeco:configurable_query_enc_type","ref":"configurable_query_enc_type","sha":"f1bf4186620a59871565afb468c4b064b0113eed","user":{"login":"fostermadeco","id":20864183,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIwODY0MTgz","avatar_url":"https://avatars2.githubusercontent.com/u/20864183?v=4","gravatar_id":"","url":"https://api.github.com/users/fostermadeco","html_url":"https://github.com/fostermadeco","followers_url":"https://api.github.com/users/fostermadeco/followers","following_url":"https://api.github.com/users/fostermadeco/following{/other_user}","gists_url":"https://api.github.com/users/fostermadeco/gists{/gist_id}","starred_url":"https://api.github.com/users/fostermadeco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fostermadeco/subscriptions","organizations_url":"https://api.github.com/users/fostermadeco/orgs","repos_url":"https://api.github.com/users/fostermadeco/repos","events_url":"https://api.github.com/users/fostermadeco/events{/privacy}","received_events_url":"https://api.github.com/users/fostermadeco/received_events","type":"Organization","site_admin":false},"repo":{"id":114657020,"node_id":"MDEwOlJlcG9zaXRvcnkxMTQ2NTcwMjA=","name":"symfony","full_name":"fostermadeco/symfony","owner":{"login":"fostermadeco","id":20864183,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIwODY0MTgz","avatar_url":"https://avatars2.githubusercontent.com/u/20864183?v=4","gravatar_id":"","url":"https://api.github.com/users/fostermadeco","html_url":"https://github.com/fostermadeco","followers_url":"https://api.github.com/users/fostermadeco/followers","following_url":"https://api.github.com/users/fostermadeco/following{/other_user}","gists_url":"https://api.github.com/users/fostermadeco/gists{/gist_id}","starred_url":"https://api.github.com/users/fostermadeco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fostermadeco/subscriptions","organizations_url":"https://api.github.com/users/fostermadeco/orgs","repos_url":"https://api.github.com/users/fostermadeco/repos","events_url":"https://api.github.com/users/fostermadeco/events{/privacy}","received_events_url":"https://api.github.com/users/fostermadeco/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/fostermadeco/symfony","description":"The Symfony PHP framework","fork":true,"url":"https://api.github.com/repos/fostermadeco/symfony","forks_url":"https://api.github.com/repos/fostermadeco/symfony/forks","keys_url":"https://api.github.com/repos/fostermadeco/symfony/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fostermadeco/symfony/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fostermadeco/symfony/teams","hooks_url":"https://api.github.com/repos/fostermadeco/symfony/hooks","issue_events_url":"https://api.github.com/repos/fostermadeco/symfony/issues/events{/number}","events_url":"https://api.github.com/repos/fostermadeco/symfony/events","assignees_url":"https://api.github.com/repos/fostermadeco/symfony/assignees{/user}","branches_url":"https://api.github.com/repos/fostermadeco/symfony/branches{/branch}","tags_url":"https://api.github.com/repos/fostermadeco/symfony/tags","blobs_url":"https://api.github.com/repos/fostermadeco/symfony/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fostermadeco/symfony/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fostermadeco/symfony/git/refs{/sha}","trees_url":"https://api.github.com/repos/fostermadeco/symfony/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fostermadeco/symfony/statuses/{sha}","languages_url":"https://api.github.com/repos/fostermadeco/symfony/languages","stargazers_url":"https://api.github.com/repos/fostermadeco/symfony/stargazers","contributors_url":"https://api.github.com/repos/fostermadeco/symfony/contributors","subscribers_url":"https://api.github.com/repos/fostermadeco/symfony/subscribers","subscription_url":"https://api.github.com/repos/fostermadeco/symfony/subscription","commits_url":"https://api.github.com/repos/fostermadeco/symfony/commits{/sha}","git_commits_url":"https://api.github.com/repos/fostermadeco/symfony/git/commits{/sha}","comments_url":"https://api.github.com/repos/fostermadeco/symfony/comments{/number}","issue_comment_url":"https://api.github.com/repos/fostermadeco/symfony/issues/comments{/number}","contents_url":"https://api.github.com/repos/fostermadeco/symfony/contents/{+path}","compare_url":"https://api.github.com/repos/fostermadeco/symfony/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fostermadeco/symfony/merges","archive_url":"https://api.github.com/repos/fostermadeco/symfony/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fostermadeco/symfony/downloads","issues_url":"https://api.github.com/repos/fostermadeco/symfony/issues{/number}","pulls_url":"https://api.github.com/repos/fostermadeco/symfony/pulls{/number}","milestones_url":"https://api.github.com/repos/fostermadeco/symfony/milestones{/number}","notifications_url":"https://api.github.com/repos/fostermadeco/symfony/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fostermadeco/symfony/labels{/name}","releases_url":"https://api.github.com/repos/fostermadeco/symfony/releases{/id}","deployments_url":"https://api.github.com/repos/fostermadeco/symfony/deployments","created_at":"2017-12-18T15:29:11Z","updated_at":"2018-07-16T23:44:54Z","pushed_at":"2018-07-21T09:53:19Z","git_url":"git://github.com/fostermadeco/symfony.git","ssh_url":"git@github.com:fostermadeco/symfony.git","clone_url":"https://github.com/fostermadeco/symfony.git","svn_url":"https://github.com/fostermadeco/symfony","homepage":"symfony.com","size":115770,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"symfony:master","ref":"master","sha":"4b92b96796d381b225b6665b15160c4c9b06cf41","user":{"login":"symfony","id":143937,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0MzkzNw==","avatar_url":"https://avatars3.githubusercontent.com/u/143937?v=4","gravatar_id":"","url":"https://api.github.com/users/symfony","html_url":"https://github.com/symfony","followers_url":"https://api.github.com/users/symfony/followers","following_url":"https://api.github.com/users/symfony/following{/other_user}","gists_url":"https://api.github.com/users/symfony/gists{/gist_id}","starred_url":"https://api.github.com/users/symfony/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/symfony/subscriptions","organizations_url":"https://api.github.com/users/symfony/orgs","repos_url":"https://api.github.com/users/symfony/repos","events_url":"https://api.github.com/users/symfony/events{/privacy}","received_events_url":"https://api.github.com/users/symfony/received_events","type":"Organization","site_admin":false},"repo":{"id":458058,"node_id":"MDEwOlJlcG9zaXRvcnk0NTgwNTg=","name":"symfony","full_name":"symfony/symfony","owner":{"login":"symfony","id":143937,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0MzkzNw==","avatar_url":"https://avatars3.githubusercontent.com/u/143937?v=4","gravatar_id":"","url":"https://api.github.com/users/symfony","html_url":"https://github.com/symfony","followers_url":"https://api.github.com/users/symfony/followers","following_url":"https://api.github.com/users/symfony/following{/other_user}","gists_url":"https://api.github.com/users/symfony/gists{/gist_id}","starred_url":"https://api.github.com/users/symfony/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/symfony/subscriptions","organizations_url":"https://api.github.com/users/symfony/orgs","repos_url":"https://api.github.com/users/symfony/repos","events_url":"https://api.github.com/users/symfony/events{/privacy}","received_events_url":"https://api.github.com/users/symfony/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/symfony/symfony","description":"The Symfony PHP framework","fork":false,"url":"https://api.github.com/repos/symfony/symfony","forks_url":"https://api.github.com/repos/symfony/symfony/forks","keys_url":"https://api.github.com/repos/symfony/symfony/keys{/key_id}","collaborators_url":"https://api.github.com/repos/symfony/symfony/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/symfony/symfony/teams","hooks_url":"https://api.github.com/repos/symfony/symfony/hooks","issue_events_url":"https://api.github.com/repos/symfony/symfony/issues/events{/number}","events_url":"https://api.github.com/repos/symfony/symfony/events","assignees_url":"https://api.github.com/repos/symfony/symfony/assignees{/user}","branches_url":"https://api.github.com/repos/symfony/symfony/branches{/branch}","tags_url":"https://api.github.com/repos/symfony/symfony/tags","blobs_url":"https://api.github.com/repos/symfony/symfony/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/symfony/symfony/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/symfony/symfony/git/refs{/sha}","trees_url":"https://api.github.com/repos/symfony/symfony/git/trees{/sha}","statuses_url":"https://api.github.com/repos/symfony/symfony/statuses/{sha}","languages_url":"https://api.github.com/repos/symfony/symfony/languages","stargazers_url":"https://api.github.com/repos/symfony/symfony/stargazers","contributors_url":"https://api.github.com/repos/symfony/symfony/contributors","subscribers_url":"https://api.github.com/repos/symfony/symfony/subscribers","subscription_url":"https://api.github.com/repos/symfony/symfony/subscription","commits_url":"https://api.github.com/repos/symfony/symfony/commits{/sha}","git_commits_url":"https://api.github.com/repos/symfony/symfony/git/commits{/sha}","comments_url":"https://api.github.com/repos/symfony/symfony/comments{/number}","issue_comment_url":"https://api.github.com/repos/symfony/symfony/issues/comments{/number}","contents_url":"https://api.github.com/repos/symfony/symfony/contents/{+path}","compare_url":"https://api.github.com/repos/symfony/symfony/compare/{base}...{head}","merges_url":"https://api.github.com/repos/symfony/symfony/merges","archive_url":"https://api.github.com/repos/symfony/symfony/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/symfony/symfony/downloads","issues_url":"https://api.github.com/repos/symfony/symfony/issues{/number}","pulls_url":"https://api.github.com/repos/symfony/symfony/pulls{/number}","milestones_url":"https://api.github.com/repos/symfony/symfony/milestones{/number}","notifications_url":"https://api.github.com/repos/symfony/symfony/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/symfony/symfony/labels{/name}","releases_url":"https://api.github.com/repos/symfony/symfony/releases{/id}","deployments_url":"https://api.github.com/repos/symfony/symfony/deployments","created_at":"2010-01-04T14:21:21Z","updated_at":"2018-07-23T11:39:28Z","pushed_at":"2018-07-23T11:41:22Z","git_url":"git://github.com/symfony/symfony.git","ssh_url":"git@github.com:symfony/symfony.git","clone_url":"https://github.com/symfony/symfony.git","svn_url":"https://github.com/symfony/symfony","homepage":"https://symfony.com","size":120668,"stargazers_count":18101,"watchers_count":18101,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":6330,"mirror_url":null,"archived":false,"open_issues_count":907,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":6330,"open_issues":907,"watchers":18101,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/symfony/symfony/pulls/27969"},"html":{"href":"https://github.com/symfony/symfony/pull/27969"},"issue":{"href":"https://api.github.com/repos/symfony/symfony/issues/27969"},"comments":{"href":"https://api.github.com/repos/symfony/symfony/issues/27969/comments"},"review_comments":{"href":"https://api.github.com/repos/symfony/symfony/pulls/27969/comments"},"review_comment":{"href":"https://api.github.com/repos/symfony/symfony/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/symfony/symfony/pulls/27969/commits"},"statuses":{"href":"https://api.github.com/repos/symfony/symfony/statuses/f1bf4186620a59871565afb468c4b064b0113eed"}},"author_association":"NONE"}}
{"actor":{"display_login":"likeuntomurphy"}}