{"action":"created","comment":{"url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/pulls/comments/74331686","id":74331686,"diff_hunk":"@@ -1,107 +1,107 @@\n-<h1><?php echo $this->translate('A 404 error occurred') ?></h1>\n-<h2><?php echo $this->message ?></h2>\n-\n-<?php if (isset($this->reason) && $this->reason): ?>\n+<?php\n+use Zend\\Mvc\\Application;\n+?>\n+<h1>A 404 error occurred</h1>\n+<h2><?= $this->message ?></h2>\n \n <?php\n-$reasonMessage= '';\n-switch ($this->reason) {\n-    case 'error-controller-cannot-dispatch':\n-        $reasonMessage = $this->translate('The requested controller was unable to dispatch the request.');\n-        break;\n-    case 'error-controller-not-found':\n-        $reasonMessage = $this->translate('The requested controller could not be mapped to an existing controller class.');\n-        break;\n-    case 'error-controller-invalid':\n-        $reasonMessage = $this->translate('The requested controller was not dispatchable.');\n-        break;\n-    case 'error-router-no-match':\n-        $reasonMessage = $this->translate('The requested URL could not be matched by routing.');\n-        break;\n-    default:\n-        $reasonMessage = $this->translate('We cannot determine at this time why a 404 was generated.');\n-        break;\n-}\n+if (! empty($this->reason)) :\n+    $reasonMessage = '';\n+    switch ($this->reason) {\n+        case Application::ERROR_CONTROLLER_CANNOT_DISPATCH:\n+            $reasonMessage = 'The requested controller was unable to dispatch the request.';\n+            break;\n+        case Application::ERROR_MIDDLEWARE_CANNOT_DISPATCH:\n+            $reasonMessage = 'The requested middleware was unable to dispatch the request.';\n+            break;\n+        case Application::ERROR_CONTROLLER_NOT_FOUND:\n+            $reasonMessage = 'The requested controller could not be mapped to an existing controller class.';\n+            break;\n+        case Application::ERROR_CONTROLLER_INVALID:\n+            $reasonMessage = 'The requested controller was not dispatchable.';\n+            break;\n+        case Application::ERROR_ROUTER_NO_MATCH:\n+            $reasonMessage = 'The requested URL could not be matched by routing.';\n+            break;\n+        default:\n+            $reasonMessage = 'We cannot determine at this time why a 404 was generated.';\n+            break;\n+    }\n ?>\n \n-<p><?php echo $reasonMessage ?></p>\n+<p><?= $reasonMessage ?></p>\n \n <?php endif ?>\n \n-<?php if (isset($this->controller) && $this->controller): ?>\n+<?php if (! empty($this->controller)) : ?>\n \n <dl>\n-    <dt><?php echo $this->translate('Controller') ?>:</dt>\n-    <dd><?php echo $this->escapeHtml($this->controller) ?>\n-<?php\n-if (isset($this->controller_class)\n-    && $this->controller_class\n-    && $this->controller_class != $this->controller\n-) {\n-    echo '(' . sprintf($this->translate('resolves to %s'), $this->escapeHtml($this->controller_class)) . ')';\n-}\n-?>\n+    <dt>Controller:</dt>\n+    <dd><?= $this->escapeHtml($this->controller) ?>\n+    <?php\n+    if (! empty($this->controller_class)\n+        && $this->controller_class != $this->controller\n+    ) {\n+        echo '(' . sprintf('resolves to %s', $this->escapeHtml($this->controller_class)) . ')';","path":"module/Application/view/error/404.phtml","position":79,"original_position":79,"commit_id":"e5627cf27ae7103e6d60df7966b9441784897d47","original_commit_id":"e5627cf27ae7103e6d60df7966b9441784897d47","user":{"login":"webimpress","id":7423207,"avatar_url":"https://avatars.githubusercontent.com/u/7423207?v=3","gravatar_id":"","url":"https://api.github.com/users/webimpress","html_url":"https://github.com/webimpress","followers_url":"https://api.github.com/users/webimpress/followers","following_url":"https://api.github.com/users/webimpress/following{/other_user}","gists_url":"https://api.github.com/users/webimpress/gists{/gist_id}","starred_url":"https://api.github.com/users/webimpress/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/webimpress/subscriptions","organizations_url":"https://api.github.com/users/webimpress/orgs","repos_url":"https://api.github.com/users/webimpress/repos","events_url":"https://api.github.com/users/webimpress/events{/privacy}","received_events_url":"https://api.github.com/users/webimpress/received_events","type":"User","site_admin":false},"body":"Maybe brackets also inside `sprintf`?\r\n```php\r\necho sprintf('(resolves to %s)', $this->escapeHtml($this->controller_class));\r\n```\r\n","created_at":"2016-08-10T21:12:21Z","updated_at":"2016-08-10T21:12:21Z","html_url":"https://github.com/zfcampus/zf-apigility-skeleton/pull/130#discussion_r74331686","pull_request_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/pulls/130","_links":{"self":{"href":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/pulls/comments/74331686"},"html":{"href":"https://github.com/zfcampus/zf-apigility-skeleton/pull/130#discussion_r74331686"},"pull_request":{"href":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/pulls/130"}}},"pull_request":{"url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/pulls/130","id":80708435,"html_url":"https://github.com/zfcampus/zf-apigility-skeleton/pull/130","diff_url":"https://github.com/zfcampus/zf-apigility-skeleton/pull/130.diff","patch_url":"https://github.com/zfcampus/zf-apigility-skeleton/pull/130.patch","issue_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/issues/130","number":130,"state":"open","locked":false,"title":"Prepare skeleton to use ZF v3 releases by default","user":{"login":"weierophinney","id":25943,"avatar_url":"https://avatars.githubusercontent.com/u/25943?v=3","gravatar_id":"","url":"https://api.github.com/users/weierophinney","html_url":"https://github.com/weierophinney","followers_url":"https://api.github.com/users/weierophinney/followers","following_url":"https://api.github.com/users/weierophinney/following{/other_user}","gists_url":"https://api.github.com/users/weierophinney/gists{/gist_id}","starred_url":"https://api.github.com/users/weierophinney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/weierophinney/subscriptions","organizations_url":"https://api.github.com/users/weierophinney/orgs","repos_url":"https://api.github.com/users/weierophinney/repos","events_url":"https://api.github.com/users/weierophinney/events{/privacy}","received_events_url":"https://api.github.com/users/weierophinney/received_events","type":"User","site_admin":false},"body":"For the next minor release (1.4), we'll be using ZF v3 components by default. This patch does the followign:\n\n- Sets the minimum supported PHP version to 5.6.\n- Removes the zendframework/zendframework dependency entirely; zf-apigility and others bring in zend-mvc already, which gives us the MVC foundation necessary.\n- Adds zendframework/zend-component-installer as a requirement.\n- Adds zfcampus/zf-asset-manager as a development requirement.\n- Removes zendframework/zftool as a development requirement.\n- Updates all Apigility requirements, both production and development, to their latest stable versions.\n- Adds Composer scripts for:\n  - enabling development mode (`composer development-enable`)\n  - disabling development mode (`composer development-disable`)\n  - reporting development mode status (`composer development-status`)\n\nThis has been tested quite a bit along with the zf-apigility-admin 1.5.0 release, but likely needs more testers. In particular, I'm curious what the \"install\" experience is like, and whether or not people are getting endless requests to update their module configuration, or if it \"just installs\".","created_at":"2016-08-09T22:50:02Z","updated_at":"2016-08-10T21:12:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e5c4022b3204e572a9337f19608caea6c00a5e03","assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/milestones/13","html_url":"https://github.com/zfcampus/zf-apigility-skeleton/milestones/1.4.0","labels_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/milestones/13/labels","id":1933649,"number":13,"title":"1.4.0","description":null,"creator":{"login":"weierophinney","id":25943,"avatar_url":"https://avatars.githubusercontent.com/u/25943?v=3","gravatar_id":"","url":"https://api.github.com/users/weierophinney","html_url":"https://github.com/weierophinney","followers_url":"https://api.github.com/users/weierophinney/followers","following_url":"https://api.github.com/users/weierophinney/following{/other_user}","gists_url":"https://api.github.com/users/weierophinney/gists{/gist_id}","starred_url":"https://api.github.com/users/weierophinney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/weierophinney/subscriptions","organizations_url":"https://api.github.com/users/weierophinney/orgs","repos_url":"https://api.github.com/users/weierophinney/repos","events_url":"https://api.github.com/users/weierophinney/events{/privacy}","received_events_url":"https://api.github.com/users/weierophinney/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":0,"state":"open","created_at":"2016-08-09T22:52:21Z","updated_at":"2016-08-09T22:52:21Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/pulls/130/commits","review_comments_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/pulls/130/comments","review_comment_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/pulls/comments{/number}","comments_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/issues/130/comments","statuses_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/statuses/e5627cf27ae7103e6d60df7966b9441784897d47","head":{"label":"weierophinney:feature/zf-v3-readiness","ref":"feature/zf-v3-readiness","sha":"e5627cf27ae7103e6d60df7966b9441784897d47","user":{"login":"weierophinney","id":25943,"avatar_url":"https://avatars.githubusercontent.com/u/25943?v=3","gravatar_id":"","url":"https://api.github.com/users/weierophinney","html_url":"https://github.com/weierophinney","followers_url":"https://api.github.com/users/weierophinney/followers","following_url":"https://api.github.com/users/weierophinney/following{/other_user}","gists_url":"https://api.github.com/users/weierophinney/gists{/gist_id}","starred_url":"https://api.github.com/users/weierophinney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/weierophinney/subscriptions","organizations_url":"https://api.github.com/users/weierophinney/orgs","repos_url":"https://api.github.com/users/weierophinney/repos","events_url":"https://api.github.com/users/weierophinney/events{/privacy}","received_events_url":"https://api.github.com/users/weierophinney/received_events","type":"User","site_admin":false},"repo":{"id":14053755,"name":"zf-apigility-skeleton","full_name":"weierophinney/zf-apigility-skeleton","owner":{"login":"weierophinney","id":25943,"avatar_url":"https://avatars.githubusercontent.com/u/25943?v=3","gravatar_id":"","url":"https://api.github.com/users/weierophinney","html_url":"https://github.com/weierophinney","followers_url":"https://api.github.com/users/weierophinney/followers","following_url":"https://api.github.com/users/weierophinney/following{/other_user}","gists_url":"https://api.github.com/users/weierophinney/gists{/gist_id}","starred_url":"https://api.github.com/users/weierophinney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/weierophinney/subscriptions","organizations_url":"https://api.github.com/users/weierophinney/orgs","repos_url":"https://api.github.com/users/weierophinney/repos","events_url":"https://api.github.com/users/weierophinney/events{/privacy}","received_events_url":"https://api.github.com/users/weierophinney/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/weierophinney/zf-apigility-skeleton","description":null,"fork":true,"url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton","forks_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/forks","keys_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/keys{/key_id}","collaborators_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/teams","hooks_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/hooks","issue_events_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/issues/events{/number}","events_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/events","assignees_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/assignees{/user}","branches_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/branches{/branch}","tags_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/tags","blobs_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/git/refs{/sha}","trees_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/git/trees{/sha}","statuses_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/statuses/{sha}","languages_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/languages","stargazers_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/stargazers","contributors_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/contributors","subscribers_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/subscribers","subscription_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/subscription","commits_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/commits{/sha}","git_commits_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/git/commits{/sha}","comments_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/comments{/number}","issue_comment_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/issues/comments{/number}","contents_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/contents/{+path}","compare_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/compare/{base}...{head}","merges_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/merges","archive_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/downloads","issues_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/issues{/number}","pulls_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/pulls{/number}","milestones_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/milestones{/number}","notifications_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/labels{/name}","releases_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/releases{/id}","deployments_url":"https://api.github.com/repos/weierophinney/zf-apigility-skeleton/deployments","created_at":"2013-11-01T20:55:00Z","updated_at":"2014-06-04T15:18:50Z","pushed_at":"2016-08-10T19:39:40Z","git_url":"git://github.com/weierophinney/zf-apigility-skeleton.git","ssh_url":"git@github.com:weierophinney/zf-apigility-skeleton.git","clone_url":"https://github.com/weierophinney/zf-apigility-skeleton.git","svn_url":"https://github.com/weierophinney/zf-apigility-skeleton","homepage":null,"size":2492,"stargazers_count":0,"watchers_count":0,"language":"Puppet","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"zfcampus:develop","ref":"develop","sha":"fbd5e62df87dad9e8609e4b60d2a7777fec8a41c","user":{"login":"zfcampus","id":5454933,"avatar_url":"https://avatars.githubusercontent.com/u/5454933?v=3","gravatar_id":"","url":"https://api.github.com/users/zfcampus","html_url":"https://github.com/zfcampus","followers_url":"https://api.github.com/users/zfcampus/followers","following_url":"https://api.github.com/users/zfcampus/following{/other_user}","gists_url":"https://api.github.com/users/zfcampus/gists{/gist_id}","starred_url":"https://api.github.com/users/zfcampus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zfcampus/subscriptions","organizations_url":"https://api.github.com/users/zfcampus/orgs","repos_url":"https://api.github.com/users/zfcampus/repos","events_url":"https://api.github.com/users/zfcampus/events{/privacy}","received_events_url":"https://api.github.com/users/zfcampus/received_events","type":"Organization","site_admin":false},"repo":{"id":12139906,"name":"zf-apigility-skeleton","full_name":"zfcampus/zf-apigility-skeleton","owner":{"login":"zfcampus","id":5454933,"avatar_url":"https://avatars.githubusercontent.com/u/5454933?v=3","gravatar_id":"","url":"https://api.github.com/users/zfcampus","html_url":"https://github.com/zfcampus","followers_url":"https://api.github.com/users/zfcampus/followers","following_url":"https://api.github.com/users/zfcampus/following{/other_user}","gists_url":"https://api.github.com/users/zfcampus/gists{/gist_id}","starred_url":"https://api.github.com/users/zfcampus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zfcampus/subscriptions","organizations_url":"https://api.github.com/users/zfcampus/orgs","repos_url":"https://api.github.com/users/zfcampus/repos","events_url":"https://api.github.com/users/zfcampus/events{/privacy}","received_events_url":"https://api.github.com/users/zfcampus/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/zfcampus/zf-apigility-skeleton","description":null,"fork":false,"url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton","forks_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/forks","keys_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/teams","hooks_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/hooks","issue_events_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/issues/events{/number}","events_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/events","assignees_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/assignees{/user}","branches_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/branches{/branch}","tags_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/tags","blobs_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/git/refs{/sha}","trees_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/statuses/{sha}","languages_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/languages","stargazers_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/stargazers","contributors_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/contributors","subscribers_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/subscribers","subscription_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/subscription","commits_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/commits{/sha}","git_commits_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/git/commits{/sha}","comments_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/comments{/number}","issue_comment_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/issues/comments{/number}","contents_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/contents/{+path}","compare_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/merges","archive_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/downloads","issues_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/issues{/number}","pulls_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/pulls{/number}","milestones_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/milestones{/number}","notifications_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/labels{/name}","releases_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/releases{/id}","deployments_url":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/deployments","created_at":"2013-08-15T17:48:59Z","updated_at":"2016-08-02T06:33:23Z","pushed_at":"2016-08-10T20:52:07Z","git_url":"git://github.com/zfcampus/zf-apigility-skeleton.git","ssh_url":"git@github.com:zfcampus/zf-apigility-skeleton.git","clone_url":"https://github.com/zfcampus/zf-apigility-skeleton.git","svn_url":"https://github.com/zfcampus/zf-apigility-skeleton","homepage":null,"size":2600,"stargazers_count":445,"watchers_count":445,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":123,"mirror_url":null,"open_issues_count":17,"forks":123,"open_issues":17,"watchers":445,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/pulls/130"},"html":{"href":"https://github.com/zfcampus/zf-apigility-skeleton/pull/130"},"issue":{"href":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/issues/130"},"comments":{"href":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/issues/130/comments"},"review_comments":{"href":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/pulls/130/comments"},"review_comment":{"href":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/pulls/130/commits"},"statuses":{"href":"https://api.github.com/repos/zfcampus/zf-apigility-skeleton/statuses/e5627cf27ae7103e6d60df7966b9441784897d47"}}}}
{"actor":{"display_login":"webimpress"}}