【Laminas】データベースを作る

Laminas

前回(【Laminas】コントローラーとビュースクリプトを作る!)の続きで、データベースを作りましょう!

今回の流れは

①SQLiteでデータベースを作る

データベースを扱うDBコンポーネントをインストールする

③PDO接続の設定をする

です。それでは始めましょう!

SQLiteでデータベースを作る

このチュートリアルで使用するデータベースは、SQLiteです。

参考までに、SQLite公式ページ

ちなみに自分はsqlite3のversion3.32.3をインストールして使用しています。(少し古いです。)

SQLiteで出来ない方は、こちら(Laminas公式サイト)に代替コマンドが載っていますので、そちらでデータベースを作ってください。

まず、データベースの内容はこちら。コピペでOKです。sql文の説明は割愛します。

schema.sql

CREATE TABLE album (id INTEGER PRIMARY KEY AUTOINCREMENT, artist varchar(100) NOT NULL, title varchar(100) NOT NULL);
INSERT INTO album (artist, title) VALUES ('The Military Wives', 'In My Dreams');
INSERT INTO album (artist, title) VALUES ('Adele', '21');
INSERT INTO album (artist, title) VALUES ('Bruce Springsteen', 'Wrecking Ball (Deluxe)');
INSERT INTO album (artist, title) VALUES ('Lana Del Rey', 'Born To Die');
INSERT INTO album (artist, title) VALUES ('Gotye', 'Making Mirrors');

場所は、ルートディレクトリのdata内に作ってください。

laminas MVC skeleton
├── COPYRIGHT.md
├── Dockerfile
├── LICENSE.md
├── README.md
├── Vagrantfile
├── bin
├── composer.json
├── composer.lock
├── config
├── data
│   ├── cache
│   └── schema.sql  //こちらです!
├── docker-compose.yml
├── module
├── phpcs.xml
├── phpunit.xml.dist
├── psalm.xml
├── public
└── vendor

ここまで作ったら、ターミナルで、(実行する場所はルートディレクトリ内です。)

$ sqlite3 data/laminastutorial.db < data/schema.sql

と入力し、dataディレクトリ内にlaminastutorial.dbを作ります。

・・・
├── data
│   ├── cache
│   ├── laminastutorial.db   //これが生成されます。
│   └── schema.sql
・・・

データベースを作ることができました!

データベースを扱うDBコンポーネントをインストールする

次に、modules.config.phpを確認します。

return [
    'Laminas\Router',
    'Laminas\Validator',
    'Application',
    'Album',  
];

ここに’Laminas\Db’がないです。つまり、’Laminas\Db’コンポーネントをインストールしましょう。

ターミナルを開き、ルートディレクトリ内で、

$ composer require laminas/laminas-db

と入力し、実行しましょう。以下の質問が来ますが、

Please select which config file you wish to inject 'Laminas\Db' into:
  [0] Do not inject
  [1] config/modules.config.php
  [2] .....

1を選択すると、modules.config.phpに以下のように反映されます。

return [
    'Laminas\Db',           //ここです。
    'Laminas\Router',
    'Laminas\Validator',
    'Application',
    'Album',
];

これでDBコンポーネントが使えるようになりました。記述方法は、次の記事のモデル作成の時に説明します。

PDO接続の設定をする

config/autoload/global.phpのファイルを開き、

'db' => [
        'driver' => 'Pdo',
        'dsn'    => sprintf('sqlite:%s/data/laminastutorial.db', realpath(getcwd())),
    ],

をreturn [];の配列内に記述するだけです。

global.phpは、LaminasのModuleManagerに読み込まれ、データベース接続方法を渡します。

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

次は、モデルを作っていきます!


コメント

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