ラボ > Laravel、Lumen:インスト絡み

win+xampp+laravelのインスト手順のメモ(2023年)

作成日:2023-09-12, 更新日:2023-09-12

インストール

任意の場所にカレントを移してcomposerコマンド実行

> composer create-project laravel/laravel プロジェクト名

プロジェクト名がフォルダ名になる

エラー

Warning from https://repo.packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See https://blog.packagist.com/deprecating-composer-1-support/

かなり前にComposerをインストールしていたので「Composer 1」のまま。
で、現在は非推奨らしく、Composer 2にアップグレードすることが推奨されているそうだ

> composer self-update --2

インストール後の確認: バージョンチェック

> php artisan -V

初期設定

config/app.php

'url' => env('APP_URL', 'http://localhost'),
'timezone' => 'Asia/Tokyo',
'locale' => 'ja',
'faker_locale' => 'ja-JP',

.env

DBの設定、APP_URLなど。

マイグレーション実行

artisanのあるトコにカレントを移してartisan実行

>php artisan migrate

.gitignore

gitとか使うなら自分ルールを追加
→「.bak」は対象外にしたいから追加

ハローワールド作成 / Blade Components使用

基本、artisanコマンド使う

目標: 「http://localhost/hello」で「ハロー」と表示

  • ルーティング設定
  • コントローラー作成
  • ベースになる雛形作成
  • メインコンテンツ作成

作業する順番は好きにすればいい

ルーティング設定

「http://localhost/hello」のアクセスを「App/Http/Controllers/HelloController.php」の「index()」に飛ばすような設定にする

▼routes/web.php

<?php

use Illuminate\Support\Facades\Route;

use Illuminate\Http\Request; // ← 追記
use App\Http\Controllers; // ← 追記

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

▼使わないからコメント
// Route::get('/', function () {
//     return view('welcome');
// });

// ログイン不要ページ
Route::get('hello', [Controllers\HelloController::class, 'index']);

コントローラー作成

>php artisan make:controller HelloController

▼作られたファイル
app/Http/Controllers/HelloController.php

app/Http/Controllers/HelloController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HelloController extends Controller
{
	public function index(Request $request){
		// ===============================
		$viewData = array(
			'commonMany' => array(
				'title' => 'ダッシュボード',
			),
		);
		return view('hello', $viewData); // 「ビュー:resources\views\〇〇〇\index.php」を呼び出す
	}
}

ベースになる雛形作成

> php artisan make:component Layout/Common

▼作られたファイル
app/View/Components/Layout/Common.php
resources/views/components/layout/common.blade.php

app/View/Components/Layout/Common.php

変数が増えるたびに書き換えるのが面倒なので配列で渡してもらう

~ 省略 ~
class Common extends Component
{
    public $commonMany; // ビューから雛形に渡す変数の設定

    /**
     * Create a new component instance.
     *
     * @return void
     */
    public function __construct($commonMany)
    {
        $this->commonMany = $commonMany;
    }
~ 省略 ~

※「_」を使うと面倒なコトになるので「$common_many」とはせずに「$commonMany」とする

resources/views/components/layout/common.blade.php

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="csrf-token" content="{{ csrf_token() }}">

        <title>{{ $commonMany['title'] }}</title>
        <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    </head>

    <body>
        {{ $slot }}
    </body>
</html>

メインコンテンツ作成

artisanは使わない。

▼「resources/views/hello.blade.php」を用意

<x-layout.common :commonMany="$commonMany">
    <div class="">
        ハロー
    </div>
</x-layout.common>

アクセスすると「400 Bad Request」になる

public/index.phpの中身を消しても404にならず400になる…
サーバの各設定を見るも原因不明…

▼.htaccessの「RewriteEngine on」の下に追加

RewriteBase /

関連項目

lumen Xamppにインスト
Laravel(5.2) Xamppにインストから最低限のセットまで
win+xampp+laravelのインスト手順のメモ(2023年)