PHPのWeb開発を効率化できるフレームワーク「Laravel」とは?

PHPのWeb開発を効率化できるフレームワーク「Laravel」とは? サムネイル

今回は「PHPのWeb開発を効率化できるフレームワーク「Laravel」とは?」についてご紹介します。

関連ワード (BOOKS、PHP、アプリケーション開発等) についても詳細と、関連コンテンツとをまとめていますので、参考にしながらぜひ本記事について議論していってくださいね。

本記事は、CodeZine様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


本記事は『動かして学ぶ!Laravel開発入門』の「はじめに」と「Chapter 1 PHPフレームワーク「Laravel」とは」から抜粋したものです。掲載にあたって一部を編集しています。

Laravelフレームワークとは

Laravelフレームワークの概要

 日本で最も広く使われているWordPress(CMS)やEC-CUBE(ECサイト)などはWebプログラミング言語PHPで開発されています(図1.1)。

図1.1:WordPress(CMS)(左)、EC-CUBE(ECサイト)(右)

図1.1:WordPress(CMS)(左)、EC-CUBE(ECサイト)(右)

 このようにWebサービスではよく使われているPHPですが、Webアプリケーションを効率的に開発するためのWebアプリケーションフレームワークと呼ばれているものが多数あります。本書で学ぶ「Laravel」はMicrosoftの.NETの開発に関わっていたTaylor Otwell氏によって開発され、PHPの世界で最も人気のあるフレームワークの1つです(図1.2)。

図1.2:Laravelのロゴ

図1.2:Laravelのロゴ

 もともとPHPには「Symfony」という人気のWebアプリケーションフレームワークが存在しますが、それを土台に作成されたのが「Laravel」です。

 Google TrendsでWebアプリケーションフレームワークの人気度の動向を調べてみました(図1.3、2020年7月現在)。一番上の青線がLaravelになります。人気のあることがわかります。

図1.3:Google Trendsの人気度の動向

図1.3:Google Trendsの人気度の動向

フレームワークとは

 フレームワークを使わないでPHPを使うプログラマーは、基本的にほとんどゼロの状態からプログラミングをして作っていきます。プログラミングの内容は、1ファイルに長く記述していく人、モジュール化(関数)する人、オブジェクト指向(クラス)を取り入れる人など、いろいろな作り方ができるのがPHPのよさでもあります。そのいろいろな作り方ができることから初心者から上級者まで幅広く使われています。

 しかし、複数人でチームを組んで開発する場合には、このPHPの自由さが「規則性のないコード」を生産していきます。チームでの規則を決めてもPHPはコードを書けばそのプログラムは動いてしまうので、作りやすい方法で規則を無視して作成してしまう人も稀に出てきます。このようなことを防ぐにはどうすればよいでしょうか? もっと細かい規則が最初から決まっていて、その通りに組めれば楽なのに……。

 そこで「フレームワーク」の出番です。

 最初から便利な枠組み、関数、クラスなど必要な処理が用意されています。「フレームワーク」は、その用意されているものを使うだけでさまざまな機能を実装できるので、使い方(実装の仕方)だけ覚えれば誰でも簡単にプログラムを作れるのがよいところです。ただし、素のPHPと違い自由度は低く、関数、クラス、メソッドの名前など、「フレームワーク」の規則にしたがわないと動作しません。その代わりに「フレームワーク」は実装の負荷軽減、保守性、セキュリティ、規則性あるコード、可読性が確保できるという特長があります。

Laravelの特徴

 Laravelには次のような特徴があります。

  • 他のフレームワークに比べると学習コストが低い
  • コードが読みやすく記述量が少ない
  • 強力で簡単に記述できる入力チェック
  • ログイン認証(ユーザー登録・認証など)
  • ページネーションの簡単設置(2箇所の記述で可能)
  • 本番環境へのアップロードが他のフレームワークに比べて簡単

 これらの特徴の中で、何と言っても一番は「学習コストの低さ」です。他の言語(Python、Ruby、Javaなど)のフレームワークでWebアプリケーションを作成したとします。その場合、本番環境(さくらインターネット、Microsoft Azure、Amazon AWSなど)へのデプロイを考慮すると、プログラミング言語以外のサーバー等の知識・技術が必要になります。PHPの場合は通常のWebサイトのアップロードのように、HTML/CSS/JavaScriptをアップロードする感覚で本番環境にアップロードすることで動作させることが可能です。

