Laravelとは、PHPのフレームワークなんですが、
「はぁ???フレームワークって何?食えんの?」って感じですよね。
もっと分かりやすくいうと、
Laravelは、PHPにあまり詳しくなくても、口コミサイトや掲示板、SNS、ショッピングサイトなどを作れてしまう、ウェブサイトやウェブアプリを作るためのベースキットのようなものです。
→Laravelでスマホアプリって作れるの?をくわしく解説。
Laravel (PHPのフレームワーク) とは?
まず、フレームワークとは何かというと、サイトそのものです。
例えば、WordPressサイトを作りたかったら、WordPressをインストールして作りますよね?
EC-Cubeサイトを作りたかったら、EC-Cubeをインストールして作ります。
それと一緒で、Laravelサイトを作りたかったら、Laravelというフレームワークをインストールする事で、Laravelというシステムで動くサイトを作れるようになります。
LaravelはWordPressみたいなもの?
LaravelもWordPressもどちらもPHPで作られてますし、1サイトにつき、1システムをインストールするという意味では同じなんです。
1サイトに1WordPressをインストールするのと同じで、
1サイトに1Laravelをインストールして使います。
1Laravelをインストール事を、Laravelプロジェクトの作成と言います。
例えば、WordPressはインストールすれば、自動的に空っぽのWordPressサイトが生成されますよね。
全く同じように、Laravelをサーバーにインストールすれば、Laravelサイトが生成されます。
Laravelをインストールして、ブラウザで表示すると、サンプルページとして、上のような画面が表示されます。
インストールすると言っても、どうやってインストールするの?どこにインストールするの?って感じでイメージできないと思うんだけど、その辺は下の記事で解説してるよ↓
ただ、WordPressはフレームワークではなく、CMS(コンテンツ・マネージメント・システム)です。
WordPressには、コンテンツを管理するシステム、つまり管理画面があります。なのでPHPのコードを一切触らなくても、管理画面のボタンをポチポチするだけで、ブログが作れてしまいます。
逆に言うと、あくまでブログを作るためのCMSなので、ブログしか作れません。Cookpadのような投稿サイトや、楽天のようなショッピングサイト、もしくはTwitterのようなSNSは作れません。
でも、逆にLaravelには、管理画面はありません。テーマもありません。必要なら自分でコードを打って作ります。
例えば、Laravelで投稿画面が必要なら、投稿画面は自分で作ります。
こんなふうに↓
WordPressもPHPに詳しい人なら、自分でテーマをPHPを打って作りますよね。
それと一緒で、Laravelも自分でHTMLとPHPを打って、サイトを作る必要があります。その代わり、Wordpressと違って、口コミサイト、ショッピングサイト、SNS、そしてブログ、どんなサイトでも作ろうと思えば作れます。そこがLaravelとWordPressの違いだという事です。
ただ、WordPressにプラグインという便利機能があるのと一緒で、Laravelにも、パッケージという便利機能がいろいろあります。パッケージを使う事で、例えば、ログイン画面をインストールするだけで設置できたりします。
→WordPressとLaravelの比較。稼ぐにはどちらを使うべきか?
Laravelは、Jqueryのようなライブラリとは違う
これは、私自身、Laravelを勉強し始めた時に誤解してた事なんですが、
例えば、
- Javascriptには、Jqueryというライブラリがあります。
- PHPには、Laravelというフレームワークがあります。
え?これって同じでしょ?って最初は思ってました。
なので、
と誤解してました。
でも、実際はそうではなくて、LaravelはむしろWordPressと同じようなもの、つまり、サイトを作る際に「WordPressで作るか、それともLaravelで作るか」のように選ぶもの、サイトそのものなんです。なので、WordPressにLaravelを使うのような事はできません(と言っても、そういうプラグインを作ってる人もいますが)。
そして、このLaravelの中では、HTML、CSS、Javascriptが使えます。
Laravel自体はPHPですが、実際にブラウザに表示される部分はHTMLで書いていきます。ウェブページにリアルタイムで動くエフェクトを付けたい場合はJavascriptも使えます。PHPは、それらを裏側(サーバーサイド)で操作する全体のシステムなんです。
もちろん、Laravel上でJavascriptのライブラリであるJqueryも使えますし、vue.jsなどの別のJSライブラリも使えるんです。
Laravelと普通のPHPの違いとは?
例えば、素のPHPでウェブサイトを自分で作るとします。その場合、コードの書き方は人それぞれで、全員バラバラになります。
特にPHP未経験の人だと、どこに何を書いたらどう動くのかが分かりづらく、とっつきにくいというのがありますし、質問サイトで作り方を質問しても、みんな書き方がバラバラなので、回答する側も回答するのが難しかったりします。
また、セキュリティに詳しくない人が素のPHPでサイトを作ると、セキュリティががら空きのサイトができてしまうという欠点もあります。
そこで出てきたのが、フレームワークです。
フレームワークは、サイトを作る時に、何をどこにどう書くかが決まってます。
例えば、Laravelなら、
- HTMLはブレードというファイルに書いて、viewsフォルダに入れてね。
- データベースとやり取りするファイルは、controllersフォルダに入れてね。
- それぞれのページのURLは、web.phpに全部書いてね。
のように、フォルダ分けや書き方ルールが決まってるんです。
決まったルールがあるから、プログラミング初心者でもそのルールを覚えてしまえば書けるし、みんな同じルールで書くから、みんな書き方が同じになるため、チームでサイトを制作しやすかったり、教える側も教えやすいというメリットがあるんです。
また、セキュリティなど、重要な部分はすでに施されているという事もあり、初心者でも安全なサイトを作りやすいというメリットもあります。
PHPのフレームワークには、FuelPHP、CakePHP、Laravelなど、複数あります。その中でも、近年急激に使われるようになってるのが、Laravelなんです。
フレームワークっていうのは、建築会社の工法みたいなものなんだ。
例えば、君が家を建てるとするよ。その時に、建築会社を選ぶでしょ?例えば、ヘーベルハウスなら鉄骨を使った四角い家を作る工法。大和ハウスなら軽量鉄骨を使った工法。積水ハウスなら木造でオープンな家を建てる工法。
LaravelならMVC工法っていうのが使われてる。フレームワークによって工法が違うんだ。
→Laravel初心者が絶望するController,Blade,Routesの関係が図解でよく分かる!
家造りなら「うちの会社では、この工法(フレームワーク、骨組み)で作るけど、間取りや外観のデザイン、防音などの機能は、お客様で選べますよ」ってなってるじゃん?
それと一緒で、見えない部分の構造(工法)はLaravel側で統一されてるけど、サイト自体のデザインやレイアウト、機能は自分で自由に作れるようになってるんだ。
LaravelはPHP初心者、プログラミング未経験でも使えるの?
Laravelは、あなたがPHP初心者やプログラミング未経験者だとしても、PHP入門として最適と言えます。
素のPHPでサイトを1から作るより、遥かに簡単なので、
これからプログラミングを学びたいという場合に、入門としてLaravelを勉強し始めるのはありです。
ただ、Laravel上でも、もちろんPHPのコードを書く事になりますから、PHPの基礎(if文、配列など)は、やりながら勉強していかないとすぐに分からなくなると言えます。
逆に基礎さえ分かってしまえば、あとはググりながらサイトは作れるようになります。
当サイトにも、Laravel入門者向けチュートリアルもあるので、
そこから始めれば大丈夫です。
→Laravel入門。プログラミング初心者でも分かる!できる!学び順まとめ。
というわけで、Laravelとは一体なんなのか、理解できたでしょうか。