Zenn
🫐

Laravel11の環境構築と動作確認、認証機能を実装する

2025/03/25に公開

はじめに

WEBアプリ開発によく使われるPHPその代表的フレームワークであるLaravel
今回はそのLaravelを使った簡単な認証、処理、表示を実装し、動作確認をしていきます!

環境

OS:MacBook Air (M2チップ)
バージョン:Sonoma 14.4.1
PHP:8.3.14
Laravel:11.44.2

Laravel のドキュメントについて

ドキュメントとは、プログラムの使い方や仕様を説明する文章のことです。
開発者やユーザーがコードを理解しやすくするために作成してくれています。

▶ 公式ドキュメント:https://laravel.com/docs/11.x
https://laravel.com/docs/11.x
▶ ドキュメントの日本語訳:https://readouble.com/laravel/11.x/ja/
https://readouble.com/laravel/11.x/ja/

困ったことがあれば見てみてください

環境構築

PHPとComposerのセットアップ

Laravelの環境構築には PHPComposer のセットアップが必要です。
まず、以下のコマンドでインストールされているか確認してください。

$ php --version
PHP 8.3.14 (cli) (built: Nov xx xxxx xx:xx:xx) (NTS)
$ composer --version
Composer version 2.8.5 xxxx-xx-xx xx:xx:xx

✅ 上記のようになっていればOKです

セットアップはこちら

▶ PHPのセットアップ手順

https://career.levtech.jp/guide/knowhow/article/839/

▶ Composerのセットアップ手順(公式ドキュメント)

https://getcomposer.org/download/
セットアップが完了したら、再度上記のコマンドを実行して確認をしてください

Laravel11の環境構築

Laravelの環境構築の方法は主に2つあります

1. composer create-projectを使ったやり方(おすすめ)

最新バージョンでプロジェクトを生成

$ composer create-project laravel/laravel [project-name]

バージョンを指定してプロジェクトを生成(今回はこちら)

$ composer create-project “laravel/laravel=11[project-name]

-> = の後にメジャーの値のみを指定するとそのバージョンの最新版がセットアップされます

2. インストーラーを使った方法

まず、インストーラーをダウンロード

$ composer global require laravel/installer 

次に、インストーラーを使ってセットアップ

$ laravel new [project-name]

確認

$ php artisan --version
Laravel Framework 11.44.2

✅ これで環境構築が完了しました!

動作確認

💪では、動作確認をしてみましょう!

$ php artisan serve
INFO  Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the server

URLをCtrlCを押しながらクリックし、トップページが表示されればOKです🎉

ファイルの紹介

自動的に色々なディレクトリが生成されていますよね?
そのディレクトリごとの簡単な解説をします。みてわかる人は跳んで次に進んでください

ディレクトリ名 機能 説明
app アプリケーションコード Laravelアプリの主要なロジックを管理するディレクトリ
bootstrap アプリケーションの起動処理 Laravelのフレームワークを起動し、設定やキャッシュを管理するディレクトリ
config 設定ファイル Laravelの設定ファイルを管理するディレクトリ
database データベース管理 データベースに関連するファイルを管理するディレクトリ
public Web, 公開ディクトリ 公開アクセスが許可されたファイルを配置するディレクトリ
resources ビュー、テンプレート、言語ファイル管理 ビューや言語ファイル、未コンパイルのアセットを管理するディレクトリ
routes ルーティング管理 アプリケーションのルーティングを定義るすディレクトリ
storage キャッシュやログ管理 アプリケーションのファイルやキャッシュを保存するディレクトリ
tests テストファイル Laravelアプリケーションのテストコードを管理するディレクトリ
vendor 環境ファイル Composerによってインストールされた外部パッケージやライブラリを管理

このような構成です

認証機能

では認証機能を実装します
🙋あれ?表示画面や処理をせずに先に認証機能をするの?
と思うかも知れませんが、
Breezeを使った認証機能の場合は、先にBreezeをインストールしておくことが重要です。

なぜ先にインストールするべきか?
->config/auth.phpなどの設定が自動的に書き換えられるからです

開発が進んだ後にこの認証機能を実装し、設定が自動的に書き換わると...
考えたくもないですね
😇

🪪Breeze実装

では、Breezeを使って認証機能を実装していきます
https://github.com/askdkc/breezejp
基本的に以下の通りにすれば大丈夫なはずです

▶ Breezeをインストール

今回はBladeテンプレートを使用します

$ composer require laravel/breeze --dev
$ php artisan breeze:install blade
その他オプション(必要なら)
$ php artisan breeze:install [第一引数] [--オプション]

第一引数

フロントエンド 説明
Blade Bladeテンプレート
React Reactフロントエンド
Vue Vueフロントエンド
API APIのみ

オプション

オプション 説明
--dark ダークモードUI有効
--ssr サーバーサイドレンダリング有効
--typescript TypeScriptサポート有効
--pest PHPUnitの代わりにPestテストを利用

--念の為--

$ php artisan migrate
INFO  Nothing to migrate.  

✅ これでだけでBreezeのインストールは完了です!

⭐️また, 認証時のエラー文や言語設定を日本語化させたい方はBreezejpを追加で設定します