Laravelのヘルパー関数

 Laravelのヘルパー関数とは、Laravelフレームワークで用意されているとても便利な関数です。PHPネイティブの関数とは別の関数になります(参考:Laravel Documentation:Helpers)。

MVCパターンとは(一般的なフレームワーク)

 PHPフレームワークである「Laravel」は他のフレームワークと同様にMVCパターンという「Model・View・Controller」の3つの主要パーツで構成されています。MVCパターンは図1.4の3種類のプログラムで構成されています。

図1.4:MVCパターン

図1.4:MVCパターン

 初心者の方がMVCを理解するのは、簡単なことではありません。

 初心者の段階では「表示・データ・制御と分けているのだな」という程度の理解で進んでいくべきでしょう。フレームワークの概念を理解しようと思うなら、実際にコードを打ちながら進んだ方が明らかにスキルアップし、知識は後で紐付いてきて理解も深まります。頭の片隅に図1.4を入れておいて、ステップバイステップで進めながら「Model・View・Controller」を1つ1つ紐付けていきましょう。

MVC

 前述したMVCについてもう少し詳しく解説します。

Mode(lモデル)

 Webシステムのデータを扱う本体部分になります。Webシステムの中でデータ連携処理などをモデルが扱います。データベースからの必要な情報の抽出、登録、更新、削除などを行うのが主な処理内容です。

 モデルは、基本的に「/app/」内に作成します。

View(ビュー)

 表示領域を担当するのがビューになります。コントローラ・モデルの実行結果をViewで受け取ります。ビューが受け取ったデータを元にHTMLを生成し、ブラウザで表示するHTMLを出力します。

 ビューは、基本的に「/resources/views/」内に作成します。

Controller(コントローラ)

 コントローラの役割は、モデルとビューの制御です。リクエストされたURLやフォームの入力値にしたがい処理を実行します。

 コントローラは、基本的には「/app/Http/Controllers/」内に作成します。

ルート定義

 ルーティングと呼ばれており、URLと処理を紐付けする役割をしています。

コラム LaravelはMVCではない?

 Laravel開発者のTaylor Otwell氏は「LaravelはMVCではない」とコメントしています。MVCという概念にとらわれず自由に書けるように作られているのがLaravelの特徴とも言えます。

対象読者について

 本書は、一度Laravelのフレームワークについて学んでみたい方や、PHPの基礎を身に付けて次に何を学ぶかを考えている方など、Laravelの初心者から中級者の方に向けて執筆しています。

 特に「Laravelのフレームワークを体系的に勉強しようとしたけど難しかった」という方や、「Laravelのフレームワークの勉強方法がわからない」という方に向けて、必要な内容を絞り解説しています。「これからLaravelのフレームワークを勉強したい」という方におすすめの勉強方法は、「読みながら作る」の流れで習得することです。

 本書はそのような方に向けて、ステップバイステップ形式の構成になっていますので、本書の順番に操作し、作りながら進むことで、Laravelフレームワークでの基本的な「登録・表示・更新・削除」の処理を理解できます。また、PHPを学んでいるときには出てこなかったLinuxコマンドや、Laravelのartisanコマンドは何回も出てきますが、作りながら慣れていきましょう。

フレームワークを学ぶ意義

 Webサービスを作ることになると、必ずバリデーション(未入力チェック、文字数チェック等)、ログイン認証、セキュリティ対策、記述コードの統一性など、考えることが増え、それに合わせてコードの量も増えてきます。当然、把握する内容や心配ごとも多くなります。そこで、フレームワークの出番です。フレームワークを使うことで、それら多くのことを解消できます。

