自分だけのクイズ作成 - Quipha公開中

【初心者向け】Laravelを始めよう

Laravel
スポンサーリンク

はじめに

皆さん、Laravelを使ったWebアプリケーションの開発に興味をお持ちでしょうか。

早速 Laravel を使いアプリケーションを作成しようと始めたものの、「何をすればいいのか分からない」といった悩み、ありませんでしょうか。

Web アプリケーション開発の場合、例えば PHP やフレームワーク(Laravel)、JavaScript、CSS、SQL・・など、様々な技術を駆使して作成されます。
そのため初めての方は、Laravel だけに着目し学習しても全体像が掴めず、結局何をしていいのか分からず、挫折してしまう可能性があります。

  • 開発環境の構築でつまずいてしまい、始めることすらできない。
  • ローカル PC でアプリケーションを作成したけど、この後どうすればいいの?

本記事ではLaravelを初めて触る方へ向け、手順やアドバイスをまとめました!

使用するバージョン
  • Windows 11 or macOS Monterey (M1)
  • Laravel Framework 9

WindowsでもMacでも同様です。

他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。

Laravelとは

本記事をお読みいただいている方にとって既にご存知だと思いますが、PHP の Web アプリケーションフレームワークです。
開発環境を手軽に構築でき、多くのコマンドが提供されているなど、スムーズに開発を進めることができます。

また、PHP や MySQL(MariaDB)を使い作成したアプリケーションは、レンタルサーバーでも公開ができます。

この辺りの流れを、本記事を読みながら確認しましょう。

どこまで理解するべきか

プログラミングを行うにあたって、非常に多くの知識が必要になります。

初学者へのアドバイスになりますが、分からないことがある場合、その都度完璧に理解する必要はないと思います。
覚えることが沢山あるためです。

例えば Laravel のドキュメントを見てみましょう。
多くの情報が記載されていますが、それらを 100%使わないとアプリケーションが作れないわけではありません

私の周りでも、完璧にこだわり挫折する方がいらっしゃいました。
こだわらずに、まずはアプリケーションを作成してみるのが良いと思います。
沢山実践することにより、知識も身に付きますし、必要な情報を取得できるようになるでしょう。

とにかく実践してみましょう。

書籍

まずは、書籍でLaravelに関する知識を得ましょう。
Laravelの書籍は沢山ありますが、何冊か読んでみましょう。

私ですが、Laravel 9 実践入門という書籍を出版しました。
Kindle Unlimitedを契約している方であれば、読み放題で無料でご覧いただくことができます。

本書の目的は「Laravel を使い Web アプリケーション開発の一連の流れを体験する」 です。

開発環境の構築からアプリケーションの公開まで、最新のバージョンで詳しい手順を解説しています。

ある程度知識がない方でも、そのままの手順を実行すれば進められます。
その他、ソースコードを管理する GitHub、Composer/NPM の活用、デバッグの仕方、脆弱性に関する解説もしています。

どれも開発を行う上で重要な知識となります。
最後には、本格的に使える CRUD アプリケーションの実装を解説しています。
ソースコードは GitHub で公開しています。

GitHub - chigusa-web/laravel9-app-crud: laravel9 CRUD アプリケーション
laravel9 CRUD アプリケーション. Contribute to chigusa-web/laravel9-app-crud development by creating an account on GitHub.

本書を最後まで読んでいただき、実践することにより Laravel を使った開発の全体像が見えてくるはずです。

他にもLaravelに関する書籍がございますので、読んでみましょう。

ドキュメント

Laravel フレームワークの知識をさらに深めたい場合は、公式のドキュメントや翻訳されたサイトを一読することをお勧めします。

全ての機能は使いませんが、一通り読んでみてポイントを押さえておくと良いでしょう。

Laravel 公式サイト(英語)
Laravel - The PHP Framework For Web Artisans
Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the small...
日本語翻訳サイト
Laravel

当然ですが、Laravel に関する情報が網羅され体系的に解説されているため、分かりやすいです。

スポンサーリンク

開発環境の構築

VS Code

早速開発環境を用意しましょう。

開発する際のエディタとして、マイクロソフトが無料で提供している「Visual Studio Code(以降、VS Code)」を使用します。
軽量でありながらとても機能が豊富で、非常にお勧めです。

VS Codeのインストール方法は、以下の記事にまとめましたのでご覧ください。

設定方法や拡張機能は、以下を参考にしてください。

Laravel Sail

