広告

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

Laravel

当サイトではアフィリエイト広告を利用しています。

広告

はじめに

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

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

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

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

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

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

WindowsでもMacでも同様です。

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

Laravelとは

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

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

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

どこまで理解するべきか

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

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

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

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

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

書籍

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

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

【Kindle本】Laravel 9 実践入門 を出版しました【Win/Mac対応】
「Laravel 9 実践入門: ~開発環境・実装・アプリ公開までの流れを完全網羅~」という書籍をKindleで出版いたしました。

本書の目的は「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 公式サイト(英語)

https://laravel.com/docs/10.x

日本語翻訳サイト
https://readouble.com/laravel

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

開発環境の構築

VS Code

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

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

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

【VS Code】インストール手順を解説 【Windows/M1 Mac対応】
今回はVS Codeのインストール手順を解説します。WindowsとMacのそれぞれ分けてまとめました。

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

【VS Code】オススメの設定・拡張機能・便利機能・ショートカット【Win/Mac対応】
私的に最初に行う設定や、拡張機能、よく使うショートカットや便利な機能をまとめてみました。

Laravel Sail

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

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

Windows
Laravel Sailで開発環境構築【Vite対応】
今回は、Laravel Sailを使って環境の構築を行いました。 SailはDockerですので、開発環境を簡単に用意することもできますし、カスタマイズすることも楽です。
Mac
【M1 Mac】Laravel Sailで開発環境構築【Vite対応】
Laravel Sailを使って環境の構築を行いました。 SailはDockerですので、開発環境を簡単に用意することもできますし、カスタマイズすることも楽です。

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

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

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

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

デバッグの方法

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

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

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

【Laravel Sail】VS CodeでXdebugによるデバッグ完全解説
今回はLaravel Sailの環境でVS Codeを使い、Xdebugによるデバッグ方法を詳しく解説していきます。

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

GitHub の活用

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

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

【GitHub】プロジェクトリポジトリにプッシュ
今回は、GitHubリポジトリへプッシュする手順をまとめました。

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

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

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

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

【Laravel】プロジェクトをGitHubからクローンした後にやること
今回は、GitHubのリポジトリにあるLaravelプロジェクトを、クローンして開発環境を構築しサイトが起動するところまでの手順をまとめました。

Composer の活用

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

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

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

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

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

【Laravel8/9/10】認証機能の導入 (Breeze)
Laravel8の認証機能(ログイン機構)を導入したいと思います。 シンプルで最小限の認証機能である、Breezeを導入します。 Laravelの導入から詳しく解説しています。

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

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

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

Composerで導入ができます。

【Laravel】AdminLTEを導入
出来合いのテンプレートを使って、サクッとアプリケーションを作成しましょう!オススメは「AdminLTE」です。 Laravel向けに最適化されたLaravel-AdminLTEの導入から実装まで、詳しく解説しています。

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

NPM の活用

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

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

Laravel には Vite がインストールされており、トランスパイルを行うことができます。

最新のLaravelでは、Laravel MixがViteへと置き換わりました。

Viteについては以下の記事にもまとめました。

【Laravel】Viteの使い方
LaravelでViteを使ってみました。

余談ですが、従来のLaravel Mixに戻すこともできます。

【Laravel】ViteからLaravel Mixに戻す方法
Laravel標準のViteをLaravel Mixに戻す手順を解説しました。

NPM で追加されたパッケージや自分でコーディングしたコードを、ブラウザで動くコードに変換します。

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

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

  • 学習コストが低い
  • 導入しやすい
  • 開発効率が上がる
  • 人気の JavaScript フレームワークであり将来性・技術的に習得しておきたい
【Laravel】Vue.js v3導入とComposition API実装【Mix】
LaravelプロジェクトにVue3を導入し、Composition APIの実装を行いました。

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

LaravelにTypeScriptを導入
今回は、Laravel8で作成したプロジェクトに、TypeScriptを導入します。

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

広告

脆弱性に関する知識

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

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

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

安全なウェブサイトの作り方 | 情報セキュリティ | IPA 独立行政法人 情報処理推進機構
情報処理推進機構(IPA)の「安全なウェブサイトの作り方」に関する情報です。

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

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

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

【Laravel】敢えて試すSQLインジェクション【仕組みを知るには実装】
敢えてSQLインジェクションの脆弱性を含んだシステムを作成します。対策や仕組みを知るには実際に試してみましょう。人気のあるLaravelというフレームワークで試します。

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

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

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

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

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

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

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

【OWASP ZAP】インストールと基本的な使い方【Web脆弱性診断】
OWASP ZAPを使用して、Webの脆弱性診断を行ってみます。オープンソースで無料で使うことができます。

アプリケーションの実装

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

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

【Laravel】CRUDアプリの実装【AdminLTE】
実践でも活かせるようなマスタメンテナンス機能を実装します。

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

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

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

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

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

【Laravel】FullCalendarでスケジュールのDB登録・表示【実践向け】
FullCalendarを利用して、スケジュールを登録しカレンダーに表示する簡単なWebアプリケーションを作成してみます。

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

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

Chart.jsの導入と実装
Chart.jsを利用して、グラフを表示する簡単なWebアプリケーションを作成してみます。とても高機能でカスタマイズしやいので、ぜひ活用してみましょう。

アプリケーションの公開

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

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

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

【Heroku】Laravel+MySQLで作成したアプリを公開【完全版】
Herokuを使って、Laravelプロジェクトを公開する手順をまとめました。 個人で開発したアプリケーションを手軽に公開することもできます。

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

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

【エックスサーバー】Laravelで作成したWebアプリを公開
今回はエックスサーバーでLaravelの環境を構築し、Webアプリを公開する手順をまとめました。

さいごに

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

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

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

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

LaravelMacOSPHPWindowsプログラミング
広告

個人開発

千草 @chigusaweb

現役のITエンジニア。 気ままにコードを書いたり技術情報を発信しています。 Webアプリ/Windows・Macアプリ/モバイルアプリなど。 (Java, PHP, Javascript, Swift, Python, C#, 他) 個人開発:Clibor, Quipha, TXT-Crypter, 符計算特訓, チグサツール Kindle本: Laravel9 実践入門, 他

クリップボード履歴

Clibor

Windows

Cliborはシンプルで高機能なクリップボード履歴ソフトです。 また普段よく使うワードを定型文として登録し、いつでもクリップボードに保存することができます。高度なテキスト整形・FIFOモード・ホットキーに対応。

クリップボード履歴

Windows版Cliborの利便性を、そのままMacでも。 定型文登録、高度なテキスト整形、FIFOモードなど、便利なクリップボード履歴機能を利用できます。macOS最新のTahoeにも対応。

テキスト暗号化

テキストを暗号化してURLで共有・保存できる無料サービスです。 パスフレーズを知る人だけが復号できます。登録不要、データはサーバーに保存されません。 Notionでも利用できます。

学習

Quipha

Web / iOS

自分だけの問題集や問題を作成し、クイズを行い、学習に活用することができるアプリです。 例えば、学校の授業、語学学習、IT資格やその他の資格など多彩な分野での学習を支援します。 いつでも、どこでも、あなたの学習をサポート。

ツール

日常の「ちょっとした効率化」をサポートするWeb便利ツール集。 テキスト・データ処理から最新のAI連携まで、日々のちょっとした手間でググりがちなユーティリティを1つの場所に集約。

麻雀

麻雀の符計算をひたすら特訓しマスターしましょう。 初心者の方はもちろん、もっと速く計算したい方にも役立ちます。 5万対局以上の実践から問題を収録。

コメント

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