はじめに
皆さん、Laravelを使ったWebアプリケーションの開発に興味をお持ちでしょうか。
早速 Laravel を使いアプリケーションを作成しようと始めたものの、「何をすればいいのか分からない」といった悩み、ありませんでしょうか。
Web アプリケーション開発の場合、例えば PHP やフレームワーク(Laravel)、JavaScript、CSS、SQL・・など、様々な技術を駆使して作成されます。
そのため初めての方は、Laravel だけに着目し学習しても全体像が掴めず、結局何をしていいのか分からず、挫折してしまう可能性があります。
本記事ではLaravelを初めて触る方へ向け、手順やアドバイスをまとめました!
他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。
Laravelとは
本記事をお読みいただいている方にとって既にご存知だと思いますが、PHP の Web アプリケーションフレームワークです。
開発環境を手軽に構築でき、多くのコマンドが提供されているなど、スムーズに開発を進めることができます。
また、PHP や MySQL(MariaDB)を使い作成したアプリケーションは、レンタルサーバーでも公開ができます。
この辺りの流れを、本記事を読みながら確認しましょう。
どこまで理解するべきか
プログラミングを行うにあたって、非常に多くの知識が必要になります。
初学者へのアドバイスになりますが、分からないことがある場合、その都度完璧に理解する必要はないと思います。
覚えることが沢山あるためです。
例えば Laravel のドキュメントを見てみましょう。
多くの情報が記載されていますが、それらを 100%使わないとアプリケーションが作れないわけではありません。
私の周りでも、完璧にこだわり挫折する方がいらっしゃいました。
こだわらずに、まずはアプリケーションを作成してみるのが良いと思います。
沢山実践することにより、知識も身に付きますし、必要な情報を取得できるようになるでしょう。
書籍
まずは、書籍でLaravelに関する知識を得ましょう。
Laravelの書籍は沢山ありますが、何冊か読んでみましょう。
私ですが、Laravel 9 実践入門という書籍を出版しました。
Kindle Unlimitedを契約している方であれば、読み放題で無料でご覧いただくことができます。
本書の目的は「Laravel を使い Web アプリケーション開発の一連の流れを体験する」 です。
開発環境の構築からアプリケーションの公開まで、最新のバージョンで詳しい手順を解説しています。
ある程度知識がない方でも、そのままの手順を実行すれば進められます。
その他、ソースコードを管理する GitHub、Composer/NPM の活用、デバッグの仕方、脆弱性に関する解説もしています。
どれも開発を行う上で重要な知識となります。
最後には、本格的に使える CRUD アプリケーションの実装を解説しています。
ソースコードは GitHub で公開しています。
本書を最後まで読んでいただき、実践することにより Laravel を使った開発の全体像が見えてくるはずです。
ドキュメント
Laravel フレームワークの知識をさらに深めたい場合は、公式のドキュメントや翻訳されたサイトを一読することをお勧めします。
開発環境の構築
VS Code
早速開発環境を用意しましょう。
開発する際のエディタとして、マイクロソフトが無料で提供している「Visual Studio Code(以降、VS Code)」を使用します。
軽量でありながらとても機能が豊富で、非常にお勧めです。
VS Codeのインストール方法は、以下の記事にまとめましたのでご覧ください。
設定方法や拡張機能は、以下を参考にしてください。
Laravel Sail
環境構築の方法は色々ありますが、Laravel Sailを利用することをお勧めします。
Laravel Sailでの開発環境の構築方法は以下をご覧ください。
Laravel Sail を使わずに、Composer や MySQL、Node.js など、開発に必要な環境をローカル PC にインストールして構築することもできますが面倒です。
Docker を使用した環境構築は様々なメリットがあります。
開発時に必要な設定や知識
デバッグの方法
どんな言語でも開発時にはデバッグを行います。 Laravel プロジェクトでもブレークポイントを設定し、デバッグを行うことができます。
PHP の開発で、変数の内容を var_dumpで画面に表示したり、ログファイルに出力し確認するのが楽ですが、デバッグの方が何倍も開発効率が上がりますので設定しましょう。
Xdebugを使ってデバッグを行うためには、詳しくは以下の記事をご覧ください。
GitHub の活用
GitHub とは、ソースコードの差分や課題の管理などを行うことができる開発プラットフォームです。
個人でも便利ですし、チームで開発する場合は必須ツールでしょう。
Laravelプロジェクトの管理はGitHubを活用しましょう。
複数人で開発する場合は、リモートリポジトリから自分のローカル PC にソースをダウンロードし、環境を構築・開発などを行っていきます。
クローンした直後は、vendor フォルダが存在しません。
このフォルダの中には Composer で管理しているパッケージが格納されますが、Git の管理対象外になっているためです。
GitHub リポジトリからクローンを行った後には、以下の作業が必要になります。
Composer の活用
Composer とは、PHP のパッケージを管理するためのツールです。
Composerを活用することにより、Laravelプロジェクトに機能を追加することができます。
PHP で開発する際、すべての機能を自分で実装するのは大変です。
既にあるパッケージを組み込んで機能を追加し、プロジェクトを拡張します。
Web アプリケーションを作成する際、認証機能を導入して、ログインを行いユーザ専用のマイページを表示したいケースはあると思います。
Laravel では Breeze という認証機能パッケージが提供されています。
Web アプリケーションの画面を作成する際、レスポンシブデザイン対応など、イチから作成するのは非常に手間です。
そんな時は、出来合いのテンプレートを使い、サクッとアプリケーションを作成しましょう。
「AdminLTE」というパッケージを導入します。
AdminLTE とは、管理画面に最適化されたテンプレートです。
デモサイトを確認すると分かりますが、デザインがとてもいい感じです。
Composerで導入ができます。
NPM の活用
NPM とは、Node.js のパッケージを管理するためのツールです。
Composer と同じように、既にあるパッケージを組み込んで機能を追加し、プロジェクトを拡張します。
Laravel には Vite がインストールされており、トランスパイルを行うことができます。
Viteについては以下の記事にもまとめました。
余談ですが、従来のLaravel Mixに戻すこともできます。
NPM で追加されたパッケージや自分でコーディングしたコードを、ブラウザで動くコードに変換します。
Vue.jsやTypeScriptを導入すると便利です。
Vue.js のメリットは大きく以下が挙げられます。
TypeScript はマイクロソフトによって開発されたプログラミング言語です。
TypeScript は JavaScript に対して、静的型付けとクラスベースオブジェクト指向を加えたスーパーセットとなっています。
脆弱性に関する知識
Web アプリケーションを開発する際に気を付けなければいけないのが、脆弱性に対する対応です。
脆弱性を抱えたアプリケーションの場合、攻撃を受ける可能性があります。
その結果、個人情報の流出、データの改竄など、Web アプリケーションの管理者にとって深刻な問題になります。
IPA のサイトで、「安全なウェブサイトの作り方」が公開されておりますので、一読しましょう。
Laravel フレームワークは、ある程度脆弱性についての対応は考慮されております。
ただし、必ずしも Laravel を使えば安全ということはありません。
以下の記事を一読して確認しましょう。
OWASP ZAP を使用して、Web アプリケーションの脆弱性診断を行うことができます。
OWASP ZAP はオープンソースであり無料で使うことができます。
Web アプリケーションの全ての画面を手動でチェック、または、不正パラメータを手動で送信して確認するのは難しいですが、このツールを使うと自動で様々なパターンの検証を行い診断を行うことができます。
アプリケーションに脆弱性があると例えば以下のような被害に遭い、運営者やそれを利用するユーザにまで影響が及びます。
Web アプリケーションは、場合によっては不特定多数のユーザがアクセスするため、脆弱性がある状態での公開は非常に危険です。
(特に個人情報を扱うようなアプリケーション)
OWASP ZAP を使用し脆弱性診断を行いましょう。
アプリケーションの実装
環境構築やできることがある程度理解できたら、アプリケーションを沢山作成してみましょう!
本サイトで公開している「作ってみよう」記事を、何個か紹介します。
是非、手順通りに実装してみましょう。
以下の記事では、実践でも活かせるようなマスタメンテナンス機能を実装します。
デザインにつきましては、AdminLTE を使用し、一覧・新規登録・編集・削除機能(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について解説している記事がありますのでご覧ください。
コメント