環境構築の方法は色々ありますが、Laravel Sailを利用することをお勧めします。
Laravel Sailでの開発環境の構築方法は以下をご覧ください。

Laravel Sail とは、Docker を操作するためのコマンドラインインターフェイスです。
Docker の経験がなくても、Sail コマンドで環境を構築したり、操作ができます。

Windows
Mac

Laravel Sail を使わずに、Composer や MySQL、Node.js など、開発に必要な環境をローカル PC にインストールして構築することもできますが面倒です。
Docker を使用した環境構築は様々なメリットがあります。

  • 個別に Composer や MySQL などをインストールする必要がない。
  • Docker コンテナの定義を用意すれば、環境が整ったコンテナ(開発環境)をすぐに用意できる。
  • チームでの開発時に、環境を揃えることができる。

「Docker がよく分からない」という方でも、一度慣れてしまえば簡単ですので、Laravel Sail での構築を試してみましょう。

開発時に必要な設定や知識

デバッグの方法

どんな言語でも開発時にはデバッグを行います。  Laravel プロジェクトでもブレークポイントを設定し、デバッグを行うことができます。

PHP の開発で、変数の内容を var_dumpで画面に表示したり、ログファイルに出力し確認するのが楽ですが、デバッグの方が何倍も開発効率が上がりますので設定しましょう。

Xdebugを使ってデバッグを行うためには、詳しくは以下の記事をご覧ください。

ブレークポイントを設定し、Web ブラウザでアプリケーションを操作しながら、デバッグを行うこともできます。

GitHub の活用

GitHubとは、ソースコードの差分や課題の管理などを行うことができる開発プラットフォームです。
個人でも便利ですし、チームで開発する場合は必須ツールでしょう。

Laravelプロジェクトの管理はGitHubを活用しましょう。

複数人で開発する場合は、リモートリポジトリから自分のローカル PC にソースをダウンロードし、環境を構築・開発などを行っていきます。

クローンした直後は、vendor フォルダが存在しません
このフォルダの中には Composer で管理しているパッケージが格納されますが、Git の管理対象外になっているためです。

まず Sail を起動したいところですが、Composer がそもそもありません。Sail 自身も Composer で管理されているためです。

GitHub リポジトリからクローンを行った後には、以下の作業が必要になります。

Composer の活用

Composer とは、PHP のパッケージを管理するためのツールです。
Composerを活用することにより、Laravelプロジェクトに機能を追加することができます。

Laravel そのものも Composer で管理されています。

PHP で開発する際、すべての機能を自分で実装するのは大変です。
既にあるパッケージを組み込んで機能を追加し、プロジェクトを拡張します。

Web アプリケーションを作成する際、認証機能を導入して、ログインを行いユーザ専用のマイページを表示したいケースはあると思います。

Laravel では Breezeという認証機能パッケージが提供されています。

Web アプリケーションの画面を作成する際、レスポンシブデザイン対応など、イチから作成するのは非常に手間です。

そんな時は、出来合いのテンプレートを使い、サクッとアプリケーションを作成しましょう。
AdminLTE」というパッケージを導入します。

AdminLTE とは、管理画面に最適化されたテンプレートです。
デモサイトを確認すると分かりますが、デザインがとてもいい感じです。

Composerで導入ができます。

デザインに個性を求めない限り、多くの場合は十分でしょう。

NPM の活用

NPM とは、Node.js のパッケージを管理するためのツールです。

Composer と同じように、既にあるパッケージを組み込んで機能を追加し、プロジェクトを拡張します。

Laravel には Laravel Mix がインストールされており、webpackを使いトランスパイルを行うことができます。
NPM で追加されたパッケージや自分でコーディングしたコードを、ブラウザで動くコードに変換します。

NPM で管理されているパッケージを追加しトランスパイルを行い、実際に動かしてみることにより概要を掴みましょう。

Vue.jsやTypeScriptを導入すると便利です。
Vue.jsのメリットは大きく以下が挙げられます。

  • 学習コストが低い
  • 導入しやすい
  • 開発効率が上がる
  • 人気の JavaScript フレームワークであり将来性・技術的に習得しておきたい

TypeScriptはマイクロソフトによって開発されたプログラミング言語です。
TypeScript は JavaScript に対して、静的型付けとクラスベースオブジェクト指向を加えたスーパーセットとなっています。

JavaScript と違い型定義が使えるなど、開発効率が良くなりますのでお勧めです。

スポンサーリンク

脆弱性に関する知識