学習コストについて

 世の中の多くのプロダクトはフレームワークを使って構築されているケースが多いです。フレームワークの学習コストは低くはありませんが、覚えれば便利で開発も圧倒的に早くなります。

 フレームワークは最初の学習コストが高いため、そこを乗り越えられないケースが多いようです。筆者もフレームワークを最初の習得時期は、学習コストの高さに悩まされた1人です。しかし、継続することで少しずつ慣れて「こういうものか」と理解できました。

 本書を一度読み理解できるほどフレームワークの習得は簡単ではありません。最初のフレームワークを起動して表示するところまでは、3回は繰り返してください。3回繰り返したら、その後はどんどん読み進めてください。最初の3回繰り返す理由は「環境構築、コマンド、インストール、フレームワークの動作確認」に慣れてほしいからです。プログラミングとは違う体験ですので、まずは慣れることが重要です。そこさえ慣れてしまえば、すぐにプロジェクトを作ることが可能になります。

 フレームワークで作っていると「なぜか動作しない」といった、原因不明で動作しないときがあります。不具合の特定ができないで何日も過ごすのであれば一旦削除し、プロジェクトを作り直す方が早かったりします。コマンドや操作は毎回同じですので、慣れてしまえば10分程度で作れるようになります。

 かくいう筆者も最初は、laravel.comや世界、日本のドキュメントサイトを見て学びました。筆者なりに解釈し、フレームワーク初心者に向けてシンプルなアプリが作れるようになるところまでを解説しています。フレームワークは難しいですが、昨今のWebサービスを作る上では必要な技術なので、ぜひ習得しましょう。

動かして学ぶ!Laravel開発入門

Amazon SEshop その他

動かして学ぶ!Laravel開発入門

著者:山崎大助
発売日:2021年3月15日(月)
定価:3,000円+税

本書について

デジタルハリウッド・ジーズアカデミーなどでLaravel講座をもつ著者が、多くの受講生の声を反映して執筆したLaravelの入門書です。サンプル作りを通して、LaravelによるWebアプリの設計・作成の基本を一通り学ぶことができます。

 

PHP China-最棒的PHP中文社区

PHP工具 jQuery工具 HTML5工具 Linux组件 JavaScript工具 开发工具 服务器工具 为您的网络安全护航 HTTPS时代来临,PHPChina提供各品牌SSL数字证书服务。点击进入 Symantec CFCA Geotrust 赛门铁克SSL证书 - 受欢迎的 ...

KAN オフィシャルウェブサイト - www.kimuraKAN.com

News & Topics Discography Live Data

ieSpell - Download

Latest version - v2.6.4 (build 573) - 1.99MB - released 20th February 2010 To download, simply click on any one of the download icons in the table below. Please see ...

Freemail - Bejelentkezés

Maradjon bejelentkezve

TELEBOATスマートフォン版 ライブ 場選択 - JLC

TELEBOATスマートフォン版 ライブ 場選択 - JLC ... ライブ

Web Hosting, Domain Registration, Dedicated Server, VPS ...

E-mail is not valid

Forecasts - Windsurfing, Kiteboarding, marine weather ...

Marine weather for windsurfing, kiteboarding and kayaking in Victoria, Vancouver Island, BC. Features web cams, wind reports, stats, forum, photos and more. <font ...

IMCDb.org: Search

詳細の表示を試みましたが、サイトのオーナーによって制限されているため表示できません。

Resize Images Online - Shrink Pictures

Online image resize utility to resize pictures and images quickly for free

bt.etree.org | Community Tracker

詳細の表示を試みましたが、サイトのオーナーによって制限されているため表示できません。

【簡単】VSCode+Spring Bootアプリケーション開発手順 ...

VSCodeでSpring Bootアプリケーション開発してみたいですか? 本記事では実際にVSCodeを使用したSpring Bootアプリケーション開発手順について解説します。 STSやeclipseの動作が重たくて作業効率が悪くなっている方は必見です。

[JavaScript] 無料で使えるJavaScriptエディタ・IDE:ウェブ ...

現在も開発中で、かつ無料で使えるものを集めてみた。 なお、以下にある「コードのパース」とは実際に書いたソースコードをパースして、それを入力補完に反映してくれるかどうか。 テンプレートは、コードテンプレ...

Ruby on Rails入門 ~ Railsを使ったアプリケーションの開発手 …

Ruby on RailsはWebアプリケーション作成のためのフレームワークの一つであり、プログラミング言語としてRubyを使用するフレームワークの代表的なものです。ここではRailsを使ったアプリケーション作成の方法について順に解説を行ないます。

ブラジルのニオブ生産・精製大手CBMM社、3DEXPERIENCE ...

