laravel専門用語集( 混乱するので、自分用の備忘録として)

laravel専門用語集( 混乱するので、自分用の備忘録として)

DI(Dependency Injection、依存性注入)
実装名ではなく、概念の話です。
クラスの単体テストをする時に、別のクラスをnewでオブジェクト生成すると別クラスの実装に依存してしまい、単体テストにならない。
なので、オブジェクト生成は外部で行い、引数でもらうという方式。
クラス内部コードでは、クラス名は定義されていないので、どんなクラスが来ても大丈夫!もちろん外部クラスにメソッドが定義されてないとエラーになるけどね…。
感覚的には「オブジェクトその物」のカプセル化っぽい?
ネーミング的には「依存性除外」もしくは「オブジェクト外注」って感じ。

IoC(Inversion of Cotrol、制御の反転)コンテナ(laravel5からは「サービスコンテナ」という名称に変更)
イメージ的には、ライブラリのように機能を追加してれるもの
composerでインストールして、your_project/config/app.phpに記述されているprovidersとaliases配列内に追加する事で使えるようになる。
上記のDIの外側のクラス。

facade(ファサード、建物の正面)
イメージ的には、上記のサービスコンテナの静的メソッド。
普通の関数と同じく、引数と戻り値で処理をお願いする。

Eloquent(エロクウェント、雄弁な)
エロ・クエストではない(^_^;)
モデルのベースとなるクラス。laravelのモデル・クラスは、Eloquentクラスを継承している。
いわゆるORマッパーとなるクラス

Mass Assignment(マス・アサイメント)
Eloquent機能の一種。複数のフィールドに値を入れられる。レコード生成時・更新時に便利。fillableでアクセス出来るフィールドを制限するセキュリティ機能付き(不正リクエスト時に役に立つ!)

スコープ
変数のスコープ(有効範囲)かと思いきや、laravelではモデルのメソッド(scope + メソッド名)の事。
通常の関数と同じく、あらかじめSQLを登録を登録しておいて、コールするだけで特定のレコードを取得できる(modelに任せて、Controller側では呼ぶだけ!)

ヘルパ関数
日本語のニュアンスだと、便利な関数?
よく使う処理とか関数化していた場合、ヘルプ関数と呼んだりする。

autoload
通常はクラスをインクルードしないと使えないけど、自動的に読み込んでくれるPHP5.3以降の機能。
laravelではyour_project/composer.jsonに、クラスのフォルダ(ファイル)パスを指定して、以下のコマンドを実行すると、自動的に読み込んでくれるらしい。
composer dump-autoload

artisan(アーティザン、熟練工)
laravelのコマンドラインツール。基本的な操作はコマンドライン上で
php artisan コマンド名 オプション
といった感じで行われる。

tinker(ティンカー、不器用な職人)
サンドボックス的に作ったクラスの挙動をみたりするコマンドラインツール。
使わなくても、あまり困らない。

blade(ブレード、刀身)
laravelのビュー・テンプレート・エンジン。
ファイル名は「クラス名.blade.php」
ブラウザへの表示方法は、これを使って記述する

Schema builder(スキーマビルダー、図表構築器)
laravelでは、SQLを直接書かずにテーブル定義をPHP上で記述する。
Schema::create()でテーブル定義
Schema::dropでテーブル削除
の処理を記述する。

migration(マイグレーション、移動・入出管理)
Migrationは、そのテーブル定義クラスのベースとなるクラス。
「php artisan make:migration create_テーブル名s_table –create=テーブル名」で生成する。
※厳密には、マイグレーション名とテーブル名は違っていても大丈夫だけど、混乱するだけなので同名にしておくべき!

ファイル自体は、/database/migrations/に生成される。
上記のSchema Builderは、この中で記述される
MySQLに反映させるには、以下のコマンドを実行する
php artisan migrate

Seeder(シーダー、種まき機)
レコード挿入機能(INSERTと同じ)
SQLではなくPHPに記述したデータを、MySQLのレコードに挿入する。
migrattion & Seederにより、PHPだけでデータベースまで記述できるのが利点。

middleware(ミドルウェア、旧名はフィルタ)
HTTPリクエスト・レスポンスした時にフィルタリングする機能。
具体的には、認証済みのユーザのみ表示・時間帯によって表示を変更するなど

VIEW PARTIAL(ビュー・パーシャル、ビューの分割
ほとんど同じ画面の場合(新規入力・編集)は、bladeファイルを外出しにして@includeで読み込んだ方がスッキリする。

Homestead(ホームステッド、庭付き家=生活に必要な場所)
Vagrant Box(仮想環境上)で動作するLaravel実行環境のイメージ。
使ってもいいけど、普通にLAMP環境に構築した方が楽(^_^;)