前回(【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に読み込まれ、データベース接続方法を渡します。
今回はここまでです。お疲れ様でした!
次は、モデルを作っていきます!
コメント