フレームワークの調査 cakephp

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']);
    }
);