Breezejpを適応

$ composer require askdkc/breezejp --dev
$ php artisan breezejp
.
.
.
Laravel Breeze用に日本語翻訳ファイルを準備します
config/app.phpのlocaleをjaにします

 GitHubリポジトリにスターの御協力をお願いします🙏 (yes/no) [yes]: 
 
 (ブラウザが開いてこのGitHubリポが開きます。スター頂けると励みになります)
 
 Thank you! / ありがとう💓
日本語ファイルのインストールが完了しました!

上記のコマンドを実行した後に、再度

$ php artisan serve

✅ をすると、トップページにLoginRegisterが現れたと思います!

🖊️Registerで新規登録してみましょう

  1. Registerをクリックし、
  2. 情報を記述します(パスワードはデフォルトで8文字以上必要です)
  3. 登録

データベースに保存されているか確認する

🗂️今回はデフォルトで設定されているDBであるSqliteを使っています。

[project-name]/database/database.sqliteにファイルがあります

中身を見てみましょう

・sqlite3のシェルを開く

[project-name]/
$ sqlite3 database/database.sqlite

・テーブル一覧を表示

sqlite> .tables

・先ほど登録したユーザー情報を表示

sqlite> SELECT * FROM users;
1|test|test@example.com||$2y$12$MedIemeUkI3igLEYWMUEHu1eou5WbcsjE/FTDL2O8iEj40vKI564e||xxxx-xx-xx xx:xx:xx|xxxx-xx-xx xx:xx:xx
sqlite> 

上記のコマンドで登録した情報が確認できたらOKです🎉

他のデータベースが使いたい方は各自で設定してください!💪

ページを作ってみよう

では認証機能もできたので、ページを作ってみましょう

今回は http://127.0.0.1:8000/hello のページを追加していきます

📄viewファイルを作成

まず、見た目のviewファイルを作成します。

$ php artisan make:view hello
元コマンド
$ php artisan make:view [ファイル名]

[project-name]/resources/viewsの中にhello.blade.phpが生成されます

中身を以下のように記述

hello.blade.php
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Welcome</title>
    </head>
    <body>
        @if(filled($name) && filled($hobby))  //nameとhobbyの値がどちらも存在すれば
            こんにちは、{{ $name }}さん!<br/>
            {{ $hobby }}が好きなんですね!
        @else  //nameかhobbyがなければ
            名前と趣味を入力してください。
        @endif

        <form>  //送信ボタンが押されるとnameとhobbyが送信される
            名前:<input type="text" name="name" value="{{ $name }}">
            <br/>
            趣味:<input type="text" name="hobby" value="{{ $hobby }}">

            <input type="submit" value="送信する">
        </form>

    </body>
</html>

✅ これで見た目はできました!

🪢ルーティングを設定

次にルーティングを設定します

[project-name]/routes/web.php

web.php
use App\Http\Controllers\HelloController;

HelloControllerクラスを使うと宣言

web.php
Route::get('hello', [HelloController::class, 'index'])
    ->middleware('auth')  // authミドルウェアを追加
    ->name('hello'); 

認証済みのユーザーが/helloというURLにアクセスしたときにHelloControllerクラスのindexメソッドを呼び出す

この二つを追加します

編集後のweb.php
web.php
<?php

use App\Http\Controllers\HelloController;
use App\Http\Controllers\ProfileController;
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

Route::get('/dashboard', function () {
    return view('dashboard');
})->middleware(['auth', 'verified'])->name('dashboard');

Route::middleware('auth')->group(function () {
    Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
    Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
    Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
});

Route::get('hello', [HelloController::class, 'index'])
    ->middleware('auth')  // authミドルウェアを追加
    ->name('hello'); 

require __DIR__.'/auth.php';

✅ このようにすればOKです

🎛️コントローラーファイルを作成

最後に処理を行うコントローラーを作成します

$ php artisan make:controller HelloController
元コマンド
$ php artisan make:controller [コントローラー名]

[project-name]/app/Http/Controllers/HelloCOntroller.phpが生成されます
中身を以下のように記述

HelloController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HelloController extends Controller
{
    public function index(Request $request)
    {
        $name = $request->input('name');  //$requestの中からnameプロパティを取得
        $hobby = $request->input('hobby');  //$requestの中からhobbyプロパティを取得

        // ビューにnameとhobbyを渡してHTMLを生成し、表示
        return view('hello', ['name' => $name, 'hobby' => $hobby]);
    }
}

✅ コントローラの準備が完了しました!

👣動作確認

http://127.0.0.1:8000/hello

に移動してください

画面内容
この画像のようになっていれば成功です🎉🎉🎉
フォームに値を入力してどう変わるか試してみてください!

🍛 お疲れ様でした〜

今回はLaravel11を使った認証機能やちょっとした画面を作りました
難しかったでしょうか?
ちなみに私は初めてLaravelを触ったときは難しく感じましたね...💧
ほんとに初心者向けの言語なのか?とも思いました

そんな話はさておき、今回の記事でLaravelプロジェクトを始めるきっかけになっていただけたら嬉しいです!

Discussion

ログインするとコメントできます