フレームワークを勉強しようとした時に理解が進まなくなる瞬間があります、それは訳の分からない単語が出た時。
なのでこの記事では、特にLaravel学習中に単語の意味が解らない/理解が深くない単語が出た、そんな時に備えてそれなりに頻出されるキーワードを解説/紹介していこうと思います。
なおこの記事は、辞典並みの正確性より、理解を深める事を優先にした作りにしています。
また、似通った概念は「/」で1項目に括り、同時解説をする事で情報をまとめています。
#フレームワーク/ライブラリ
フレームワークもライブラリも、システム構築をする為の機能を提供してくれるものです。
では逆に、フレームワークとライブラリの違いはなんでしょうか?
フレームワークは「安全性、メンテナンス性、セキュリティ、拡張性」と言った基本的な機能を使うだけで半自動的に組み込んでくれます。
逆に、ライブラリは便利な機能がただ提供されるだけです。
つまり、フレームワークは、拡張性やセキュリティやメンテナンス性などを半自動的に提供してくれるものだと言えますね。
#MVC/Model/View/Controller
MVCとは、Model/View/Controllerの頭文字をとったものです。
- 「Model」…プログラムの具体的な処理&データベースからの情報回収/挿入を担当
- 「View」…見た目部分を担当
- 「Coltroller」…利用者の入力と処理を行い、ModelとViewに指示を出す。
ルーティング
あるアドレスからアクセスしたときに、どのように処理をするのか管理するもの。
「Route::get()」というような記述をするファイル。
#Bladeテンプレート
Laravelで見た目(View)を作る為の仕組み。
Bladeテンプレートには簡単に仕組みを挿入する事ができるようになるための工夫がある。
具体的にはディレクティブ(@yield('test'))のような普通なHTMLでは見かけないタグを用いて、他所で設計したHTMLのパーツを埋め込む事が出来る。
#ORM
データベース(MySQLやMariaDBと言ったもの)を、PHPサイドで使いやすい形式にしてくれるもの。
つまり、データベースとLaravelとの連絡をPHP(Laravel)方式に統一してくれるナイスな通訳。
本来ならDBから何かの情報を問い合わせる場合、SQLという言語でデータを呼び出してそれをそれを加工するという手間をかけるのだがそれを自動でやってくれるのが、ORMという訳です。
#Composer
ライブラリ(ソフトウェアが複数集まったもの)をプログラマーが苦労せずに管理できるようにしてくれる仕組み。
また、外部から導入したライブラリで自身の製作したアプリの内容が複雑にならなくなるような仕組み。
まず大前提として、ライブラリとその依存関係について解説します。
PHPでは誰かの作ったウェブサイトのパーツを複数集めた、ライブラリというものがあり便利です。
しかし、このライブラリには依存関係の複雑性という問題点があります。具体的には"複雑になり過ぎて何が必要で、何と連携が組まれるライブラリか解らなくなる"という複雑性です。
例えば、
- Aを動かすには、BとCが必要
- Dを動かすには、BとEが必要
- Fを動かすには、DとEが必要
と言った感じで複雑化すると、作る側が混乱します。
こういった煩雑な管理を自動的にやってくれるのがComposerです。
PATH/PATHを通す(設定する)
PATHとは、パソコンにプログラムの名前と位置を通達することにより、手軽に呼び出せるようにしたもの。
PATHを通すとは、パソコンに上記の設定をすることそのものです。
通常、効率化の為に行われる。
本来、プログラムは実行する為に「フルパス」を打ち込む必要がある。
打ち込む内容の例:「C:\windows\test\test.exe」
それをPATHを通すことで、exeファイルを直接的な名前で呼び出すことができるようになる。
打ち込む内容の例:「test.exe」
#XAMPP/MAMP
ウェブアプリケーションを実行できるようにしてくれるソフトウェアを一括でまとめたもの。
1個1個自分で設定しなくても良くなるというもの。
XAMPPの場合であれば、
- X…Windows、Linix、macOS、Solaris
- A…Apache
- M…MariaDB(MySQL)
- P…PHP
- P…Perl
MAMPの場合であれば、
- M…Macintosh
- A…Apache
- M…MySQL
- P…PHP
#ヒアドキュメント
ヒアドキュメントとは、長文テキスト(何行にも渡るテキスト)を、一括的に変数化する為の仕組み。
以下に例を示しますが、別に「EOF」部分が、「TXT」など別のものでも問題ない。
$text = "php";
$text <<<EOF
テスト投稿:{$text}
EOF;
echo $text;
//以下出力結果
テスト投稿:php
#ルートパラメーター「{test}」
ルートパラメーターとは、第一関数で、URLの指定を行った際に入力した値の一部を、引数として引用する事が出来る機能。
例えばURLの一部に、ユーザー名があればそのユーザー名を直接利用できるようにしたもの。
Route::get('第一引数','第二引数'){}処理を行う際、第一引数(つまり、URLを入れる所)のデータを、引用できるようにする為の関数。
後で説明しますが、このルートパラメーターには、必ずデータが入っていないといけないものと、あっても無くてもいいデータに別れています。
ここでは先に、データが無いといけない方の解説をしていきます。
Route::get('/testpage/{text}',function($text){
echo $text;
});
//上記の$text部分に"/testpage/{text}"のtext部分が挿入される。
##・任意パラメーター「{test?}」
ルートパラメーターの中に「?」の表記がされる事もあります。
あれは、ルートパラメーターにデータがあっても無くてもいいという表記です。
こういう表記の事を、正式名称で「任意パラメーター」と言います。
※この記事はこれ以降も編集して追記していきます。
##名前空間
クラスを階層的に管理できるようにする為の仕組み。
ある名前でその範囲をくくることにより、同じ関数名、同じクラス名など名前が被っても問題なくさせる為のもの。