{"action":"created","issue":{"url":"https://api.github.com/repos/ruflin/Elastica/issues/842","labels_url":"https://api.github.com/repos/ruflin/Elastica/issues/842/labels{/name}","comments_url":"https://api.github.com/repos/ruflin/Elastica/issues/842/comments","events_url":"https://api.github.com/repos/ruflin/Elastica/issues/842/events","html_url":"https://github.com/ruflin/Elastica/pull/842","id":76446408,"number":842,"title":"added Scroll Iterator","user":{"login":"webdevsHub","id":1021820,"avatar_url":"https://avatars.githubusercontent.com/u/1021820?v=3","gravatar_id":"","url":"https://api.github.com/users/webdevsHub","html_url":"https://github.com/webdevsHub","followers_url":"https://api.github.com/users/webdevsHub/followers","following_url":"https://api.github.com/users/webdevsHub/following{/other_user}","gists_url":"https://api.github.com/users/webdevsHub/gists{/gist_id}","starred_url":"https://api.github.com/users/webdevsHub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/webdevsHub/subscriptions","organizations_url":"https://api.github.com/users/webdevsHub/orgs","repos_url":"https://api.github.com/users/webdevsHub/repos","events_url":"https://api.github.com/users/webdevsHub/events{/privacy}","received_events_url":"https://api.github.com/users/webdevsHub/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":16,"created_at":"2015-05-14T18:25:43Z","updated_at":"2015-05-20T11:54:32Z","closed_at":"2015-05-20T09:51:50Z","pull_request":{"url":"https://api.github.com/repos/ruflin/Elastica/pulls/842","html_url":"https://github.com/ruflin/Elastica/pull/842","diff_url":"https://github.com/ruflin/Elastica/pull/842.diff","patch_url":"https://github.com/ruflin/Elastica/pull/842.patch"},"body":"Implementation of `Scroll` Iterator requested by @hasumedic in https://github.com/ruflin/Elastica/issues/827\r\n\r\nThe `Scroll` Iterator executes every request fully isolated. That means search options manipulated during iterations are changed and reverted automatically.\r\n\r\n```php\r\n$search->setOption(Search::OPTION_SEARCH_TYPE, Search::OPTION_SEARCH_TYPE_COUNT);\r\n\r\n$path = $search->getPath();\r\nforeach ($search->scroll() as $scrollId => $resultSet) {\r\n    $search->getPath() === $path; // returns true\r\n}\r\n$search->getPath() === $path; // returns true\r\n```\r\n\r\nIn addition I changed the `ScanAndScroll` Iterator to a child class of `Scroll` in order to profit from that isolation.\r\n\r\nFinally I added a `Search::scroll()` function just like `Search::scanAndScroll()`"},"comment":{"url":"https://api.github.com/repos/ruflin/Elastica/issues/comments/103857420","html_url":"https://github.com/ruflin/Elastica/pull/842#issuecomment-103857420","issue_url":"https://api.github.com/repos/ruflin/Elastica/issues/842","id":103857420,"user":{"login":"ruflin","id":244900,"avatar_url":"https://avatars.githubusercontent.com/u/244900?v=3","gravatar_id":"","url":"https://api.github.com/users/ruflin","html_url":"https://github.com/ruflin","followers_url":"https://api.github.com/users/ruflin/followers","following_url":"https://api.github.com/users/ruflin/following{/other_user}","gists_url":"https://api.github.com/users/ruflin/gists{/gist_id}","starred_url":"https://api.github.com/users/ruflin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ruflin/subscriptions","organizations_url":"https://api.github.com/users/ruflin/orgs","repos_url":"https://api.github.com/users/ruflin/repos","events_url":"https://api.github.com/users/ruflin/events{/privacy}","received_events_url":"https://api.github.com/users/ruflin/received_events","type":"User","site_admin":false},"created_at":"2015-05-20T11:54:32Z","updated_at":"2015-05-20T11:54:32Z","body":"@hasumedic I think @webdevsHub is on vacation and will only respond next week ..."}}