副題は「Web 職人好みの新世代 PHP フレームワーク」。対応バージョンは Ver.5.1 LTS である。
2016 年当時の記載であるから、2020 年の現在、読むときは相当な注意が必要である。 2020 年 10 月 22 日、Laravel 8 がリリースされている。本書の Ver 5.1 LTS は2015年9月リリースであったから、 セキュリティフィックスの3年間でさえ過ぎている。
以下「現在」とは、2020 年 10 月を指している。
p.027 で、日本語化には comja5 という、コメントを日本語に翻訳するパッケージのインストールが進められている。 しかし、現在では翻訳機能の更新は停止している。
p.028 のディレクトリ構造は、現在の PHP とは異なっている。現在の Laravel
のバージョンは、
$ laravel new dirname
で作ったディレクトリに行って、 $ php
artisan --version
を打つ。この結果は
Laravel Framework 8.11.2
このときのディレクトリ構造はこうなっている。
.editorconfig .env .env.example .gitattributes .gitignore .styleci.yml README.md app/ artisan bootstrap/ composer.json composer.lock config/ database/ package.json phpunit.xml public/ resources/ routes/ server.php storage/ tests/ vendor/ webpack.mix.js
エラー画面を見やすくするためのパッケージ Whoops が p.031 で紹介されている。 これは現在(2020-10-25)でも利用できるようだ。
$ php artisan serve --port=xxxx
でポート番号が指定できることが p.033
に記載されている。私は現在、いろいろなアプリケーションを localhost
で起動させているので、ポート番号がかぶらないようにするのが大変だ。これは覚えておこう。
Laravel に標準搭載されているテンプレートエンジンは Blade である。これは使えるが、 他にも Smarty、Twig などがある。
OR マッピング (ORM) とは、データベースとアプリケーションの間に「オブジェクト」という物を介して融通させる技術だと理解している。 Laravel の OR マッピングは Eloquent を使っていると p.046 では書かれている。これが現在でも使えるかどうか確かめたら、 使えるようだ。もっといえば、Laravel とは独立に ORM に Eloquent が使える。
p.144 で、N:N の relation を説明している。たとえば、authors というテーブルに、 次の属性があるとする。
一方で、atuhor_type というテーブルには次の属性があるとする。
さて、本書にはどういうことが書いてあるか。
例えば、「性別」「世代」「存命中かどうか」など、著者のタイプ(author_type テーブル)を 著者(authors テーブル)に対して、いくつでも自由に設定できるケースを想定してください。 このリレーションを Many to Many リレーションと呼びます。
ここで必要となる中間テーブルには、 author_author_type となっている。最初のアンダースコアは、 中間テーブルを作る場合の第1のテーブル名と第2のテーブル名をつなぐ字で、次のアンダースコアは、 もとのテーブルの名前にある。この author_author_type の属性は次のようになるだろう。
私がちょっと驚いたのは、次の例だった。リスト 3.133 : 多対多のリレーション取得の例である。
Author::find(1)->types()->lists('name'); // [0 => "男", 1 => "存命中"]
このコメントに入っている、0 や 1 は、おそらく配列のインデックスなのだろう。最初は、 author_types の id かと勘違いしていた。データベースの id ではまず、0 はないからだ。 そして、author の id = 1 にある作家は、男であり、存命中であるという情報がみつかったわけだ。
普通データベース設計なら、「性別」という属性を設け、1、2、3、などで区別する(たとえば1 = 男、 2 = 女、3 = 不詳、など)ここではどんな属性でもいいということを表しているから、 頭を切り替えないといけない。
書 名 | Laravel リファレンス |
著 者 | 新原 雅司、竹澤 有貴、川瀬 裕久、大村 創太郎、松尾 大 |
発行日 | 2016 年 1 月 11 日 初版第1刷 |
発行所 | インプレス |
定 価 | 4200円(税別) |
サイズ | 版 |
ISBN | 978-4-8443-3945-8 |
備 考 | 越谷市立図書館で借りて読む |
まりんきょ学問所 > コンピュータの部屋 > コンピュータの本 > Laravel > 新原 雅司、竹澤 有貴、川瀬 裕久、大村 創太郎、松尾 大:Laravel リファレンス