PHPのフレームワークLaravel 5を学習しているのですが、ITを長年やっていても分からない用語だらけなのでまとめてみました。
目次
Laravel(ララベル)とは
Laravel は、MVCモデルを採用したWebアプリケーション開発用の無料かつオープンソースのフレームワークです。
LaravelはMITライセンスの下でリリースされており、そのソースコードはPHPで書かれておりGitHubにホスティングされています。
マイクロソフトの.NETの開発に関わっていた Taylor Otwell が開発しています。
CakePHP、Yii、CodeIgniter、Zend Frameworkなど数あるPHPのフレームワークの中でも最有力なものの一つです。
以下は、Google Trendからの引用ですが、Laravelが注目されていることがわかると思います。
(出典:Google Trend)
Laravelの人気度について以下の資料もあります。
(出典:https://smronju.wordpress.com/2014/01/07/get-started-with-the-most-popular-php-framework-laravel/)
ちなみに、Laravelはナルニア国物語の王都ケア・パラベルにちなんで名付けられたものです。
Laravel用語集
Laravelでよく出てくる用語集をまとめてみました。
Homestead (ホームステッド)
HomesteadはLaravelの公式のVagrant Boxです。
以下のファイルがあらかじめ梱包されています。
- Ubuntu 14.04
- Git
- PHP 5.6 / 7.0
- Xdebug
- HHVM
- Nginx
- MySQL
- Sqlite3
- Postgres
- Composer
- Node (With PM2, Bower, Grunt, and Gulp)
- Redis
- Memcached (PHP 5.x Only)
- Beanstalkd
- Laravel Envoy
- Blackfire Profiler
Laravelを学習していて、最初にHomesteadが出てきて挫折しそうになりますが、まったくHomesteadを使わなくても問題ありません。
実際、私が現在開発しているプロジェクトではHomesteadは使っていません。
だから、初めて何かプロジェクトを始めるときは無視して参考程度でも大丈夫です。
Artisan (アルチザン)
ArtisanとはLaravelを構成しているコマンドラインインターフェイスの名前です。
「アルチザン」は、フランス語で職人という意味です。
Artisanはよく使うので、以下にまとめてみました。
Eloquent (エロクエント)
EloquentはLaravelのオブジェクト関係マッピング、ORMです。
オブジェクト関係マッピング(Object-relational mapping、O/RM、ORM)とは、データベースとオブジェクト指向プログラミング言語の間の非互換なデータを変換するプログラミング技法です。
Blade (ブレード)
BladeはシンプルながらパワフルなLaravelのテンプレートエンジンです。
他の人気のあるPHPテンプレートエンジンとは異なり、ビューの中にPHPを直接記述することを許しています。
BladeはMVCフレームワークの中のView、つまりユーザーインターフェース側をコーディングするときに使います。
Elixir (エリクサー)
ElixirはgulpをLaravelで使いやすくするためにラッピングしたツールです。
gulpはnode.js上でタスクを自動実行してくれる、タスクランナーです。
フロントエンド(CSS/JS)とバックエンド(Laravel)を繋いでくれます。
Elixirについては、以下にまとめてみました。
Migration (マイグレーション)
マイグレーションとはLaravelではデータベースのテーブルを作成することを言います。
以下のようにartisanコマンドを使います。
# php artisan migrate
Migration table created successfully.
Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table
Migrated: 2015_12_09_013404_create_articles_table
Seed (シード)
シードとはLaravelではデータベースのテーブルにレコードを挿入することを言います。
Service Providers (サービスプロバイダ)
Laravelはサービス毎に初期処理を定義し、実行する仕組みを持っています。
その仕組みや、実際に初期処理の実装を行うクラスのことをサービスプロバイダーと言います。
全てのサービスプロバイダーは、config/app.php設定ファイルで登録されています。
新たなサービスが必要になれば、このファイルにクラスを追加していきます。
IoCコンテナ
IoCコンテナとはInversion of Control(制御の反転)コンテナのことです。
IoCコンテナは、必要な時に必要な場所で、インスタンスを渡してくれる仕組みです。
Facade (ファサード)
ファサードはアプリケーションのIoCコンテナに用意したクラスに「静的」なインターフェイスを提供してくれます。
Laravelの「Facade(ファサード)」は、IoCコンテナー下で動作しているクラスに対し、"static proxies"として動作しています。
これにより伝統的な静的メソッドよりも、簡潔で、テストの行いやすさと柔軟性を保ちながらも、記述的な書き方が行えます。
Middleware (ミドルウェア)
HTTPミドルウェアとも呼ばれることがあります。
リクエスト時とかレスポンス前等にフィルタリングを入れることが出来るのがミドルウェアです。
HTTPミドルウェアはアプリケーションにやってきたHTTPリクエストをフィルタリングする、便利なメカニズムを提供します。
Laravelの学習に適したサイト
Laravelをインストールした後で、いざ、何をすればよいかわからないときに以下のサイトを参考に学習すればよいです。
私が実際に使って役にたったサイトをご紹介します。
ララ帳 はじめてのLARAVEL 5.1
このサイトは何をやればステップごとに詳しく書かれており、一番おすすめできます。
Laravel5がリリースされたので解説サイトを作った
このサイトもステップごとに進められます。上記のサイトとかぶっているところが多いですが、両方やれば理解が深まります。
http://w.builwing.info/category/laravel/
Laravel5.1について書かれており、このサイトの内容は1日あれば、理解できます。
Laravel5でシンプルなCRUDアプリを開発する
数時間で理解できる内容です。
上記とほぼ同じ内容ですが、以下のサイトも併用すると理解が深まります。
Laravel(5.1)でCRUD
Laravelの日本語の学習書は以下の本がおすすめです。
Laravelエキスパート養成読本 [モダンな開発を実現するPHPフレームワーク!]
まとめ
PHPのフレームワークの学習は従来の言語学習と異なり、新しいことだらけです。
ただ、フレームワークを使ったコーディング?パズルの組み合わせみたいなものが将来のコーディングのスタンダードになっていくんでしょう。
最後まで読んでいただきありがとうござました。
この記事が気に入っていただけたらシェアしてくれると嬉しいです。
コメント