【Laminas】コントローラーとビュースクリプトを作る!

Laminas

前回記事(【Laminas】modules.config.phpへの記述とルーティングの設定)の続きで、

コントローラーとビュースクリプトを作ります!

コントローラーを作る

AlbumController.phpを作ります。

場所は、

laminas-mvc-tutorials/module/Album/src/Controller/AlbumController.php

です。

記述内容は、

AlbumController.php

<?php
namespace Album\Controller;

use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;

class AlbumController extends AbstractActionController
{
    public function indexAction()
    {
    }

    public function addAction()
    {
    }

    public function editAction()
    {
    }

    public function deleteAction()
    {
    }
}

と記述します。内容の説明をしていきます。

コントローラー名について

Laminasで使うコントローラー名は、AlbumController.phpのように、

{コントローラー名}Controller.phpという形にします。頭文字は大文字です!

②コントローラークラスについて

AbstractActionControllerクラスをextendsしてAlbumControllerを実装します。

Laminasで提供されるコントローラークラスは、

AbstractActionController

②AbstractRestfulController

の2種類のようですが、今回はRestfulではないので、AbstractActionControllerを使います。

③アクションメソッドについて

名前の付け方は、{アクション名}Action()で、頭文字は小文字になるので注意してくださいね!

今回は、

1、indexAction() =>デフォルトのページを表示するアクションメソッド

2、addAction() =>データを追加するページを表示するアクションメソッド

3、editAction() =>データを編集するページを表示するアクションメソッド

4、deleteAction() =>データを削除するページを表示するアクションメソッド

の4つを作ります。これらは行いたいアクションに合わせた名前をつけてください。

それぞれのメソッド内にmodelファイルを通してデータベースに対して、selectやinsert、update、そしてdeleteを行う内容のコードと、それらをブラウザ上に表示するコードを記述していきます。

④ViewModelクラスについて

ViewModelは、ビュースクリプトに対して、配列でブラウザ表示するデータを渡します。

記述方法は、例えば、indexAction()内だと

 public function indexAction()
    {
        return new ViewModel([ 'test' => $test ]);
    }

のような記述になります。具体的な説明は、実際にビュースクリプトに記述するときにお伝えします。

ビュースクリプトを作る

ここからは、ブラウザに表示するためのスクリプトを書いていきます。

ビュースクリプトの位置は、

Album
├── config
│   └── module.config.php
├── src
│   ├── Controller
│   │   └── AlbumController.php
│   ├── Form
│   ├── Model
│   └── Module.php
└── view
    └── album
        └── album
            ├── add.phtml
            ├── delete.phtml
            ├── edit.phtml
            └── index.phtml

空のファイル、add.phtmldelete.phtmledit.phtmlindex.phtmlを作りましょう!

今回はここまでです。お疲れ様でした!

次は、データベースとモデルを作っていきます!

コメント

タイトルとURLをコピーしました