Laravel入門!(環境構築~コントローラ作成まで)

Laravel

Composerインストール

Composerとは、phpの外部ライブラリをインストールするためのパッケージ管理ツールです。

LaravelをインストールするにはComposerが必要なため、インストールします。

手順

composerサイトにアクセスして、インストーラーをダウンロード

②php.iniを編集(Xdebug無効化) 

// 下記の設定をコメントアウトする
; [xdebug]
; zend_extension = "C:\pg\php-8.4.8-nts-Win32-vs17-x64\ext\php_xdebug-3.4.4-8.4-nts-vs17-x86_64.dll"
; xdebug.mode=debug
; xdebug.start_with_request=yes
; xdebug.client_host=localhost
; xdebug.client_port=9003

③インストーラー起動し、composerをインストールする

④composerのバージョン確認 下記コマンドでcomposerが起動する

composer -v

Laravelプロジェクト作成

Laravelは、PHPのWebアプリケーションフレームワークの1つです。MVCアーキテクチャを採用しており、開発効率の向上や保守性の高いコードの作成を実現できます。多くの便利な機能が標準で搭載されているため、PHPでの開発において人気の高いフレームワークとなっています。

①Laravelのサーバー起動の際に「php.ini」で下記の設定を有効化する必要があるので、探してコメントアウトを解除しておく必要があります。

; extension=openssl ←先頭の「;」セミコロンを解除

②Laravelプロジェクトを作成するには、composerを使用します。下記のコマンドで、新規プロジェクトを作成します。

composer create-project laravel/laravel example-app

※上記を実行したディレクトリ直下にLaravelプロジェクトが作成されます。

ディレクトリ構造:

フォルダ名説明
app/アプリケーションのコアコード(コントローラー、モデル、リクエストなど)
bootstrap/アプリケーション起動時の初期設定(app.php でアプリケーションインスタンスを生成)
config/設定ファイル(DB、キャッシュ、セッション、Mail 等)
database/マイグレーション、ファクトリ、シーダーなど DB 関連
public/Web サーバーがアクセスする唯一のフォルダ。index.php がエントリーポイント
resources/Blade テンプレート、CSS/JS など未コンパイルのリソース
routes/ルート定義ファイル(web.phpapi.php など)
storage/ログ、キャッシュ、ファイルのアップロード保存先など
tests/PHPUnit 用の自動テストコード(Feature、Unit)
vendor/Composer が管理する外部パッケージ

ファイル構成(ルート直下のファイル)

ファイル名説明
.editorconfigコーディングスタイル統一設定(インデント幅や文字コードなど)
.envアプリケーションの環境設定(DB接続情報、APP_KEYなど) ※公開禁止!
.env.example.envのテンプレート。新しい開発者はこれをコピーして .env を作成
.gitattributesGitがファイルを扱う際の属性設定(特に改行コードの扱いなど)
.gitignoreGitで管理しないファイル・フォルダのリスト(.envvendor/ など)
artisanLaravelのCLIコマンド実行用ファイル(マイグレーション、サーバー起動など)
composer.json使用しているPHPパッケージやスクリプトの定義ファイル
composer.lock実際にインストールされたパッケージのバージョンを固定するファイル
package.jsonJavaScript関連パッケージの定義ファイル(Viteなどで使用)
phpunit.xmlPHPUnitによるテスト設定ファイル(テスト対象や設定)
README.mdプロジェクトの概要説明(GitHub等で表示される)
vite.config.jsViteの設定ファイル。JS/CSSのビルド設定などを記述する

Laravel開発サーバ起動

開発サーバーを起動するには、プロジェクトのルートディレクトリで以下のコマンドを実行します。

php artisan serve

デフォルトでは、開発サーバーは http://localhost:8000 でアクセス可能になります。

何も設定を行わず、開発サーバーを起動して、アクセスするとエラーになります。

エラーの原因はDB接続設定が定義されていないためです。

一旦、DB接続を無効にして、エラーが出ないようにします。「.env」ファイルDB接続設定があるので、下記の行をコメントアウトして無効化します。

