{"action":"created","comment":{"url":"https://api.github.com/repos/php-fig/fig-standards/pulls/comments/222154808","pull_request_review_id":160975279,"id":222154808,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyMjE1NDgwOA==","diff_hunk":"@@ -137,4 +137,132 @@ It is RECOMMENDED that a Notifier and Processor be implemented as distinct objec\n \n ## Interfaces\n \n-See [the repository](https://github.com/php-fig/event-dispatcher).  The final interfaces will be copied back here before it goes up for a vote.  For now it's easier to just single-source them.\n+### General event interfaces\n+\n+```php\n+namespace Psr\\EventDispatcher;\n+\n+/**\n+ * Marker interface indicating an event instance.\n+ *\n+ * Event instances may contain zero methods, or as many methods as they\n+ * want. The interface MUST be implemented, however, to provide type-safety\n+ * to both listeners as well as listener providers.\n+ */\n+interface EventInterface\n+{\n+}\n+```\n+\n+```php\n+namespace Psr\\EventDispatcher;\n+\n+/**\n+ * Mapper from an event to the listeners that are applicable to that event.\n+ */\n+interface ListenerProviderInterface\n+{\n+    /**\n+     * @param EventInterface $event\n+     *   An event for which to return the relevant listeners.\n+     * @return iterable[callable]\n+     *   An iterable (array, iterator, or generator) of callables.  Each\n+     *   callable MUST be type-compatible with $event.\n+     */\n+    public function getListenersForEvent(EventInterface $event) : iterable;\n+}\n+```\n+\n+### Message Interfaces\n+\n+```php\n+namespace Psr\\EventDispatcher;\n+\n+\n+/**\n+ * This is a marker interface used to identify message events.\n+ */\n+interface MessageInterface extends EventInterface\n+{\n+}\n+```\n+\n+```php\n+namespace Psr\\EventDispatcher;\n+\n+/**\n+ * Defines a notifier for message events.\n+ */\n+interface MessageNotifierInterface\n+{\n+    /**\n+     * Notify listeners of a message event.\n+     *\n+     * This method MAY act asynchronously.  Callers SHOULD NOT\n+     * assume that any action has been taken when this method\n+     * returns.\n+     *\n+     * @param MessageInterface $event\n+     *   The event to notify listeners of.\n+     */\n+    public function notify(MessageInterface $event) : void;\n+}\n+```\n+\n+### Task Interfaces\n+\n+namespace Psr\\EventDispatcher;\n+\n+```php\n+/**\n+ * This is a marker interface used to identify task events.\n+ */\n+interface TaskInterface extends EventInterface\n+{\n+}\n+```\n+\n+```php\n+namespace Psr\\EventDispatcher;\n+\n+/**\n+ * A Task whose processing may be interrupted when the task is complete.\n+ *\n+ * A Processor implementation MUST check to determine if a Task\n+ * is marked as stopped after each listener is called.  If it is then it should\n+ * return immediately without calling any further Listeners.\n+ */\n+interface StoppableTaskInterface extends TaskInterface\n+{\n+    /**\n+     * Is propagation stopped?\n+     *\n+     * This will typically only be used by the Processor to determine if the\n+     * previous listener halted propagation.\n+     *\n+     * @return bool\n+     *   True if the Task is complete and no further listeners should be called.\n+     *   False to continue calling listeners.\n+     */\n+    public function isPropagationStopped() : bool;\n+}\n+```\n+\n+```php\n+/**\n+ * Defines a processor for task events.\n+ */\n+interface TaskProcessorInterface\n+{\n+    /**\n+     * Provide all listeners with a task event to process.\n+     *\n+     * @param TaskInterface $event\n+     *  The task to process.\n+     *\n+     * @return TaskInterface\n+     *  The task that was passed, now modified by callers.\n+     */","path":"proposed/event-dispatcher.md","position":130,"original_position":130,"commit_id":"27b124b31449cc8edb656e92138f3d3be3777014","original_commit_id":"233b82f3941868427d5c8d7782158ec705b0b18d","user":{"login":"Crell","id":254863,"node_id":"MDQ6VXNlcjI1NDg2Mw==","avatar_url":"https://avatars1.githubusercontent.com/u/254863?v=4","gravatar_id":"","url":"https://api.github.com/users/Crell","html_url":"https://github.com/Crell","followers_url":"https://api.github.com/users/Crell/followers","following_url":"https://api.github.com/users/Crell/following{/other_user}","gists_url":"https://api.github.com/users/Crell/gists{/gist_id}","starred_url":"https://api.github.com/users/Crell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Crell/subscriptions","organizations_url":"https://api.github.com/users/Crell/orgs","repos_url":"https://api.github.com/users/Crell/repos","events_url":"https://api.github.com/users/Crell/events{/privacy}","received_events_url":"https://api.github.com/users/Crell/received_events","type":"User","site_admin":false},"body":"If there's a known exception that the object will throw, yes.  But in this case it could literally throw anything, or rather, it's not allowed to prevent anything that gets thrown from getting caught.  `@throws \\Throwable Could be anything.` doesn't seem particularly useful.","created_at":"2018-10-03T00:49:39Z","updated_at":"2018-10-03T00:49:39Z","html_url":"https://github.com/php-fig/fig-standards/pull/1085#discussion_r222154808","pull_request_url":"https://api.github.com/repos/php-fig/fig-standards/pulls/1085","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/php-fig/fig-standards/pulls/comments/222154808"},"html":{"href":"https://github.com/php-fig/fig-standards/pull/1085#discussion_r222154808"},"pull_request":{"href":"https://api.github.com/repos/php-fig/fig-standards/pulls/1085"}},"in_reply_to_id":221936088},"pull_request":{"url":"https://api.github.com/repos/php-fig/fig-standards/pulls/1085","id":219091065,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE5MDkxMDY1","html_url":"https://github.com/php-fig/fig-standards/pull/1085","diff_url":"https://github.com/php-fig/fig-standards/pull/1085.diff","patch_url":"https://github.com/php-fig/fig-standards/pull/1085.patch","issue_url":"https://api.github.com/repos/php-fig/fig-standards/issues/1085","number":1085,"state":"open","locked":false,"title":"Finalize PSR-14","user":{"login":"Crell","id":254863,"node_id":"MDQ6VXNlcjI1NDg2Mw==","avatar_url":"https://avatars1.githubusercontent.com/u/254863?v=4","gravatar_id":"","url":"https://api.github.com/users/Crell","html_url":"https://github.com/Crell","followers_url":"https://api.github.com/users/Crell/followers","following_url":"https://api.github.com/users/Crell/following{/other_user}","gists_url":"https://api.github.com/users/Crell/gists{/gist_id}","starred_url":"https://api.github.com/users/Crell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Crell/subscriptions","organizations_url":"https://api.github.com/users/Crell/orgs","repos_url":"https://api.github.com/users/Crell/repos","events_url":"https://api.github.com/users/Crell/events{/privacy}","received_events_url":"https://api.github.com/users/Crell/received_events","type":"User","site_admin":false},"body":"This brings us up to ready-for-readiness vote, I think.","created_at":"2018-09-28T21:32:05Z","updated_at":"2018-10-03T00:49:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ee1440d020ab24efd75b9e847d2332cd71e352ec","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":405451293,"node_id":"MDU6TGFiZWw0MDU0NTEyOTM=","url":"https://api.github.com/repos/php-fig/fig-standards/labels/PSR-14:%20Events","name":"PSR-14: Events","color":"bfdadc","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/php-fig/fig-standards/pulls/1085/commits","review_comments_url":"https://api.github.com/repos/php-fig/fig-standards/pulls/1085/comments","review_comment_url":"https://api.github.com/repos/php-fig/fig-standards/pulls/comments{/number}","comments_url":"https://api.github.com/repos/php-fig/fig-standards/issues/1085/comments","statuses_url":"https://api.github.com/repos/php-fig/fig-standards/statuses/27b124b31449cc8edb656e92138f3d3be3777014","head":{"label":"Crell:psr-14-finalize","ref":"psr-14-finalize","sha":"27b124b31449cc8edb656e92138f3d3be3777014","user":{"login":"Crell","id":254863,"node_id":"MDQ6VXNlcjI1NDg2Mw==","avatar_url":"https://avatars1.githubusercontent.com/u/254863?v=4","gravatar_id":"","url":"https://api.github.com/users/Crell","html_url":"https://github.com/Crell","followers_url":"https://api.github.com/users/Crell/followers","following_url":"https://api.github.com/users/Crell/following{/other_user}","gists_url":"https://api.github.com/users/Crell/gists{/gist_id}","starred_url":"https://api.github.com/users/Crell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Crell/subscriptions","organizations_url":"https://api.github.com/users/Crell/orgs","repos_url":"https://api.github.com/users/Crell/repos","events_url":"https://api.github.com/users/Crell/events{/privacy}","received_events_url":"https://api.github.com/users/Crell/received_events","type":"User","site_admin":false},"repo":{"id":8766880,"node_id":"MDEwOlJlcG9zaXRvcnk4NzY2ODgw","name":"fig-standards","full_name":"Crell/fig-standards","private":false,"owner":{"login":"Crell","id":254863,"node_id":"MDQ6VXNlcjI1NDg2Mw==","avatar_url":"https://avatars1.githubusercontent.com/u/254863?v=4","gravatar_id":"","url":"https://api.github.com/users/Crell","html_url":"https://github.com/Crell","followers_url":"https://api.github.com/users/Crell/followers","following_url":"https://api.github.com/users/Crell/following{/other_user}","gists_url":"https://api.github.com/users/Crell/gists{/gist_id}","starred_url":"https://api.github.com/users/Crell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Crell/subscriptions","organizations_url":"https://api.github.com/users/Crell/orgs","repos_url":"https://api.github.com/users/Crell/repos","events_url":"https://api.github.com/users/Crell/events{/privacy}","received_events_url":"https://api.github.com/users/Crell/received_events","type":"User","site_admin":false},"html_url":"https://github.com/Crell/fig-standards","description":"Standards either proposed or approved by the Framework Interop Group","fork":true,"url":"https://api.github.com/repos/Crell/fig-standards","forks_url":"https://api.github.com/repos/Crell/fig-standards/forks","keys_url":"https://api.github.com/repos/Crell/fig-standards/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Crell/fig-standards/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Crell/fig-standards/teams","hooks_url":"https://api.github.com/repos/Crell/fig-standards/hooks","issue_events_url":"https://api.github.com/repos/Crell/fig-standards/issues/events{/number}","events_url":"https://api.github.com/repos/Crell/fig-standards/events","assignees_url":"https://api.github.com/repos/Crell/fig-standards/assignees{/user}","branches_url":"https://api.github.com/repos/Crell/fig-standards/branches{/branch}","tags_url":"https://api.github.com/repos/Crell/fig-standards/tags","blobs_url":"https://api.github.com/repos/Crell/fig-standards/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Crell/fig-standards/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Crell/fig-standards/git/refs{/sha}","trees_url":"https://api.github.com/repos/Crell/fig-standards/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Crell/fig-standards/statuses/{sha}","languages_url":"https://api.github.com/repos/Crell/fig-standards/languages","stargazers_url":"https://api.github.com/repos/Crell/fig-standards/stargazers","contributors_url":"https://api.github.com/repos/Crell/fig-standards/contributors","subscribers_url":"https://api.github.com/repos/Crell/fig-standards/subscribers","subscription_url":"https://api.github.com/repos/Crell/fig-standards/subscription","commits_url":"https://api.github.com/repos/Crell/fig-standards/commits{/sha}","git_commits_url":"https://api.github.com/repos/Crell/fig-standards/git/commits{/sha}","comments_url":"https://api.github.com/repos/Crell/fig-standards/comments{/number}","issue_comment_url":"https://api.github.com/repos/Crell/fig-standards/issues/comments{/number}","contents_url":"https://api.github.com/repos/Crell/fig-standards/contents/{+path}","compare_url":"https://api.github.com/repos/Crell/fig-standards/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Crell/fig-standards/merges","archive_url":"https://api.github.com/repos/Crell/fig-standards/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Crell/fig-standards/downloads","issues_url":"https://api.github.com/repos/Crell/fig-standards/issues{/number}","pulls_url":"https://api.github.com/repos/Crell/fig-standards/pulls{/number}","milestones_url":"https://api.github.com/repos/Crell/fig-standards/milestones{/number}","notifications_url":"https://api.github.com/repos/Crell/fig-standards/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Crell/fig-standards/labels{/name}","releases_url":"https://api.github.com/repos/Crell/fig-standards/releases{/id}","deployments_url":"https://api.github.com/repos/Crell/fig-standards/deployments","created_at":"2013-03-14T03:02:28Z","updated_at":"2016-12-22T20:44:35Z","pushed_at":"2018-10-02T18:08:36Z","git_url":"git://github.com/Crell/fig-standards.git","ssh_url":"git@github.com:Crell/fig-standards.git","clone_url":"https://github.com/Crell/fig-standards.git","svn_url":"https://github.com/Crell/fig-standards","homepage":"http://www.php-fig.org/","size":2725,"stargazers_count":7,"watchers_count":7,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"NOASSERTION","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":3,"open_issues":0,"watchers":7,"default_branch":"psr-hug"}},"base":{"label":"php-fig:master","ref":"master","sha":"53639e9e34b7492cf47b16398c841455eef5e901","user":{"login":"php-fig","id":468401,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ2ODQwMQ==","avatar_url":"https://avatars1.githubusercontent.com/u/468401?v=4","gravatar_id":"","url":"https://api.github.com/users/php-fig","html_url":"https://github.com/php-fig","followers_url":"https://api.github.com/users/php-fig/followers","following_url":"https://api.github.com/users/php-fig/following{/other_user}","gists_url":"https://api.github.com/users/php-fig/gists{/gist_id}","starred_url":"https://api.github.com/users/php-fig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/php-fig/subscriptions","organizations_url":"https://api.github.com/users/php-fig/orgs","repos_url":"https://api.github.com/users/php-fig/repos","events_url":"https://api.github.com/users/php-fig/events{/privacy}","received_events_url":"https://api.github.com/users/php-fig/received_events","type":"Organization","site_admin":false},"repo":{"id":1053270,"node_id":"MDEwOlJlcG9zaXRvcnkxMDUzMjcw","name":"fig-standards","full_name":"php-fig/fig-standards","private":false,"owner":{"login":"php-fig","id":468401,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ2ODQwMQ==","avatar_url":"https://avatars1.githubusercontent.com/u/468401?v=4","gravatar_id":"","url":"https://api.github.com/users/php-fig","html_url":"https://github.com/php-fig","followers_url":"https://api.github.com/users/php-fig/followers","following_url":"https://api.github.com/users/php-fig/following{/other_user}","gists_url":"https://api.github.com/users/php-fig/gists{/gist_id}","starred_url":"https://api.github.com/users/php-fig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/php-fig/subscriptions","organizations_url":"https://api.github.com/users/php-fig/orgs","repos_url":"https://api.github.com/users/php-fig/repos","events_url":"https://api.github.com/users/php-fig/events{/privacy}","received_events_url":"https://api.github.com/users/php-fig/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/php-fig/fig-standards","description":"Standards either proposed or approved by the Framework Interop Group","fork":false,"url":"https://api.github.com/repos/php-fig/fig-standards","forks_url":"https://api.github.com/repos/php-fig/fig-standards/forks","keys_url":"https://api.github.com/repos/php-fig/fig-standards/keys{/key_id}","collaborators_url":"https://api.github.com/repos/php-fig/fig-standards/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/php-fig/fig-standards/teams","hooks_url":"https://api.github.com/repos/php-fig/fig-standards/hooks","issue_events_url":"https://api.github.com/repos/php-fig/fig-standards/issues/events{/number}","events_url":"https://api.github.com/repos/php-fig/fig-standards/events","assignees_url":"https://api.github.com/repos/php-fig/fig-standards/assignees{/user}","branches_url":"https://api.github.com/repos/php-fig/fig-standards/branches{/branch}","tags_url":"https://api.github.com/repos/php-fig/fig-standards/tags","blobs_url":"https://api.github.com/repos/php-fig/fig-standards/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/php-fig/fig-standards/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/php-fig/fig-standards/git/refs{/sha}","trees_url":"https://api.github.com/repos/php-fig/fig-standards/git/trees{/sha}","statuses_url":"https://api.github.com/repos/php-fig/fig-standards/statuses/{sha}","languages_url":"https://api.github.com/repos/php-fig/fig-standards/languages","stargazers_url":"https://api.github.com/repos/php-fig/fig-standards/stargazers","contributors_url":"https://api.github.com/repos/php-fig/fig-standards/contributors","subscribers_url":"https://api.github.com/repos/php-fig/fig-standards/subscribers","subscription_url":"https://api.github.com/repos/php-fig/fig-standards/subscription","commits_url":"https://api.github.com/repos/php-fig/fig-standards/commits{/sha}","git_commits_url":"https://api.github.com/repos/php-fig/fig-standards/git/commits{/sha}","comments_url":"https://api.github.com/repos/php-fig/fig-standards/comments{/number}","issue_comment_url":"https://api.github.com/repos/php-fig/fig-standards/issues/comments{/number}","contents_url":"https://api.github.com/repos/php-fig/fig-standards/contents/{+path}","compare_url":"https://api.github.com/repos/php-fig/fig-standards/compare/{base}...{head}","merges_url":"https://api.github.com/repos/php-fig/fig-standards/merges","archive_url":"https://api.github.com/repos/php-fig/fig-standards/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/php-fig/fig-standards/downloads","issues_url":"https://api.github.com/repos/php-fig/fig-standards/issues{/number}","pulls_url":"https://api.github.com/repos/php-fig/fig-standards/pulls{/number}","milestones_url":"https://api.github.com/repos/php-fig/fig-standards/milestones{/number}","notifications_url":"https://api.github.com/repos/php-fig/fig-standards/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/php-fig/fig-standards/labels{/name}","releases_url":"https://api.github.com/repos/php-fig/fig-standards/releases{/id}","deployments_url":"https://api.github.com/repos/php-fig/fig-standards/deployments","created_at":"2010-11-05T04:44:12Z","updated_at":"2018-10-02T15:51:47Z","pushed_at":"2018-10-02T18:08:37Z","git_url":"git://github.com/php-fig/fig-standards.git","ssh_url":"git@github.com:php-fig/fig-standards.git","clone_url":"https://github.com/php-fig/fig-standards.git","svn_url":"https://github.com/php-fig/fig-standards","homepage":"http://www.php-fig.org/","size":2734,"stargazers_count":10523,"watchers_count":10523,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2723,"mirror_url":null,"archived":false,"open_issues_count":23,"license":{"key":"other","name":"NOASSERTION","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":2723,"open_issues":23,"watchers":10523,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/php-fig/fig-standards/pulls/1085"},"html":{"href":"https://github.com/php-fig/fig-standards/pull/1085"},"issue":{"href":"https://api.github.com/repos/php-fig/fig-standards/issues/1085"},"comments":{"href":"https://api.github.com/repos/php-fig/fig-standards/issues/1085/comments"},"review_comments":{"href":"https://api.github.com/repos/php-fig/fig-standards/pulls/1085/comments"},"review_comment":{"href":"https://api.github.com/repos/php-fig/fig-standards/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/php-fig/fig-standards/pulls/1085/commits"},"statuses":{"href":"https://api.github.com/repos/php-fig/fig-standards/statuses/27b124b31449cc8edb656e92138f3d3be3777014"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"Crell"}}