はじめに:Laravelってなんだろう?
Laravelは、現在世界中で最も人気のあるPHPフレームワークの一つです。エレガントで分かりやすい構文が特徴で、Webアプリケーション開発を効率的かつ楽しく進めることができます。
PHPのコードをより構造化し、再利用しやすくするために設計されており、特に中規模から大規模なアプリケーション開発に適しています。
Laravelの主な特徴:
- MVCアーキテクチャ: アプリケーションの関心事をモデル(Model)、ビュー(View)、コントローラ(Controller)に分離し、コードの見通しを良くします。
- Artisanコンソール: データベースのマイグレーション、コード生成、タスク実行など、開発を助ける便利なコマンドラインツールです。
- Eloquent ORM: データベース操作をオブジェクト指向的に、直感的に行えるようにします。
- Bladeテンプレートエンジン: PHPコードをHTML内にシンプルに記述でき、レイアウトの継承なども簡単に実現できます。
- 豊富な組み込み機能: ルーティング、ミドルウェア、認証、キャッシュ、キューなど、Web開発に必要な多くの機能が標準で提供されています。
Laravelを学ぶことで、モダンなPHP開発の手法を身につけ、より効率的に高品質なWebアプリケーションを構築できるようになります。さあ、一緒にLaravelの世界を探検しましょう!
ステップ1:Laravelを導入してみよう!
必要なもの
Laravelプロジェクトを開始するには、まず以下のツールがコンピュータにインストールされている必要があります。
- PHP: Laravel 11 (2024年3月リリース) を利用する場合、PHP 8.2以上が必要です。それ以前のLaravelバージョンでは要求されるPHPバージョンが異なります。
- Composer: PHPのパッケージ管理ツールです。Laravel本体や関連ライブラリのインストールに使用します。
まだインストールしていない場合は、それぞれの公式サイトを参照してインストールしてください。
Composerでプロジェクト作成
Composerが利用可能になったら、ターミナル(コマンドプロンプト)を開き、プロジェクトを作成したいディレクトリに移動して、以下のコマンドを実行します。
my-laravel-app
の部分は、あなたの好きなプロジェクト名に変更してください。このコマンドは、最新安定版のLaravelプロジェクトをダウンロードし、必要な依存関係をインストールします。
特定のLaravelバージョンを指定してインストールしたい場合は、次のようにバージョン番号を追加します。(例:Laravel 10系)
プロジェクトの構造 (一部抜粋)
プロジェクトが作成されると、様々なディレクトリやファイルが生成されます。主要なものをいくつか見てみましょう。
ディレクトリ/ファイル | 主な役割 |
---|---|
app/ |
アプリケーションのコアコード(モデル、コントローラ、プロバイダなど)が格納されます。 |
config/ |
データベース接続情報やキャッシュ設定など、アプリケーションの設定ファイルが格納されます。 |
database/ |
データベースマイグレーションやシーディング(初期データ投入)に関するファイルが格納されます。 |
public/ |
Webサーバーから直接アクセスされる公開ディレクトリです。index.php (アプリケーションのエントリポイント)やCSS/JSファイルなどが置かれます。 |
resources/ |
ビューファイル(Bladeテンプレート)、言語ファイル、未コンパイルのアセット(CSS/JS)などが格納されます。 |
routes/ |
アプリケーションのルーティング(URLと処理のマッピング)定義ファイルが格納されます。主に web.php と api.php を使用します。 |
storage/ |
コンパイルされたBladeテンプレート、セッションファイル、キャッシュ、ログファイルなどが格納されます。Webサーバーからの書き込み権限が必要です。 |
vendor/ |
Composerによってインストールされた依存パッケージが格納されます。 |
.env |
環境固有の設定(データベース接続情報、APIキーなど)を定義するファイルです。バージョン管理には含めないように注意しましょう。 |
ステップ2:基本的な動かし方を見てみよう!
開発用サーバーの起動
Laravelには、開発に便利な組み込みのWebサーバーが用意されています。プロジェクトディレクトリに移動し、以下のArtisanコマンドを実行してみましょう。
サーバーが起動すると、通常は http://127.0.0.1:8000
または http://localhost:8000
でアクセスできるようになります。ブラウザでこのURLを開くと、Laravelのウェルカムページが表示されるはずです。
ルーティング:リクエストの入り口
Webアプリケーションは、特定のURLへのアクセスに対して、対応する処理を実行します。この「URLと処理を結びつける」仕組みがルーティングです。Laravelでは、主に routes/web.php
ファイルでWeb用のルートを定義します。
routes/web.php
ファイルを開いてみましょう。初期状態では、ウェルカムページを表示するためのルートが定義されています。
ファイルを保存した後、ブラウザで http://localhost:8000/hello
にアクセスしてみてください。「Hello Laravel! 」と表示されれば成功です!
コントローラ:処理をまとめる場所
ルート定義の中に直接処理(クロージャ)を書くこともできますが、アプリケーションが複雑になってくると、関連する処理をクラスにまとめた方が管理しやすくなります。この処理をまとめるクラスがコントローラです。
以下のArtisanコマンドで、新しいコントローラを作成してみましょう。
このコマンドにより、app/Http/Controllers/WelcomeController.php
ファイルが作成されます。中身を以下のように編集してみましょう。
次に、routes/web.php
を編集して、ルートからこのコントローラのメソッドを呼び出すように変更します。
これで、URLへのアクセスがあると、対応するコントローラのメソッドが実行されるようになりました。ただし、/
にアクセスすると、まだ greeting
というビューが存在しないためエラーになります。次のステップでビューを作成しましょう。
ステップ3:ビューとBladeテンプレートエンジン
ビューは、ユーザーに表示されるHTMLなどを生成する役割を担います。Laravelでは、Bladeというシンプルで強力なテンプレートエンジンが標準で用意されています。Bladeを使うと、PHPのロジックをHTML内に簡潔に埋め込んだり、テンプレートの再利用を容易にしたりできます。
ビューファイルは resources/views
ディレクトリに配置し、ファイル名は .blade.php
という拡張子をつけます。
先ほどコントローラから呼び出すように設定した greeting
ビューを作成しましょう。resources/views/greeting.blade.php
というファイルを作成し、以下のように記述します。
このファイルを保存した後、ブラウザで http://localhost:8000/
にアクセスしてみてください。コントローラから渡された名前が表示され、条件分岐やループが実行されているのが確認できるはずです。
レイアウトの継承
多くのWebページでは、ヘッダー、フッター、サイドバーなど共通のレイアウト部分があります。Bladeでは、レイアウトの継承機能を使って、これらの共通部分を一つの親レイアウトファイルにまとめ、各ページでそのレイアウトを再利用できます。
例:resources/views/layouts/app.blade.php
(親レイアウト)
例:resources/views/child.blade.php
(子ビュー)
このようにレイアウトを継承することで、コードの重複を減らし、メンテナンス性を向上させることができます。
まとめ
今回は、PHPフレームワークLaravelの導入方法と、基本的な操作について学びました。
- Composer を使ってLaravelプロジェクトを作成する方法
- Artisanコマンド (
serve
,make:controller
) の基本的な使い方 - ルーティング (
routes/web.php
) でURLと処理を結びつける方法 - コントローラ で処理をまとめる方法
- ビューとBladeテンプレートエンジン (
{{ }}
,@if
,@foreach
,@extends
,@yield
,@section
) を使って画面を生成する方法
これらの知識は、Laravelを使ったWebアプリケーション開発の第一歩です。実際に手を動かして、コードを書き換えてみることで、より理解が深まるはずです。
次のステップでは、Laravelの重要な設計思想であるMVCアーキテクチャについて、さらに詳しく掘り下げていきます。モデル(Model)の役割やデータベースとの連携方法などを学び、より本格的なWebアプリケーション開発への扉を開きましょう!