cakephpを使用し、チュートリアルに従い、実装手順を整理する。
cakephpのチュートリアル
https://book.cakephp.org/3/ja/tutorials-and-examples/cms/articles-controller.html
cakephpの特徴として命名規則がある。
https://book.cakephp.org/3/ja/intro/conventions.html
cakephpの準備 略
https://book.cakephp.org/3/ja/tutorials-and-examples/cms/installation.html
上記であるが、どの環境にどのようにセットアップするかの記載は雑である。
上記通りにしても動かない。
環境作成後、以下の流れで行えば動くプログラムができる。
データの作成
データベースの設定
config/app.php
https://book.cakephp.org/3/ja/tutorials-and-examples/cms/database.html
モデルの作成
例) ArticlesTable.php
コントローラの作成
urlの構成が決まる。
ユーザーが www.example.com/articles/index (www.example.com/articles と同じ) をリクエストした場合、CakePHP は、 ArticlesController の index メソッドを呼ぶ。
命名規則によって自動的にロードされる Articles モデルを使用して、 データベースからページ分けされた記事を取得する。次に (これからすぐに作成する) テンプレートの中に記事を渡すために set() を使用する。CakePHP は、 コントローラーのアクションが完了した後、自動的にテンプレートを描画する。
テンプレート作成
CakePHP のテンプレートファイルは、 src/Template の中で 対応するコントローラーの名前をつけたフォルダーの中に保存される。 今回の場合、 'Articles' という名前のフォルダーを作成する必要がある。
この時点で、ブラウザーで http://localhost:8765/articles/index を 見ることができる。
以下、view、add、deleteも同じようにして書ける。
バリデーションはModelにバリデーションメソッドを追加する。
記事の検索について
http://localhost:8765/articles/tagged/funny/cat/gifs のような URL
基本は xxxx/Model名/Controllerのメソッド名で、cakephpは見れるが、変更したい場合は、config/routes.phpで変える。
// タグ付けられたアクションのために追加された新しいルート。 // 末尾の `*` は、このアクションがパラメーターを渡されることを // CakePHP に伝えます。 Router::scope( '/articles', ['controller' => 'Articles'], function ($routes) { $routes->connect('/tagged/*', ['action' => 'tags']); } );