- 投稿日:2020-11-18T19:39:59+09:00
PHP8 RC、Composer2、Xdebug3 RCでLaravel8.xを動かす
概要
- PHP8.0がRCになっていたから諸々新し目のものを使って環境構築してみるよ
- 環境自体はDockerで構築していくよ
- 全ての環境に対応出来るわけじゃないと思うけど参考になれば嬉しいよ
- PHP8.0もXdebug3もRCなので現状は実運用しないように、とはいえ開発していくのには見ていくことも必要だよね
最終的な環境
$ docker-compose exec app php --version PHP 8.0.0RC4 (cli) (built: Nov 12 2020 20:17:20) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies with Zend OPcache v8.0.0RC4, Copyright (c), by Zend Technologies with Xdebug v3.0.0RC1, Copyright (c) 2002-2020, by Derick Rethans $ docker-compose exec app composer --version Composer version 2.0.7 2020-11-13 17:31:06成果物
GitHubにあげてあるので参考にどうぞ
Dockerfileの最終状態もリポジトリにあげてありますhttps://github.com/hrs-o/PHP8.0RC-Laravel
PHP7.4 時代のDockerfile
- この7.4時代のDockerfileを8.0RC用に書き直していくのが主目的
FROM php:7.4-fpm-alpine RUN apk upgrade --update && \ apk --no-cache add autoconf build-base git libxml2-dev libzip-dev oniguruma-dev openssh rsync RUN docker-php-ext-install -j$(nproc) zip pdo_mysql mysqli RUN docker-php-ext-install -j$(nproc) bcmath fileinfo ctype json mbstring tokenizer xml RUN docker-php-ext-install -j$(nproc) opcache RUN pecl install apcu \ && docker-php-ext-enable apcu RUN pecl install xdebug \ && docker-php-ext-enable xdebug RUN pecl install redis \ && docker-php-ext-enable redis RUN curl -sS https://getcomposer.org/installer | php \ && mv composer.phar /usr/local/bin/composer \ && composer self-update RUN composer global require hirak/prestissimo RUN composer global require squizlabs/php_codesniffer RUN composer global require friendsofphp/php-cs-fixer RUN composer global require phpmd/phpmd RUN chmod 777 /var/log/ ENV PATH "/root/.composer/vendor/bin:$PATH"試したこと
Imageを
8.0-rc-fpm-alpine
に変更当然というか流石にbuild通らず
RUN docker-php-ext-install -j$(nproc) json
でコケる
- 指定せずとも利用出来るので単純に省いた
- https://wiki.php.net/rfc/always_enable_json
- 現在peclがPHPのイメージから省かれているらしいので使えない
- https://externals.io/message/103977
- PHP7.4かららしいけどPHP7.4でpecl通っていたんだけどな……?
- そのためpeclの代わりにFriendsOfPHP/pickleを利用検討
FriendsOfPHP/pickleの利用
- releaseから取得したpickleだとXdebug-betaのVERSIONがうまく取得出来ずエラーになってしまう
- masteをビルドしてね、とのことだがxdebugのbetaのVERSIONがパースエラーになるため利用出来ない
- そのためForkして自リポジトリで修正した状態で利用することに(PR自体は送信済み、受け入れられると嬉しい)
- 現状pickleはcomposer1でないと利用出来ないのでComposer1のイメージでビルドしてからPHP8.0の方にCOPY
- peclでインストールしていた部分をpickleに変更することでapcu、xdebug-beta、redisのインストールができた
FROM composer:1 as pickle RUN cd /tmp \ && git clone https://github.com/hrs-o/pickle.git \ && cd pickle \ && git checkout update/dumper-stability \ && composer install --no-dev --optimize-autoloader \ && php -d phar.readonly=0 box.phar build FROM php:8.0-rc-fpm-alpine COPY --from=pickle /tmp/pickle/pickle.phar /usr/local/bin/picklehirak/prestissimoがインストールできない
- hirak/prestissimoは現状Composer2に未対応のようなので一旦諦め。
- というかComposer2は高速だからprestissimo使わなくていいよね!ってリポジトリに記載有り。
ということでここまでで一応Dockerfileの修正は終わったのでLaravelのインストールと動作確認をしていく。
Laravelのインストール
$ mkdir src $ docker-compose exec app composer create-project --prefer-dist laravel/laravel . "8.*".envの設定
DB接続とRedisへの接続を試すので設定しておく
.env~~ DB_CONNECTION=mysql DB_HOST=php8-mysql DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=root ~~ REDIS_HOST=php8-redis REDIS_PASSWORD=null REDIS_PORT=6379 ~~migrate実行
$ docker-compose exec app php artisan migrateView・Contoroller・Roterを定義し実行
内容はコミットを参照してください
https://github.com/hrs-o/PHP8.0RC-Laravel/commit/69e1aae936ff77b6c165c68f5f39576301c697f8ひとまずDB接続、Redisへの接続も上手く行っていそう
IDEからリモートデバッグ出来るか確認
今回はIntelliJ Idea(PHPStorm)を対象とする
Xdebugの設定が変わっているので修正
https://3.xdebug.org/docs/upgrade_guide
php.ini[xdebug] - xdebug.remote_enable = 1 + xdebug.mode = debug - xdebug.remote_autostart = 1 + xdebug.start_with_request = yes - xdebug.remote_host = host.docker.internal + xdebug.client_host = host.docker.internal - xdebug.remote_port = 9000 + xdebug.client_port = 9003 xdebug.remote_log = /tmp/xdebug.log xdebug.idekey = PHP8XDEBUGのPort設定
- Languages & Frameworks > PHP > Debug 内のXdebug portを 9003 に変更
PHP Remote Debugの設定
- Edit Configurations を開く
- 左上の+ を押して PHP Remote Debug を選択
- Filter debug connection by IDE keyにチェックを入れる
- IDE keyに PHP8を入力
- Server の横にある .. を押す
- Serversダイアログ左上にある + を押してサーバーを追加
- Hostに
localhost
を設定- Portに
58080
を設定- Use path mappings にチェック
- Project filesのsrcに対応するAbsolute path on the serverに /src を記述してOK
リモートデバッグ実行
- コードの適当なところにブレークポイントを設定
- 作成したPHP Remote Debugをデバッグ実行
- ブレークポイントを設定したコードを通る処理の実行
今回、自分の環境ではステップ実行出来るのは確認済み
まとめ
- 書いてみると単純なことばかりだけどpickle周りはとてもてこずった
- というかほとんどpickleのソースリーディングと修正に時間かった
- 実際利用する際にはライブラリがcomposer2に対応しておらず使えないこともまだ多そうなので何ともだがPHP8に向けて触っていく位の構築はできたんじゃないかなと
参考
【PHP8.0】PHP8.0の新機能
【PHP8】Docker で PECL の YAML 関数(YAML パーサー)をインストールして使う
- 投稿日:2020-11-18T18:06:28+09:00
【Laravel基礎】複数のテーブルの結びつけ【リレーション】
概要
Laravel学習で自分がつまずいた部分を備忘録としてまとめています。
今回は複数のテーブルの結びつけに関する記事です。この記事でわかる事
テーブルの結合方法(リレーション)
①テーブルの主従関係
②テーブルの設定
③モデルの設定以下、記事内容です!
テーブルの主従関係
今回はPostテーブルとCommentsテーブルを用意して、結合します。
こうした複数テーブルの結合を
リレーション
と呼びます。
そして、リレーションにおいて重要なのが主従関係
です。
一方のテーブルが主テーブル・もう一方が従テーブルとなり、
この主従関係によって書くコードが変わってきます。今回の場合だと、Post(記事)に対してComments(コメント)がつくので、
Postテーブルが主、Commentsテーブルが従
という関係になります。
ブログのイメージですね。記事がまず先にあって、それに対してコメントがつく。
Twitterだと、まずユーザーがいて、そこから投稿が生まれる。
それが無いと成り立たない側のテーブルが主テーブル
になります。従テーブルは
主テーブルのIDを保管するフィールド
を用意する必要があります。
このフィールドを外部キー
と呼びます。これを踏まえて、テーブルを設定していきます。
テーブルの設定
今回はPostテーブルとCommentsテーブルを用意しました。
■Postテーブルposts_table.phppublic function up() { Schema::create('posts', function (Blueprint $table) { $table->increments('id'); $table->string('title'); $table->text('body'); $table->timestamps(); }); }まずは主テーブルになるPostsテーブル。
こちらは通常通りですね。ID,title,body,投稿日時を設定しました。■Commentsテーブル
comments_table.phppublic function up() { Schema::create('comments', function (Blueprint $table) { $table->increments('id') ①$table->integer('post_id'); $table->string('body'); $table->timestamps(); ②$table->foreign('post_id') ->references('id') ->on('posts') ->onDelete('cascade'); }); }従テーブルになるCommentsテーブルですが、
従テーブルでは下記2つの設定をする必要があります。①外部キーの作成
主テーブルのIDを保管するためのフィールド
を作成しておきます。
今回はPostテーブルのidを保管するので、'post_id'フィールドとします。②外部キーの参照先を設定
記事が消された際、紐づくコメントも消されるように設定しないといけません。
ここでは外部キーの参照先を指定し、参照先のデータが消えたら、このテーブルのデータも一緒に消えるよう指示しています。
各コードの内容は下記のような感じですね。
// foreign(フィールド) = このフィールドは下記を参照します
// references(フィールド) = 参照先のフィールド
// on(テーブル名) = 参照先のテーブル
// onDelete('cascade'); = 上記が削除されたら該当データも一緒に削除以上がテーブルの設定です。
モデル
次に、モデルの更新です。
まずは主テーブルとなるPostモデルを更新します。
■Postモデル(主)Post.phpclass Post extends Model { protected $fillable = ['title', 'body']; // ①Commentモデルとの紐付け public function comments() { return $this->hasMany('App\Comment'); } }①commentテーブルとリンクさせるためのcomments関数を作成します。
主テーブルでは、
$this -> hasMany(参照先モデル)
とする事で
従テーブルのデータを引っ張ることが可能になります。■Commentモデル(従)
次にCommentモデルを更新します。Comment.phpclass Comment extends Model { // protected $fillable = ['body']; // ②Postモデルへの紐付け public function post() { return $this->belongsTo('App\Post'); } }②Postテーブルとリンクさせるためのpost関数を作成します。
従テーブルでは、
$this -> belingsTo(参照先モデル)
とする事で
従テーブルのデータを引っ張ることが可能になります。belongToは所属すると言う意味なので、主テーブルに従ずると言う感じですね。
リレーションの確認
ここまでで、テーブルが結合できたかターミナルで確認します。
まずはPostテーブル→Commentsテーブルの確認。
ここでは(①) App\Post::find(2)->comments;
によって、
PostテーブルのID:2のデータを呼び出し、
紐づくCommentsテーブルのデータを呼び出しています。ターミナル>>> (①) App\Post::find(2)->comments; App\Comment {#3962 id: "3", post_id: "2", body: "test", created_at: "2020-11-18 17:48:51", updated_at: "2020-11-18 17:48:51", }, ], } >>>こうですね。紐づくコメントの中身が出てきたのでOKです。
次にCommentsテーブル→Postテーブルへのリレーションを確認します。
ターミナル>>> App\Comment::find(3)->post; => App\Post {#3963 id: "2", title: "title 2", body: "body 2", created_at: "2020-11-18 17:55:50", updated_at: "2020-11-18 17:55:50", } >>>こちらも出てきたのでOKです。
まとめ
以上、Laravelにおけるテーブルのリレーションでした。
初めは、hasMany( )とbelongTo( )の違いがよくわからなかったのですが、
主従関係と言う概念を理解すると、違いが腹落ちしました。最後まで読んで頂きありがとうございました!
- 投稿日:2020-11-18T17:42:46+09:00
[laravel] doctrine/dbalを入れたのに「Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found」と言われる
DB設計の変更により
テーブルのカラムの型変換をしようとしました。database/migrations/2020_11_17_203408_modify20201117_stations_table.phppublic function up() { // Schema::table('stations', function (Blueprint $table) { $table->smallInteger('xxxxx')->nullable()->default(NULL)->change(); }); }
php artisan migrate
するとエラーが出ました。Migrating: 2020_11_17_203408_modify20201117_stations_table RuntimeException Changing columns for table "stations" requires Doctrine DBAL. Please install the doctrine/dbal package.おっといかん、doctrine/dbal を入れないまま change() してしまったか…
composerでインストールせねば$ composer require doctrine/dbal Using version ^3.0 for doctrine/dbal ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 4 installs, 0 updates, 0 removals ...よし入った
改めてphp artisan migrate
Migrating: 2020_11_17_203408_modify20201117_stations_table Error Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not foundん?
え、今入れたよね?
あ、エラーの内容が最初と違う?該当のファイルが存在しないとのことなので
vendor以下を確認してみる$ ll vendor/doctrine/dbal/src/Driver/ ... -rw-rw-r--. 1 vagrant vagrant 168 Nov 15 18:20 Middleware.php drwxrwxr-x. 4 vagrant vagrant 144 Nov 15 18:20 Mysqli drwxrwxr-x. 3 vagrant vagrant 175 Nov 15 18:20 OCI8 drwxrwxr-x. 7 vagrant vagrant 153 Nov 15 18:20 PDO -rw-rw-r--. 1 vagrant vagrant 2497 Nov 15 18:20 Result.php -rw-rw-r--. 1 vagrant vagrant 397 Nov 15 18:20 ServerInfoAwareConnection.php ...なるほど、
PDO
はあるけどPDOMySql
はないな。$ ll vendor/doctrine/dbal/src/Driver/PDO/ ... -rw-rw-r--. 1 vagrant vagrant 591 Nov 15 18:20 Exception.php drwxrwxr-x. 2 vagrant vagrant 24 Nov 15 18:20 MySQL drwxrwxr-x. 2 vagrant vagrant 24 Nov 15 18:20 OCI drwxrwxr-x. 2 vagrant vagrant 24 Nov 15 18:20 PgSQL ...
PDO
ディレクトリの下にMySQL
があるな…
えーとつまり、バージョンが変わって、ディレクトリの構成が変更になったとかそういうことかな?https://github.com/doctrine/dbal
3.0系の構成を確認してみる
https://github.com/doctrine/dbal/tree/3.0.x/src/Driver
うん、インストールされているのはこの構成だ。
では前のバージョンは…https://github.com/doctrine/dbal/tree/2.12.x/lib/Doctrine/DBAL/Driver
あっPDOMySqlさんいる
えーとつまり
composer require doctrine/dbal
だけでインストールすると、今は3.x系が入ってしまう- 3.x系は
Driver
ディレクトリの構成が変わっているので、migrateする時に2.x系にあったPDOMySql
がnotfoundになるということか
$ composer require "doctrine/dbal:2.*" ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 0 installs, 1 update, 0 removals - Downgrading doctrine/dbal (3.0.0 => 2.12.1): Downloading (100%) ...$ php artisan migrate Migrating: 2020_11_17_203408_modify20201117_stations_table Migrated: 2020_11_17_203408_modify20201117_stations_table (133.37ms)doctrine/dbal をバージョン指定で入れ直し、無事migrateできました。
※バージョンによる今だけの一時的な現象だと思いますが、そこそこ迷走したので、誰かの手助けになれば。
- 投稿日:2020-11-18T15:19:31+09:00
成果物を作る際に行った、要件定義 DB設計など
こちらの記事にプロダクト実装前に行うべき事がまとめられておりました。
私自身も成果物作成の際に、要件定義などを行ったので、今回の記事はこちらに沿って残していこうと思います。
https://qiita.com/Saku731/items/741fcf0f40dd989ee4f8成果物のURL▼
http://share-noske55.com/top要望:解決すべき課題(仮想サービスなので自分があったらいいなと思うサービスを作成)
現状の課題
今回想定したのは、コンビニの廃棄商品について
コンビニでは日々大量の廃棄物が出ている。
本来捨ててしまうその食品を通常価格より安く販売したら、コンビニ側も売上が増え、利用者側(廃棄を買う側)も安く食品を手に入れられる。
幅広く誰でも簡単に使えるように、シンプルに購入できるようなアプリを作る事をゴールとする。要求
具体的に実装したい機能一覧
① 利用者側は、メールアドレス、パスワードでユーザー登録ができること
② コンビニ側はコンビニ名、支店名、住所、TEL、店長名、メールアドレス、パスワードでユーザー登録ができること
③ コンビニ側と利用者側のユーザ登録画面、ログイン画面はそれぞれ作成する
④ コンビニ側も利用者側も、ログイン・ログアウトできるようにする
⑤ コンビニ側も利用者側も、パスワードリマインダーでパスワード忘れの際に変更対応が可能である
⑥ コンビニ側は商品を投稿機能、商品情報編集機能、商品編集画面から削除できる機能がある
⑦ 利用者側もコンビニ側も、登録された商品を商品一覧画面で一覧表示でみれる
⑧ 利用者側は「購入済でない商品」ならば商品詳細画面内の購入ボタンを押すことができるようにする
⑨ 購入ボタンを押すと、コンビニ側・利用者側の両方に必要な情報を記載したメールを送る
⑩ 購入ボタンを押すと、商品が「購入済」状態になり、一覧画面で表示するときに「購入済」のラベルを付ける
11 「購入済」状態の商品の、商品詳細画面では、購入ボタンが押せないこと
12 自分が購入した商品の、商品詳細画面では、「購入をキャンセル」ボタンが表示されるように
13 コンビニ側のマイページからは、「ユーザ情報の編集」「商品出品」「商品情報編集」「出品した商品の一覧表示」
「購入された商品の一覧表示」が行える
14 ユーザ側のマイページでは、「ユーザ情報の編集」「購入済み商品一覧」「購入キャンセル」が行える
15 Twitterで商品を不特定多数の人がシェアできること(ブログにあるようなシェアボタンと同じ)以上の項目を最低でも組み込んで制作する事を目指しました。
その他注意する事
① 食品を扱うので、食欲をそそるようなサイトカラーで制作をする
② レスポンシブ対応をする
③ CSS設計を行い、回収しやすい状態を目指す。開発環境
LAMP環境
Laravel 5.8
PHP 7.4
CSS SASS 設計はFLOCSS
laravel.mixを使いコンパイル・バンドルを行った。
フロントは、Vue.js Javascriptを使用画面設計・データ設計
必要な画面をまず洗い出しました。
今回の場合、ユーザーとコンビニサイドに分けて考えてあります。
ー共有画面ー
1.TOP画面
2.お問い合わせ
3.ヘッダー
4.フッターーコンビニサイドー
1.コンビニ側ユーザー登録
2.コンビニ側ログイン
3.コンビニ側プロフィール編集
4.コンビニ側出品した商品一覧
5.商品詳細画面
6.コンビニ側マイページ
7.コンビニ側購入された商品一覧
8.コンビニ商品出品画面
9.商品編集画面ーユーザーサイドー
1.利用者側ユーザー登録
2.利用者側ログイン
3.利用者側プロフィール編集
4.利用者側商品一覧
5.利用者側マイページ
6.利用者側購入した商品一覧洗い出した各画面をXDを使って作成
今回画面遷移の流れを書かなかったので、次回以降は画面遷移の流れも書き込んでおくとより分かりやすいと感じた。
データベース設計
ER図を作成して、事前にデータの流れを可視化する事で、開発をスムーズに進める事が出来た。
※後に、マイグレーションを使ってカラムの追加を行っている。
お気に入り機能とカートに入れる機能も後に追加できるように一応テーブルを作成した(現在未実装)
データベースの具体的な中身
ユーザー情報
名前
メールアドレスストアー情報
店名
支店名
住所
メールアドレス
パスワード商品情報
商品名
商品カテゴリー
値段
賞味期限
画像
商品出品店舗商品カテゴリー
カテゴリー名
購入履歴
購入された商品ID
購入したユーザー
出品していたストアー
購入された日時CSS設計に関して
前回アウトプットを作った際に、Sassを入れるのにてこずったこともあり、今回は最初に何をどこに書くのかを想定して望んだ。
ディレクトリ構成は下記のようになる。
命名規則については、https://qiita.com/manabuyasuda/items/dbb76ed36970bec95470
こちらの記事を参考にさせていただきました。
BootStrapのCSSの付け方を参考にして付けている。
深くても、2回ネストする程度の深さを意識して設計を行った。上記の項目を制作前に設計し臨んだ。
成果物を作り終えて
今回成果物を作る工程に入る前に設計をした事で、作る際にはかなりスムーズに作成する事が出来た。
CSS設計に関しては、まだまだ経験不足を感じる事もあり、かなり不要なディレクトリもあったので今後も経験を積んでこの辺の感覚を掴んでいきたいと思う。今回は自分用の成果物であった為、このくらいの設計でもよかったが、チームで共有する場合も考慮すると
もっと情報がわかりやすく整理されているものを作成する必要があるとも感じた。今後は、こちらの参考記事にもあるような詳細な設計を書けるようにしようと思う。
https://qiita.com/Saku731/items/741fcf0f40dd989ee4f8
今後について
laravel、PHPについてはかなり触ったと感じているので、今後はJavaScriptだけを使ったアプリの制作を行い
JavaScriptについての知識を深めると共に引き出しを増やしていこうと考えている。こちらに関しては、大きなプロジェクトではなく部品をちょこちょこ作成していく。
理由としては、実際の業務でも機能ごとに実装する方が多いと感じた為である。今回の記事についてはこれで終了とする。
- 投稿日:2020-11-18T10:13:06+09:00
Laravelで同時ログイン禁止を実現する
Laravelで同時ログイン禁止(後勝ち)処理を追加するために調査した結果、
私の中でのベストプラクティスを書き留めておきます。同時ログイン禁止(後勝ち)とは
ここでは、同時ログイン禁止(後勝ち)の処理を以下のように定義します。
あるユーザーが、端末Aでログインしているとき、同じアカウントを使用して、別の端末Bでログインを試行すると、
端末Bでのログインが許可され、端末Aでログインしているユーザーは強制ログアウトされる処理のこと。実現のための方針
実装方法はいくつかあるかと思いますが、なるべくフレームワークのソースに手を加えることなく、
メンテナンスが容易になるようなシンプルな調整に留めることを目標としました。※ そのため、今回ご紹介する方法は、 Laravel 5.6 以上 を使用する必要があります。
実装手順
AuthenticateSession ミドルウェアを有効にする
Laravel 5.6 より、現在のユーザーの現在のデバイス上のセッションを切らずに、
他のデバイス上のセッションを無効化し「ログアウト」させることができるようになりました。今回は、これを使用するため、
app/Http/Kernel.php
クラスのweb
ミドルウェアグループ中に、
Illuminate\Session\Middleware\AuthenticateSession
ミドルウェアが存在し、コメントを外すことを忘れずに行います。app/Http/Kernel.php'web' => [ // ... \Illuminate\Session\Middleware\AuthenticateSession::class, // ... ],ログイン直後に他のデバイス上のセッションを無効化する
ログイン直後の処理として、
Auth
ファサードのlogoutOtherDevices
メソッドが実行されるようにしてください。
このメソッドは、入力フォームからアプリケーションが受け取る、現在のパスワードを引数に渡す必要があります。app/Http/Controllers/Auth/LoginController.php<?php use Illuminate\Http\Request; protected function authenticated(Request $request, $user) { auth()->logoutOtherDevices($request->input('password')); }以上により、後勝ちの同時ログイン禁止処理が実現できたかと思います。
- 投稿日:2020-11-18T00:39:02+09:00
Laravel で「Server error: GET http://cabinet.laravel.com/latest.zip resulted in a 522 Origin Connection Time-out response:」エラー
Laravel で久しぶりに laravel new blog のコマンドを打ってプロジェクトを作ろうとしたらタイトルのエラーが発生した。
laravel% laravel new blog Crafting application... In RequestException.php line 113: Server error: `GET http://cabinet.laravel.com/latest.zip` resulted in a `52 2 Origin Connection Time-out` response: <html> <head><title>522 Origin Connection Time-out</title></head> <body bgcolor="white"> <center><h1>522 Origin Conne (truncated...) new [--dev] [--auth] [-f|--force] [--] [<name>]困ったらstackoverflow
Laravel News に載っている通りインストーラーアップデートしなさいって書いてありました。
https://stackoverflow.com/questions/64686037/why-do-i-get-a-laravel-error-while-creating-a-new-project解決方法composer global require "laravel/installer:^4.0"上ので私は解決しました。それでダメならアンインストールとインストールとか試しなさいだそうです。
【詳細は下記参照】
https://laravel-news.com/updating-the-laravel-installer