Web アプリケーションを開発する際に気を付けなければいけないのが、脆弱性に対する対応です。

脆弱性を抱えたアプリケーションの場合、攻撃を受ける可能性があります。
その結果、個人情報の流出、データの改竄など、Web アプリケーションの管理者にとって深刻な問題になります。

IPA のサイトで、「安全なウェブサイトの作り方」が公開されておりますので、一読しましょう。

安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構
情報セキュリティ関連情報のユーザー、管理者、技術者に向けた発信、その前提となる情報収集、調査分析、研究開発、技術評価等の実施

例えば、SQL インジェクションや XSS(クロスサイトスクリプティング)、CSRF(クロスサイトリクエストフォージェリ)、OS コマンド・インジェクションなど、多くの脆弱性が存在します。

Laravel フレームワークは、ある程度脆弱性についての対応は考慮されております。
ただし、必ずしも Laravel を使えば安全ということはありません。  

以下の記事を一読して確認しましょう。

OWASP ZAP を使用して、Web アプリケーションの脆弱性診断を行うことができます。
OWASP ZAP はオープンソースであり無料で使うことができます。

SQL インジェクションの脆弱性など、セキュリティに関する診断を行うことができます。

Web アプリケーションの全ての画面を手動でチェック、または、不正パラメータを手動で送信して確認するのは難しいですが、このツールを使うと自動で様々なパターンの検証を行い診断を行うことができます

アプリケーションに脆弱性があると例えば以下のような被害に遭い、運営者やそれを利用するユーザにまで影響が及びます。

  • 不正にアクセスされる(情報流出)
  • データを不正に書き換えられる

Web アプリケーションは、場合によっては不特定多数のユーザがアクセスするため、脆弱性がある状態での公開は非常に危険です。
(特に個人情報を扱うようなアプリケーション)

OWASP ZAP を使用し脆弱性診断を行いましょう。

アプリケーションの実装

環境構築やできることがある程度理解できたら、アプリケーションを沢山作成してみましょう!
本サイトで公開している「作ってみよう」記事を、何個か紹介します。
是非、手順通りに実装してみましょう。

以下の記事では、実践でも活かせるようなマスタメンテナンス機能を実装します。
デザインにつきましては、AdminLTE を使用し、一覧・新規登録・編集・削除機能(CRUD)を実装します。

CRUDとは、データの新規登録(Create)、読み出し(Read)、変更(Update)、削除(Delete)の頭文字を取った用語です。
これらのデータを操作する処理は基本中の基本であり、CRUDアプリを作ることにより、多くの実装に活かすことができるでしょう。

翻訳ができるWebアプリケーションを作成しました。
LaravelでWebアプリケーションを作成し、DeepLを利用して翻訳を行います。

以下の記事ではFullCalendarを利用して、イベントを登録しカレンダーに表示する簡単なWebアプリケーションを作成してみます。
(スケジュールアプリの作成)

Laravelプロジェクトで作成し、イベントはデータベースに保存します。
そうすることにより、ブラウザを再度表示した際に、イベントを再表示することが出来ます。

以下の記事ではChart.jsを利用して、グラフを表示する簡単なWebアプリケーションを作成してみます。

解説自体は、実践を想定してLaravelのプロジェクトで行いますが、必須ではありません。
Chart.jsはNPMでのインストール、Laravel Mix(webpack)でビルドを行いました。

アプリケーションの公開

一通りアプリケーションの開発が完了したら、沢山のユーザに使っていただきましょう!
そのためには、公開サーバーへ配置する必要があります。

方法は様々ですが、今回は 2 つの方法を紹介します。

以下の記事では Herokuを使い、Laravel プロジェクトを公開する手順を解説します。
無料枠がありますので、個人で開発したアプリケーションを手軽に公開できます。

レンタルサーバーのエックスサーバーを使い、Laravel で作成したアプリケーションを公開できます。
必要機能は揃っており、固定の月額費用でありながらスペックも高く非常にコスパが良いです。

以下の記事ではエックスサーバーで Laravel の環境を構築し、Web アプリケーションを公開する手順を解説します。

さいごに

今回はLaravelを初めて触る方へ向け、手順やアドバイスをまとめました。
覚えることは沢山ありますが、まずは手を動かして実践してみましょう。

全体像を把握することが大切です。
そして沢山アウトプットすることにより、スキルが身につくと思います。

皆さんの Laravel 開発がスムーズにいくよう願っております!

他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。

\オススメ/

コメント

タイトルとURLをコピーしました