// DB接続設定をコメントアウト
# DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=

// セッションドライバー設定をdatabase→fileに変更
# SESSION_DRIVER=database
SESSION_DRIVER=file

上記の設定変更後、http://localhost:8000 にアクセスすると、laravelの初期ページが表示されます

ルーティング方法

ルーティングとはページのURLを決めるための設定のことです。

簡単なテストルート

ルーティングを設定するにはroutes/フォルダ直下のweb.php編集します。

web.phpを開き、設定を追加し、「http://127.0.0.1:8000/hello」にアクセスすると関数で返した文字列がページに表示されるよう設定します。

<?php
// デフォルト設定
use Illuminate\\Support\\Facades\\Route;

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

// ↓追加
// 簡単なテストルート
Route::get('/hello', function () {
    return 'Hello Laravel!';
});
// ↑追加

画面表示

解説

:: 演算子について

Route::get() で使われている :: は、スコープ解決演算子(Scope Resolution Operator)と呼ばれ、クラス名から静的なメソッドや定数にアクセスするための構文です。つまり、Routeクラスのget()メソッドを呼び出して、ルーティング設定をしているという事になります。

use演算子

クラスや関数、名前空間をインポートする際に使用する。

HTML(Bladeテンプレート)を表示してみる

laravelでHTMLを表示するには、生成するHTML(Bladeテンプレート)を配置し、ルーティングを指定する必要があります。

まず、表示するページ(Bladeテンプレート)を作成します。

①配置場所はresources/views/直下です。hello.blade.phpファイルを作成します

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello Laravel</title>
</head>
<body>
    <h1>Hello Laravel!</h1>
    <p>これはDBなしのテストページです。</p>
</body>
</html>

web.phpでルーティングします。テンプレートをルーティングするには下記のように記述します。

// テンプレートをview関数で指定する。
Route::get('/hello', function () {
    return view('hello');
});

③開発サーバーを起動し、「http://127.0.0.1:8000/hello」にアクセスすると、作成したテンプレートが表示されます

※テンプレートに値を渡す方法

テンプレートに値を渡すにはView関数を使って引数に値を指定します。

例として、”ゲスト”という文字列を渡してみます。

web.php

// テンプレートをview関数で指定する。
Route::get('/hello', function () {
    return view('hello', ['name' => 'ゲスト']);  // ←第2引数に配列でキーを指定し、渡す。
});

hello.blade.phpテンプレート

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello Laravel</title>
</head>
<body>
    <h1>Hello Laravel!</h1>
    <p>これはDBなしのテストページです。</p>
    <p>ユーザー名:{{ $name }}</p>  
    // ↑web.phpで指定したキーnameを{{}}で囲むことで文字列を取り出せる
</body>
</html>

表示

コントローラを作ってみる

先程まではMVCの「V: View」に当たる部分を作成しました。次はMVCの「C: Controller」を作成してみます。

①下記コマンドでapp/Http/Controllers/HelloController.phpが作成します。

// コントローラ作成コマンド
php artisan make:controller HelloController 

②作成されたHelloControllerクラスを編集してメソッドを追加します。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HelloController extends Controller
{
    /**
     * テスト用ページの表示.
     *
     * @return \Illuminate\View\View
     */
    public function index()
    {
        return view('hello', ['name' => 'ゲスト']);
    }
}

web.phpHelloController.phpをインポートして、ルーティング設定をします

// インポート
use App\Http\Controllers\HelloController;

// ・・省略・・
// 初期ページ表示ルーティング設定 

// Helloルーティング設定
Route::get('/hello', [HelloController::class, 'index']);

④開発サーバーを起動し、「http://127.0.0.1:8000/hello」にアクセスすると、先ほどと同じテンプレートが表示されます。

まとめ

以上、Laravel入門 環境構築~コントローラ作成まででした。この記事の内容は下記です。

  • Composerのインストール
  • プロジェクト作成方法
  • ルーティング設定をして、ページを表示する方法
  • コントローラ作成方法

これからLaravel入門をシリーズ化して記事を投稿していくので、良かったら、見ていってください!

コメント

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