{"action":"created","comment":{"url":"https://api.github.com/repos/cakephp/docs/pulls/comments/69247493","id":69247493,"diff_hunk":"@@ -1,28 +1,534 @@\n コントローラ\n ############\n \n-.. note::\n-    The documentation is not currently supported in Japanese language for this\n-    page.\n+.. php:namespace:: Cake\\Controller\n \n-    Please feel free to send us a pull request on\n-    `Github <https://github.com/cakephp/docs>`_ or use the **Improve This Doc**\n-    button to directly propose your changes.\n+.. php:class:: Controller\n \n-    You can referer to the english version in the select top menu to have\n-    information about this page's topic.\n+コントローラ (Controller) は MVC の 'C' です。ルーティングが適用されて適切なコントローラが見つかった後、\n+コントローラのアクションが呼ばれます。コントローラはリクエストを解釈して、適切なモデルが\n+呼ばれるのを確認して、正しいレスポンスまたはビューを書き出します。コントローラはモデルとビューの\n+中間層とみなすことができます。コントローラは薄くシンプルに、モデルを大きくしましょう。\n+そうすれば、あなたの書いたコードはより簡単に再利用できるようになり、そしてより簡単にテストできるでしょう。\n \n+一般的に、コントローラはひとつのモデルのロジックを管理するために使われます。\n+たとえば、オンラインベーカリーのサイトを構築しようとしている場合、レシピやその材料を管理する\n+RecipesController と IngredientsController を作るでしょう。\n+コントローラは複数のモデルを扱う場合でも問題なく動作しますが、CakePHP では\n+主に操作するモデルにちなんで、コントローラの名前が付けられます。\n \n-Interacting with Views\n-======================\n+アプリケーションのコントローラは ``AppController`` クラスを継承し、そしてそれは\n+:php:class:`Controller` クラスを継承しています。 ``AppController`` クラスは\n+**src/Controller/AppController.php** に定義し、アプリケーションのコントローラ全体で\n+共有されるメソッドを含めるようにしましょう。\n+\n+コントローラは、リクエストを操作するための *アクション* と呼ばれるいくつかのメソッドを提供します。\n+デフォルトで、コントローラ上のすべての public メソッドはアクションとなり、URL からアクセスができます。\n+アクションはリクエストを解釈してレスポンスを返す役割があります。\n+普通、レスポンスは描画されたビューの形式となっていますが、同様のレスポンスを作成する方法は他にもあります。\n+\n+.. _app-controller:\n+\n+AppController\n+=============\n+\n+冒頭で述べたように、 ``AppController`` クラスはアプリケーションのすべてのコントローラの\n+親クラスとなります。 ``AppController`` はそれ自身、CakePHP のコアライブラリに含まれる\n+:php:class:`Cake\\\\Controller\\\\Controller` クラスを継承しています。\n+``AppController`` は **src/Controller/AppController.php** に次のように定義されます。 ::\n+\n+    namespace App\\Controller;\n+\n+    use Cake\\Controller\\Controller;\n+\n+    class AppController extends Controller\n+    {\n+    }\n+\n+``AppController`` で作られたクラス変数とメソッドはそれを継承するすべてのコントローラで\n+有効となります。コンポーネント (あとで学びます) は多くのコントローラ \n+(必ずしもすべてのコントローラとは限りません) で使われるコードをまとめるのに使われます。\n+\n+アプリケーション中のすべてのコントローラで使われるコンポーネントを読み込むために\n+``AppController`` を使うことができます。CakePHP はこうした用途のために、 Controller\n+のコンストラクタの最後で呼び出される ``initialize()`` メソッドを提供します。 ::\n+\n+    namespace App\\Controller;\n+\n+    use Cake\\Controller\\Controller;\n+\n+    class AppController extends Controller\n+    {\n+\n+        public function initialize()\n+        {\n+            // CSRF コンポーネントを常に有効にします。\n+            $this->loadComponent('Csrf');\n+        }\n+\n+    }\n+\n+``initialize()`` メソッドに加えて、旧来の ``$components`` プロパティでも\n+どのコンポーネントが読まれるべきかを定義することができます。\n+通常のオブジェクト指向の継承ルールが適用されますが、\n+コントローラで使用されるコンポーネントとヘルパーは特別に扱われます。\n+これらの場合、 ``AppController`` のプロパティの値は、子コントローラの配列の値とマージされます。\n+常に子クラスの値が ``AppController`` の値を上書きします。\n+\n+リクエストの流れ\n+================\n+\n+CakePHPアプリケーションへのリクエストが生じると、 CakePHP の :php:class:`Cake\\\\Routing\\\\Router`\n+と :php:class:`Cake\\\\Routing\\\\Dispatcher` クラスは正しいコントローラを見つけて、\n+インスタンスを作成するために :ref:`routes-configuration` を使用します。\n+リクエストデータはリクエストオブジェトに中にカプセル化されています。\n+CakePHP はすべての重要なリクエスト情報を ``$this->request`` プロパティの中に格納します。\n+CakePHP のリクエストオブジェクトについてのより詳しい情報は :ref:`cake-request` の章を参照してください。\n+\n+コントローラのアクション\n+========================\n+\n+コントローラのアクションは、リクエストパラメータを、要求を送ってきたブラウザやユーザーに対する\n+レスポンスに変換する役割があります。CakePHP は規約に則ることで、このプロセスを自動化し、\n+本来であればあなたが書かなければならなかったコードを省いてくれます。\n+\n+CakePHP は規約に従って、アクション名のビューを描画します。オンラインベーカリーの例に戻りますが、\n+RecipesController は ``view()`` 、 ``share()`` 、 ``search()`` アクションを持つかもしれません。\n+このコントローラは **src/Controller/RecipesController.php** にあり、\n+次のようなコードになっています。 ::\n+\n+    // src/Controller/RecipesController.php\n+\n+    class RecipesController extends AppController\n+    {\n+        public function view($id)\n+        {\n+            // アクションの処理をここで行います。\n+        }\n+\n+        public function share($customerId, $recipeId)\n+        {\n+            // アクションの処理をここで行います。\n+        }\n+\n+        public function search($query)\n+        {\n+            // アクションの処理をここで行います。\n+        }\n+    }\n+\n+これらのアクションのテンプレートファイルは **src/Template/Recipes/view.ctp** 、\n+**src/Template/Recipes/share.ctp** 、そして **src/Template/Recipes/search.ctp** になります。\n+規約に従ったビューのファイル名は、アクション名を小文字にしてアンダースコアでつないだものです。\n+\n+通常、コントローラのアクションは :php:class:`View` クラスがビュー層の描画で使う\n+コンテキストを作るために :php:meth:`~Controller::set()` を使います。\n+CakePHP の規約に従うと、手動でビューを描画したり生成したりする必要はありません。\n+代わりに、コントローラのアクションが完了すると、CakePHP はビューの描画と送信をします。\n+\n+もし何らかの理由でデフォルトの動作をスキップさせたければ、完全にレスポンスを作成して、\n+アクションから :php:class:`Cake\\\\Network\\\\Response` オブジェクトを返すこともできます。\n+\n+:php:meth:`~Controller::requestAction()` からコントローラのメソッドを呼ぶ時には、\n+一般的には ``Response`` のインスタンスを返します。\n+もし通常のウェブのリクエストからも requestAction からも呼ばれるコントローラのメソッドがあれば、\n+値を返す前にリクエストタイプをチェックしましょう。 ::\n+\n+    // src/Controller/RecipesController.php\n+\n+    class RecipesController extends AppController\n+    {\n+        public function popular()\n+        {\n+            $popular = $this->Recipes->find('popular');\n+            if ($this->request->is('requested')) {\n+                $this->response->body(json_encode($popular));\n+                return $this->response;\n+            }\n+            $this->set('popular', $popular);\n+        }\n+    }\n+\n+上記のコントローラのアクションは :php:meth:`~Cake\\\\Routing\\\\RequestActionTrait::requestAction()`\n+と通常のリクエストとで、メソッドがどのように使われるかの例です。\n+\n+アプリケーションでコントローラを効率的に使うために、CakePHP のコントローラから提供される\n+いくつかのコアな属性やメソッドを説明しましょう。\n+\n+ビューとの相互作用\n+==================\n+\n+コントローラはビューといくつかの方法でお互いに作用しあっています。最初に、コントローラは\n+``Controller::set()`` を使って、ビューにデータを渡すことができます。\n+コントローラからどのビュークラスを使うか、どのビューを描画すべきか、を決めることもできます。\n \n .. _setting-view_variables:\n \n-Setting View Variables\n+ビュー変数の設定\n+----------------\n+\n+.. php:method:: set(string $var, mixed $value)\n+\n+``Controller::set()`` メソッドはコントローラからビューへデータを渡すための主な方法です。\n+``Controller::set()`` を使った後は、その変数はビュー内でアクセスできるようになります。 ::\n+\n+    // まずコントローラからデータを渡します\n+\n+    $this->set('color', 'pink');\n+\n+    // すると、ビューでそのデータを利用できます\n+    ?>\n+\n+    You have selected <?= h($color) ?> icing for the cake.\n+\n+``Controller::set()`` メソッドは最初のパラメータに連想配列も指定できます。\n+この方法はデータのかたまりを簡単にビューに割り当てる方法としてよく使われます。 ::\n+\n+    $data = [\n+        'color' => 'pink',\n+        'type' => 'sugar',\n+        'base_price' => 23.95\n+    ];\n+\n+    // $color 、 $type 、および $base_price を作成し\n+    // ビューで使用できるようになります\n+\n+    $this->set($data);\n+\n+ビューオプションの設定\n ----------------------\n \n-More on Controllers\n-===================\n+もしビュークラスや、レイアウト／テンプレートのパス、\n+ビューの描画時に使われるヘルパーやテーマをカスタマイズしたければ、\n+ビルダーを得るために ``viewBuilder()`` メソッドを使います。\n+このビルダーは、ビューが作成される前にビューのプロパティを設定するために使われます。 ::\n+\n+    $this->viewBuilder()\n+        ->helpers(['MyCustom'])\n+        ->theme('Modern')\n+        ->className('Modern.Admin');\n+\n+上記は、どのようにしてカスタムヘルパーを読み込み、テーマを設定し、\n+カスタムビュークラスを使用できるかを示しています。\n+\n+.. versionadded:: 3.1\n+    ViewBuilder は 3.1 で追加されました\n+\n+ビューの描画\n+------------\n+\n+.. php:method:: render(string $view, string $layout)\n+\n+``Controller::render()`` メソッドは各アクションの最後に自動的に呼ばれます。\n+このメソッドは (``Controller::set()`` で渡したデータを使って)\n+すべてのビューロジックを実行し、ビューを ``View::$layout`` 内に配置し、\n+エンドユーザーに表示します。\n+\n+render に使用されるデフォルトのビューファイルは、規約によって決定されます。\n+RecipesController の ``search()`` アクションがリクエストされたら、\n+**src/Template/Recipes/search.ctp** のビューファイルが描画されます。 ::\n+\n+    namespace App\\Controller;\n+\n+    class RecipesController extends AppController\n+    {\n+    // ...\n+        public function search()\n+        {\n+            // src/Template/Recipes/search.ctp のビューを描画します\n+            $this->render();\n+        }\n+    // ...\n+    }\n+\n+CakePHP は (``$this->autoRender`` に ``false`` をセットしない限り) アクションの後に\n+自動的に描画メソッドを呼び出しますが、 ``Controller::render()`` メソッドの第一引数に\n+ビュー名を指定することで、別のビューファイルを指定することができます。\n+\n+``$view`` が '/' で始まっていれば、ビューまたはエレメントのファイルが **src/Template** \n+フォルダからの相対パスであると見なします。これはエレメントを直接描画することができ、\n+AJAX 呼び出しではとても有用です。 ::\n+\n+    // src/Template/Element/ajaxreturn.ctp のエレメントを描画します\n+    $this->render('/Element/ajaxreturn');\n+ \n+``Controller::render()`` の第二引数 ``$layout``\n+はビューが描画されるレイアウトを指定することができます。\n+\n+特定のテンプレートの描画\n+~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+コントローラで、規約に従ったものではなく、別のビューを描画したいことがあるかもしれません。\n+これは ``Controller::render()`` を直接呼び出すことで可能です。一度 ``Controller::render()``\n+を呼び出すと、CakePHP は再度ビューを描画することはありません。 ::\n+\n+    namespace App\\Controller;\n+\n+    class PostsController extends AppController\n+    {\n+        public function my_action()\n+        {\n+            $this->render('custom_file');\n+        }\n+    }\n+\n+これは **src/Template/Posts/my_action.ctp** の代わりに\n+**src/Template/Posts/custom_file.ctp** を描画します。\n+\n+また、次のような書式で、プラグイン内のビューを描画することもできます。\n+``$this->render('PluginName.PluginController/custom_file')`` 。\n+例::\n+\n+    namespace App\\Controller;\n+\n+    class PostsController extends AppController\n+    {\n+        public function my_action()\n+        {\n+            $this->render('Users.UserDetails/custom_file');\n+        }\n+    }\n+    \n+これは **plugins/Users/src/Template/UserDetails/custom_file.ctp** を描画します。\n+\n+他のページへの転送\n+==================\n+\n+.. php:method:: redirect(string|array $url, integer $status)\n+\n+もっともよく使う、フロー制御のメソッドは ``Controller::redirect()`` です。\n+このメソッドは最初の引数に、CakePHP の相対 URL を受け取ります。\n+ユーザーが正常に注文を出した時、レシート画面にリダイレクトさせたいかもしれません。 ::\n+\n+    public function place_order()\n+    {\n+        // 注文終了のためのロジック\n+        if ($success) {\n+            return $this->redirect(\n+                ['controller' => 'Orders', 'action' => 'thanks']\n+            );\n+        }\n+        return $this->redirect(\n+            ['controller' => 'Orders', 'action' => 'confirm']\n+        );\n+    }\n+\n+このメソッドは適切なヘッダが設定されたレスポンスのインスタンスを返します。\n+ビューの描画を抑制し、ディスパッチャが実際にリダイレクトを行えるようにするために\n+このレスポンスのインスタンスを return すべきです。\n+\n+$url 引数に相対 URL または絶対 URL を指定することもできます。 ::\n+\n+    return $this->redirect('/orders/thanks');\n+    return $this->redirect('http://www.example.com');\n+\n+アクションにデータを渡すこともできます。 ::\n+\n+    return $this->redirect(['action' => 'edit', $id]);\n+\n+``Controller::redirect()`` の第二引数では、リダイレクトに伴う\n+HTTP ステータスコードを定義することができます。リダイレクトの性質によっては、\n+301 (moved parmanently) または 303 (see other) を使ったほうが良いでしょう。\n+\n+リファラのページにリダイレクトする必要があれば、次のようにできます。 ::\n+\n+    return $this->redirect($this->referer());\n+\n+クエリ文字列とハッシュを使う例は次のようになります。 ::\n+\n+    return $this->redirect([\n+        'controller' => 'Orders',\n+        'action' => 'confirm',\n+        '?' => [\n+            'product' => 'pizza',\n+            'quantity' => 5\n+        ],\n+        '#' => 'top'\n+    ]);\n+\n+生成される URL はこのようになります。 ::\n+\n+    http://www.example.com/orders/confirm?product=pizza&quantity=5#top\n+\n+同じコントローラの他のアクションへの転送\n+----------------------------------------\n+\n+.. php:method:: setAction($action, $args...)\n+\n+もし、現在のアクションを *同じ* コントローラの異なるアクションにフォワードする必要があれば、\n+リクエストオブジェクトを更新し、描画されるビューテンプレートを変更し、そして\n+指定のアクションに実行をフォワードするために ``Controller::setAction()`` を使用します。 ::\n+\n+    // delete アクションから、更新後の一覧ページを描画することができます。\n+    $this->setAction('index');\n+\n+\n+追加のモデル読み込み\n+====================\n+\n+.. php:method:: loadModel(string $modelClass, string $type)\n+\n+``loadModel`` 関数は、コントローラのデフォルト以外のモデル\n+テーブル／コレクション を使う必要がある時に便利です。 ::","path":"ja/controllers.rst","position":385,"original_position":385,"commit_id":"5a2b22f4dfd49ae0aa85498ebbc3c69e6923774b","original_commit_id":"5a2b22f4dfd49ae0aa85498ebbc3c69e6923774b","user":{"login":"okinaka","id":120861,"avatar_url":"https://avatars.githubusercontent.com/u/120861?v=3","gravatar_id":"","url":"https://api.github.com/users/okinaka","html_url":"https://github.com/okinaka","followers_url":"https://api.github.com/users/okinaka/followers","following_url":"https://api.github.com/users/okinaka/following{/other_user}","gists_url":"https://api.github.com/users/okinaka/gists{/gist_id}","starred_url":"https://api.github.com/users/okinaka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/okinaka/subscriptions","organizations_url":"https://api.github.com/users/okinaka/orgs","repos_url":"https://api.github.com/users/okinaka/repos","events_url":"https://api.github.com/users/okinaka/events{/privacy}","received_events_url":"https://api.github.com/users/okinaka/received_events","type":"User","site_admin":false},"body":"修正点ではなく質問があります。\r\n\r\n「モデル テーブル／コレクション」は、「a model table/collection」の直訳だと思いますが、\r\n「コレクション」が何を意味しているのかが分かりませんでした。\r\n複数のモデル(テーブル)をロードすることができることを意味しているのでしょうか？\r\n","created_at":"2016-07-01T04:58:11Z","updated_at":"2016-07-01T04:58:11Z","html_url":"https://github.com/cakephp/docs/pull/4132#discussion_r69247493","pull_request_url":"https://api.github.com/repos/cakephp/docs/pulls/4132","_links":{"self":{"href":"https://api.github.com/repos/cakephp/docs/pulls/comments/69247493"},"html":{"href":"https://github.com/cakephp/docs/pull/4132#discussion_r69247493"},"pull_request":{"href":"https://api.github.com/repos/cakephp/docs/pulls/4132"}}},"pull_request":{"url":"https://api.github.com/repos/cakephp/docs/pulls/4132","id":75833498,"html_url":"https://github.com/cakephp/docs/pull/4132","diff_url":"https://github.com/cakephp/docs/pull/4132.diff","patch_url":"https://github.com/cakephp/docs/pull/4132.patch","issue_url":"https://api.github.com/repos/cakephp/docs/issues/4132","number":4132,"state":"open","locked":false,"title":"[ja] translate controllers.rst","user":{"login":"chinpei215","id":7399393,"avatar_url":"https://avatars.githubusercontent.com/u/7399393?v=3","gravatar_id":"","url":"https://api.github.com/users/chinpei215","html_url":"https://github.com/chinpei215","followers_url":"https://api.github.com/users/chinpei215/followers","following_url":"https://api.github.com/users/chinpei215/following{/other_user}","gists_url":"https://api.github.com/users/chinpei215/gists{/gist_id}","starred_url":"https://api.github.com/users/chinpei215/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chinpei215/subscriptions","organizations_url":"https://api.github.com/users/chinpei215/orgs","repos_url":"https://api.github.com/users/chinpei215/repos","events_url":"https://api.github.com/users/chinpei215/events{/privacy}","received_events_url":"https://api.github.com/users/chinpei215/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-06-30T14:51:26Z","updated_at":"2016-07-01T04:58:11Z","closed_at":null,"merged_at":null,"merge_commit_sha":"57ec75bedae69394ea11f67ec1e5bfc848818675","assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/cakephp/docs/milestones/1","html_url":"https://github.com/cakephp/docs/milestones/3.x","labels_url":"https://api.github.com/repos/cakephp/docs/milestones/1/labels","id":629438,"number":1,"title":"3.x","description":"","creator":{"login":"markstory","id":24086,"avatar_url":"https://avatars.githubusercontent.com/u/24086?v=3","gravatar_id":"","url":"https://api.github.com/users/markstory","html_url":"https://github.com/markstory","followers_url":"https://api.github.com/users/markstory/followers","following_url":"https://api.github.com/users/markstory/following{/other_user}","gists_url":"https://api.github.com/users/markstory/gists{/gist_id}","starred_url":"https://api.github.com/users/markstory/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markstory/subscriptions","organizations_url":"https://api.github.com/users/markstory/orgs","repos_url":"https://api.github.com/users/markstory/repos","events_url":"https://api.github.com/users/markstory/events{/privacy}","received_events_url":"https://api.github.com/users/markstory/received_events","type":"User","site_admin":false},"open_issues":31,"closed_issues":1749,"state":"open","created_at":"2014-04-14T15:44:13Z","updated_at":"2016-07-01T03:00:52Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/cakephp/docs/pulls/4132/commits","review_comments_url":"https://api.github.com/repos/cakephp/docs/pulls/4132/comments","review_comment_url":"https://api.github.com/repos/cakephp/docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/cakephp/docs/issues/4132/comments","statuses_url":"https://api.github.com/repos/cakephp/docs/statuses/5a2b22f4dfd49ae0aa85498ebbc3c69e6923774b","head":{"label":"chinpei215:3.0-ja-controller","ref":"3.0-ja-controller","sha":"5a2b22f4dfd49ae0aa85498ebbc3c69e6923774b","user":{"login":"chinpei215","id":7399393,"avatar_url":"https://avatars.githubusercontent.com/u/7399393?v=3","gravatar_id":"","url":"https://api.github.com/users/chinpei215","html_url":"https://github.com/chinpei215","followers_url":"https://api.github.com/users/chinpei215/followers","following_url":"https://api.github.com/users/chinpei215/following{/other_user}","gists_url":"https://api.github.com/users/chinpei215/gists{/gist_id}","starred_url":"https://api.github.com/users/chinpei215/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chinpei215/subscriptions","organizations_url":"https://api.github.com/users/chinpei215/orgs","repos_url":"https://api.github.com/users/chinpei215/repos","events_url":"https://api.github.com/users/chinpei215/events{/privacy}","received_events_url":"https://api.github.com/users/chinpei215/received_events","type":"User","site_admin":false},"repo":{"id":56435754,"name":"docs","full_name":"chinpei215/docs","owner":{"login":"chinpei215","id":7399393,"avatar_url":"https://avatars.githubusercontent.com/u/7399393?v=3","gravatar_id":"","url":"https://api.github.com/users/chinpei215","html_url":"https://github.com/chinpei215","followers_url":"https://api.github.com/users/chinpei215/followers","following_url":"https://api.github.com/users/chinpei215/following{/other_user}","gists_url":"https://api.github.com/users/chinpei215/gists{/gist_id}","starred_url":"https://api.github.com/users/chinpei215/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chinpei215/subscriptions","organizations_url":"https://api.github.com/users/chinpei215/orgs","repos_url":"https://api.github.com/users/chinpei215/repos","events_url":"https://api.github.com/users/chinpei215/events{/privacy}","received_events_url":"https://api.github.com/users/chinpei215/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/chinpei215/docs","description":"CakePHP CookBook","fork":true,"url":"https://api.github.com/repos/chinpei215/docs","forks_url":"https://api.github.com/repos/chinpei215/docs/forks","keys_url":"https://api.github.com/repos/chinpei215/docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chinpei215/docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chinpei215/docs/teams","hooks_url":"https://api.github.com/repos/chinpei215/docs/hooks","issue_events_url":"https://api.github.com/repos/chinpei215/docs/issues/events{/number}","events_url":"https://api.github.com/repos/chinpei215/docs/events","assignees_url":"https://api.github.com/repos/chinpei215/docs/assignees{/user}","branches_url":"https://api.github.com/repos/chinpei215/docs/branches{/branch}","tags_url":"https://api.github.com/repos/chinpei215/docs/tags","blobs_url":"https://api.github.com/repos/chinpei215/docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chinpei215/docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chinpei215/docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/chinpei215/docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chinpei215/docs/statuses/{sha}","languages_url":"https://api.github.com/repos/chinpei215/docs/languages","stargazers_url":"https://api.github.com/repos/chinpei215/docs/stargazers","contributors_url":"https://api.github.com/repos/chinpei215/docs/contributors","subscribers_url":"https://api.github.com/repos/chinpei215/docs/subscribers","subscription_url":"https://api.github.com/repos/chinpei215/docs/subscription","commits_url":"https://api.github.com/repos/chinpei215/docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/chinpei215/docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/chinpei215/docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/chinpei215/docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/chinpei215/docs/contents/{+path}","compare_url":"https://api.github.com/repos/chinpei215/docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chinpei215/docs/merges","archive_url":"https://api.github.com/repos/chinpei215/docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chinpei215/docs/downloads","issues_url":"https://api.github.com/repos/chinpei215/docs/issues{/number}","pulls_url":"https://api.github.com/repos/chinpei215/docs/pulls{/number}","milestones_url":"https://api.github.com/repos/chinpei215/docs/milestones{/number}","notifications_url":"https://api.github.com/repos/chinpei215/docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chinpei215/docs/labels{/name}","releases_url":"https://api.github.com/repos/chinpei215/docs/releases{/id}","deployments_url":"https://api.github.com/repos/chinpei215/docs/deployments","created_at":"2016-04-17T12:40:59Z","updated_at":"2016-04-17T12:41:02Z","pushed_at":"2016-06-30T14:50:25Z","git_url":"git://github.com/chinpei215/docs.git","ssh_url":"git@github.com:chinpei215/docs.git","clone_url":"https://github.com/chinpei215/docs.git","svn_url":"https://github.com/chinpei215/docs","homepage":"http://book.cakephp.org","size":44935,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":false,"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":"cakephp:3.0","ref":"3.0","sha":"7a9a0521d20830ff9735c27d58978ef6ec7ec748","user":{"login":"cakephp","id":23666,"avatar_url":"https://avatars.githubusercontent.com/u/23666?v=3","gravatar_id":"","url":"https://api.github.com/users/cakephp","html_url":"https://github.com/cakephp","followers_url":"https://api.github.com/users/cakephp/followers","following_url":"https://api.github.com/users/cakephp/following{/other_user}","gists_url":"https://api.github.com/users/cakephp/gists{/gist_id}","starred_url":"https://api.github.com/users/cakephp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cakephp/subscriptions","organizations_url":"https://api.github.com/users/cakephp/orgs","repos_url":"https://api.github.com/users/cakephp/repos","events_url":"https://api.github.com/users/cakephp/events{/privacy}","received_events_url":"https://api.github.com/users/cakephp/received_events","type":"Organization","site_admin":false},"repo":{"id":1514950,"name":"docs","full_name":"cakephp/docs","owner":{"login":"cakephp","id":23666,"avatar_url":"https://avatars.githubusercontent.com/u/23666?v=3","gravatar_id":"","url":"https://api.github.com/users/cakephp","html_url":"https://github.com/cakephp","followers_url":"https://api.github.com/users/cakephp/followers","following_url":"https://api.github.com/users/cakephp/following{/other_user}","gists_url":"https://api.github.com/users/cakephp/gists{/gist_id}","starred_url":"https://api.github.com/users/cakephp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cakephp/subscriptions","organizations_url":"https://api.github.com/users/cakephp/orgs","repos_url":"https://api.github.com/users/cakephp/repos","events_url":"https://api.github.com/users/cakephp/events{/privacy}","received_events_url":"https://api.github.com/users/cakephp/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/cakephp/docs","description":"CakePHP CookBook","fork":false,"url":"https://api.github.com/repos/cakephp/docs","forks_url":"https://api.github.com/repos/cakephp/docs/forks","keys_url":"https://api.github.com/repos/cakephp/docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cakephp/docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cakephp/docs/teams","hooks_url":"https://api.github.com/repos/cakephp/docs/hooks","issue_events_url":"https://api.github.com/repos/cakephp/docs/issues/events{/number}","events_url":"https://api.github.com/repos/cakephp/docs/events","assignees_url":"https://api.github.com/repos/cakephp/docs/assignees{/user}","branches_url":"https://api.github.com/repos/cakephp/docs/branches{/branch}","tags_url":"https://api.github.com/repos/cakephp/docs/tags","blobs_url":"https://api.github.com/repos/cakephp/docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cakephp/docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cakephp/docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/cakephp/docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cakephp/docs/statuses/{sha}","languages_url":"https://api.github.com/repos/cakephp/docs/languages","stargazers_url":"https://api.github.com/repos/cakephp/docs/stargazers","contributors_url":"https://api.github.com/repos/cakephp/docs/contributors","subscribers_url":"https://api.github.com/repos/cakephp/docs/subscribers","subscription_url":"https://api.github.com/repos/cakephp/docs/subscription","commits_url":"https://api.github.com/repos/cakephp/docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/cakephp/docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/cakephp/docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/cakephp/docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/cakephp/docs/contents/{+path}","compare_url":"https://api.github.com/repos/cakephp/docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cakephp/docs/merges","archive_url":"https://api.github.com/repos/cakephp/docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cakephp/docs/downloads","issues_url":"https://api.github.com/repos/cakephp/docs/issues{/number}","pulls_url":"https://api.github.com/repos/cakephp/docs/pulls{/number}","milestones_url":"https://api.github.com/repos/cakephp/docs/milestones{/number}","notifications_url":"https://api.github.com/repos/cakephp/docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cakephp/docs/labels{/name}","releases_url":"https://api.github.com/repos/cakephp/docs/releases{/id}","deployments_url":"https://api.github.com/repos/cakephp/docs/deployments","created_at":"2011-03-23T04:54:13Z","updated_at":"2016-06-30T23:57:57Z","pushed_at":"2016-07-01T03:00:37Z","git_url":"git://github.com/cakephp/docs.git","ssh_url":"git@github.com:cakephp/docs.git","clone_url":"https://github.com/cakephp/docs.git","svn_url":"https://github.com/cakephp/docs","homepage":"http://book.cakephp.org","size":54130,"stargazers_count":525,"watchers_count":525,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2080,"mirror_url":null,"open_issues_count":45,"forks":2080,"open_issues":45,"watchers":525,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/cakephp/docs/pulls/4132"},"html":{"href":"https://github.com/cakephp/docs/pull/4132"},"issue":{"href":"https://api.github.com/repos/cakephp/docs/issues/4132"},"comments":{"href":"https://api.github.com/repos/cakephp/docs/issues/4132/comments"},"review_comments":{"href":"https://api.github.com/repos/cakephp/docs/pulls/4132/comments"},"review_comment":{"href":"https://api.github.com/repos/cakephp/docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/cakephp/docs/pulls/4132/commits"},"statuses":{"href":"https://api.github.com/repos/cakephp/docs/statuses/5a2b22f4dfd49ae0aa85498ebbc3c69e6923774b"}}}}
{"actor":{"display_login":"okinaka"}}