[ダッソー・システムズ株式会社]・シミュレーション機能や設計最適化により、ニオブを使ったテストをより迅速に実施し、ニオブ使用量を拡大・テスト期間を従来の5年から1年に短縮、バーチャル環境下でのテストが鍵に・3DEXPERIENCEプラットフォーム・オン・クラウドがパフォーマンスの改善や市場への迅速な製品投入を後押しダッソー・システムズ (Euronext Paris: #13065, DSY.PA) は本日、ブラジルでレアメタルの一種であるニオブを生産・精製する世界最大手のCBMM社が、3DEX…

Fintan

 · アプリケーション開発ノウハウ・ツール Fintanは、TIS株式会社が研究開発や、システム開発、新規事業開発の プロジェクトで培ったノウハウを集約したサイトです。

サイボウズ「kintone」にみる「ノーコードアプリケーション開 …

本連載では、筆者が「気になるIT」を取り上げ、その概要とともに気になるポイントを挙げてみたい。今回は、サイボウズの「kintone」を取り上げる。

EclipseでのWebアプリケーション開発環境の設定 - Web ...

EclipseでのWebアプリケーション開発環境の設定 概要 Eclipse で Web アプリケーションの開発を行うためには、 Eclipse 上で Web コンテナと呼ばれる J2EE (Java 2 Enterprise Edition) 規格に対応した Web サーバによる実行環境を整える必要 ...

VBAによるSQL Serverを使用したデータベースアプリケーショ …

 · そこで、今回はVBAでデータベースアプリケーション開発ということで、SQL Serverへデータベース接続する方法、データ取得・追加・更新・削除の方法を調べてみた。なお、今回のバージョンは以下です。Microsoft Excel 2010 SQL Server

企業アプリケーションを変える ノーコード/ローコード開発の ...

 · アプリケーションの構築は通常、多数のコード作業(プログラミング)を伴い、プログラミング言語、開発ツールなど専門知識やスキルが必要と ...

PythonでWebアプリケーション開発を行う方法を現役エンジニ …

初心者向けにPythonでWebアプリケーション開発を行う方法について現役エンジニアが解説しています。Webアプリケーションはクライアントとサーバーで構成されています。開発に役立つdjangoなどのフレームワークやPythonで作成されているサイトを紹介します。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
AirPods Maxはヘッドバンドも簡単に交換可能 実際に試してみた
-
2021-01-21 16:24
オライリー調査で明らかに–Go、Rust、Ruby、Dartに関心高まる
IT関連
2021-04-11 13:04
GGV Capitalが「世界中の起業家」のための新ファンドに合計2630億円を調達
VC / エンジェル
2021-01-31 19:47
書籍『プロダクトマネジメントのすべて』刊行記念イベント開催、3月のProductZineウェビナーに執筆陣が登壇
IT関連
2021-02-25 07:17
コロナワクチン接種デジタル証明書開発イニシアチブ「VCI」、MicrosoftやOracleなどが参加
企業・業界動向
2021-01-17 06:15
WaymoのクラフシックCEO退任 2人CEO体制に
企業・業界動向
2021-04-06 19:57
DNPが「バーチャルジュンク堂」オープン 書店の新しい形を探る
最近の注目ニュース
2021-03-29 10:35
知識ゼロからのプログラミング学習術 独学で身につけるための9つの学習ステップ
amazon
2021-03-29 10:35
アイデンティティ管理のOktaに特権アクセス管理とアイデンティティガバナンスのレポート機能が追加
ソフトウェア
2021-04-09 05:09
Python用機械学習ライブラリ「PyTorch 1.8」がリリース、科学計算用フロントエンドAPIの追加など変更多数
IT関連
2021-03-09 14:15
本のウーバーイーツ!? 注文から最短45分で届けるサービス、丸善ジュンク堂が開始
企業・業界動向
2021-02-04 20:01
関西電力、生活サービス特化のECモール開設 顧客囲い込み
IT関連
2021-03-04 03:22
SBテクノロジー、ゼロトラストセキュリティ短期構築サービスを開始
IT関連
2021-02-02 16:20
話題の次世代写真SNS「Dispo」創業者デビッド・ドブリック氏インタビュー、完璧な世界から抜け出して今を楽しもう
ネットサービス
2021-02-17 23:56
ウェブブラウザーだけでXR空間を構築できる「STYLY」を手がけるPsychic VR Labが9億円調達
VR / AR / MR
2021-02-27 20:54
Vue.js入門 基礎から実践アプリケーション開発まで
amazon
2021-02-27 20:54