はじめに(この記事について)
この記事は、OpenAI が開発した生成AIモデル ChatGPT (GPT-5 ?) によって作成された原稿をもとに執筆しています。
私(著者)は、生成AIと対話しながら考えを深め、整理し、Laravel での実装に落とし込んでいく過程をそのままブログ記事としてまとめました。
この記事は、OpenAI が開発した生成AIモデル ChatGPT (GPT-5 ?) によって作成された原稿をもとに執筆しています。
私(著者)は、生成AIと対話しながら考えを深め、整理し、Laravel での実装に落とし込んでいく過程をそのままブログ記事としてまとめました。
AWS S3 を今まで使ったことがありませんでした。テキトーに使い始めてみたら、何やらよくわからないエラーで手間取ってしまいました。そこで、基礎の部分から調べてみようと思い、本投稿を残します。
特に、なぜか S3 フォルダを作成できない問題を解消したかったのでした。
Storage::disk('s3')->makeDirectory($directory); などと実行すると 400 Bad Request AccessControlListNotSupported のエラーとなった。
laravel/config/filesystems.php にて 'visibility' => 'private', を設定することで解消できた。
環境
npm run prod の場合は、静的ファイルを書き出してそのファイルへのリンクを HTML ファイルへ埋め込むようになっています。よって、ビルドされたファイルへのリンクは Laravel へアクセスするときの Apache なり Nginx なり PHP ビルトインサーバなりの URL と同じ URL が埋め込まれ、この URL でアクセスできるため問題はありません。
一方で、 npm run dev の場合は、 Vite の開発サーバが別途立ち上がります。そして Vite でビルドされたファイルへアクセスするための埋め込みリンクは、 Vite の開発サーバの URL となります。
Docker を使う場合、 Docker ホスト側から Docker コンテナ内の Vite 開発サーバへどうやってアクセスするのかが、問題になりました。
例えば、カスタマイズしていない vite.config.js で npm run dev すると次のようになります。
http://localhost/ にアクセスすると画面真っ白になった。<script type="module" src="http://127.0.0.1:5173/resources/js/app.js"></script> となっていた。この URL にアクセスしてみても ERR_CONNECTION_REFUSED のエラーページとなった。今回、これを解決しましたのでメモいたします。
composer update nunomaduro/larastan:^1.0 --dev でアップデートしたところ、 Laravel インストールして生成された無編集のソースコードでエラーが発生した、https://github.com/laravel/laravel/blob/8.x/app から最新ソースコードを適用することで解決したエラーもあった。
/** @var \App\Models\User $this */ と書く。$this に紐づければ良いようだ。/** @mixin \App\Models\User */ と書く。
Bootstrap Icons · Bootstrap 向けのオープンソース SVG アイコンライブラリ のページを見ると、インストールと使い方は書いてあるものの、それだけでは足りず、調べなければうまく使うことができませんでした。
ですので、調べた内容を、走り書き程度ですが、メモいたします。
@popperjs/corebootstrapresolve-url-loadersasssass-loaderlaravel/webpack.mix.js に npm build 時の Bootstrap 5 の SASS の設定を追加laravel/resources/js/bootstrap.js に Bootstrap 5 の読み込を追加laravel/resources/sass/app.scss ファイルを追加し、 Bootstrap 5 の SASS を読み込む。laravel/resources/sass/_variables.scss ファイルを追加した。 Bootstrap 5 をカスタマイズする時の内容を書くためのファイル
DATABASE_URL を外部の環境変数 (server レベル) で設定している。DATABASE_URL を指定する以外に、 DB_CONNECTION と DB_DATABASE も指定する必要がある。phpunit.xml に指定すればよい。 <server name="DATABASE_URL" value="sqlite:///:memory:?foreign_key_constraints=true" force="true"/>
<server name="DB_CONNECTION" value="sqlite"/>
<server name="DB_DATABASE" value=":memory:"/>
mailhog/mailhog イメージを使うだけ。.env を変更するだけ。