初心者向けLaravelチュートリアル:基本からプロジェクト構築まで完全ガイド

Laravel入門

ウェブ開発の世界において、LaravelはPHPで最も人気のあるフレームワークの一つです。初心者でも理解しやすく、PHPを使ったモダンなウェブアプリケーション開発を効率的に行えるため、多くの開発者に採用されています。このガイドでは、Laravelの基本からプロジェクト構築までしっかりとカバーしていきます。

Laravelとは?

Laravelは、シンプルで効率的なコードを書くことを目的としたPHPフレームワークです。開発者が直面する一般的なタスクをシンプル化し、一貫性のある開発体験を提供します。モデルとビュー、コントローラーというMVCパターンに基づいていて、開発者がコードを管理しやすくするために役立ちます。Eloquent ORM、ルーティング、セッション管理、キャッシング、認証、メール送信など、多くの機能を内蔵しています。

Laravelのインストール

最初にLaravelを使用するには、いくつかのステップを踏んでインストールを行う必要があります。準備として、PHPの最新バージョン、Composer(PHPのパッケージ管理ツール)、およびデータベース(MySQL, PostgreSQLなど)のセットアップを確認しましょう。

Composerのインストール

まず、Composerをインストールします。ComposerはLaravelが依存するライブラリを管理するためのPHPライブラリ管理ツールです。公式サイト(https://getcomposer.org/)からダウンロードし、インストール手順に従ってください。

Laravelのインストール

LaravelはComposer経由でインストールします。ターミナルまたはコマンドプロンプトを開き、以下のコマンドを実行します。

composer global require "laravel/installer"

インストールが完了すると、laravelコマンドが使用可能になります。このコマンドを使って新しいLaravelプロジェクトを作成できます。

新しいプロジェクトの作成

ターミナルで以下のコマンドを入力してLaravelプロジェクトを作成します。

laravel new my-project

このコマンドが完了すると、my-projectというディレクトリにLaravelのプロジェクトが作成されます。作成されたプロジェクトディレクトリに移動し、内蔵の開発サーバーを起動しましょう。

cd my-project
php artisan serve

ブラウザを開いてhttp://localhost:8000にアクセスし、Laravelウェルカムページが表示されることを確認します。

Laravelの基本構造

Laravelプロジェクトのディレクトリ構造について理解しておくことは非常に重要です。ここでは、いくつかの主要なディレクトリについて説明します。

appディレクトリ

ここにはアプリケーションのコアコードが含まれます。特にHttp, Modelsなどのサブディレクトリには、コントローラーとモデルのコードが含まれます。

routesディレクトリ

ルーティングはアプリケーションへのアクセスポイントを定義します。web.phpファイルにブラウザ経由のアクセスルートを定義し、api.phpにAPIルートを定義します。

resourcesディレクトリ

ビューや言語ファイル、アセット(CSS, JavaScriptなど)が含まれます。viewsサブディレクトリはBladeテンプレートエンジンを使用するHTMLファイルが格納されています。

基本的な機能の実装

それでは、簡単なウェブアプリケーションの作成に向けて基本的な機能を実装してみましょう。

ルーティングの設定

routes/web.phpに以下のコードを追加して、新しいルートを定義します。

Route::get('/hello', function () {
    return 'Hello, Laravel!';
});

このルートにアクセスすると、ブラウザには“Hello, Laravel!”というメッセージが表示されます。

コントローラーの作成

次に、コントローラーを作成して、ルートからロジックを分離します。以下のコマンドを実行してコントローラーを生成します。

php artisan make:controller HelloController

app/Http/Controllers/HelloController.phpを開き、以下の内容を追加します。

namespace App\Http\Controllers;

class HelloController extends Controller
{
    public function index()
    {
        return view('hello');
    }
}

routes/web.phpを更新し、ルートをコントローラーに接続します。

Route::get('/hello', [HelloController::class, 'index']);

Bladeテンプレートの設定

次に、ビューを作成します。resources/viewsディレクトリにhello.blade.phpというファイルを作成し、以下を追加します。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello Laravel</title>
</head>
<body>
    <h1>Hello, Laravel!</h1>
</body>
</html>

ブラウザでhttp://localhost:8000/helloにアクセスし、ビューが正しく表示されることを確認します。

データベースの接続と利用

Laravelでは簡単にデータベースを利用できます。データベースの設定は、.envファイルで行います。

データベース設定

.envファイルを開き、以下のように設定を行います。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laraveldb
DB_USERNAME=root
DB_PASSWORD=

設定が完了したら、データベースにテーブルを作成し、データを簡単に操作できるよう準備します。

モデルとマイグレーション

まず、モデルと連携するテーブルを作成するためにマイグレーションを追加します。

php artisan make:model Task -m

このコマンドは、Taskモデルを作成し、関連するマイグレーションファイルを生成します。次に、database/migrationsディレクトリ内にあるマイグレーションファイルを編集し、テーブルの構造を定義します。

public function up()
{
    Schema::create('tasks', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->timestamps();
    });
}

マイグレーションを実行して、データベースにテーブルを作成します。

php artisan migrate

データ操作

データはEloquent ORMを用いて操作します。Taskモデルを使用して、データベースからデータを取り出す手順を次に示します。

app/Http/Controllers/TaskController.phpを作成し、以下のコードを追加します。

namespace App\Http\Controllers;

use App\Models\Task;

class TaskController extends Controller
{
    public function index()
    {
        $tasks = Task::all();
        return view('tasks.index', ['tasks' => $tasks]);
    }
}

ビューを作成し、データを表示します。resources/views/tasks/index.blade.phpに以下を追加します。

<h1>Task List</h1>
<ul>
    @foreach ($tasks as $task)
        <li>{{ $task->name }}</li>
    @endforeach
</ul>

routes/web.phpにルートを追加して、一覧表示するページを準備します。

Route::get('/tasks', [TaskController::class, 'index']);

ブラウザでアプリケーションのURLを訪問し、タスクが正しく表示されることを確認してください。

結論

これで基本的なLaravelプロジェクトの設定と簡単なアプリケーションの構築方法が理解できたかと思います。Laravelは非常に多機能で、ここではそのほんの一部を紹介しましたが、公式ドキュメントやコミュニティリソースを活用して、さらに深く探求してみてください。実際のプロジェクトを構築する際には、認証、API開発、ユニットテストなど、他の多くの機能を使用することができるので、ぜひ挑戦してみてください。

レン (Wren)

こんにちは。レンです。

Laravelのコードの森に住んでいる、小さな案内役です。
ルーティングの枝やクラスの影を歩きながら、コードの流れや仕組みを眺めています。

このサイトでは、Laravelの基本から実装のコツまで、開発で役立つポイントを静かに整理しています。
難しいことを増やすのではなく、コードの見通しが少し良くなるヒントを届けるのが役目です。

「この処理はどこに書くのがいいのか」
「Laravelではどう考えると整理できるのか」

そんな疑問に、小さなメモを残すような気持ちで記事を書いています。

コードを書いている途中で迷ったとき、
このサイトが少し立ち止まって整理できる場所になればうれしいです。

レン (Wren)をフォローする

コメント