カテゴリー
Linux

nunomaduro/larastan 1.0.3 で Laravel 8 の無編集のソースコードへのエラーに対応したメモ

まとめ

  • composer update nunomaduro/larastan:^1.0 --dev でアップデートしたところ、 Laravel インストールして生成された無編集のソースコードでエラーが発生した、
  • https://github.com/laravel/laravel/blob/8.x/app から最新ソースコードを適用することで解決したエラーもあった。
  • どうしても解決できないものは、 Ignoring Errors | PHPStan を参考にエラー抑制した。
カテゴリー
Linux

Laravel 8 、 Larastan 1.0.3 。API リソースクラスに対してプロパティが無いエラー、例えば Access to an undefined property App\Http\Resources\UserResource::$id. に対応する方法メモ

対応方法まとめ

  • その1
    • API リソースクラスの toArray メソッド冒頭に、例えば /** @var \App\Models\User $this */ と書く。
    • 要は、 PHPDocs で API リソースクラスで使用するモデルを $this に紐づければ良いようだ。
  • その2
    • クラスコメントに、例えば /** @mixin \App\Models\User */ と書く。
    • 要は、 PHPDocs で API リソースクラスに使用するモデルを混ぜ込めば良いようだ。
カテゴリー
Linux

Laravel 8 での Vue.js 3 を使った SPA に Bootstrap Icons を導入するためのメモ

なぜメモったか

Bootstrap Icons · Bootstrap 向けのオープンソース SVG アイコンライブラリ のページを見ると、インストールと使い方は書いてあるものの、それだけでは足りず、調べなければうまく使うことができませんでした。

ですので、調べた内容を、走り書き程度ですが、メモいたします。

カテゴリー
Linux

Laravel 8 の Vue.js 3 の SPA に laravel/ui を使わないで Bootstrap 5 を導入するまでのメモ

まとめ

カテゴリー
Linux

Docker のホスト側に在る VS Code にて Docker コンテナ内の Xdebug と通信してステップ実行するための勉強と理解とポイントと設定

状況

  • Remote – Containers – Visual Studio Marketplace は使わない。
  • ホスト側にデバッグしたい PHP コードがあり、同じコードが Docker コンテナにもある状況。ボリューム共有はしていない。
  • 本当は Remote – Containers を使いたいが、古い Docker イメージでは使えない場合がある。そしてそのようなケースでは大抵 PHP も古く、 Xdebug も最新のバージョン 3 は使えず、バージョン 2 を使うことになる。この投稿では Xdebug 2 を取り扱う。
カテゴリー
Linux

Laravel 8 で Vue.js 3 を SPA として使えるようにした記録メモ

どの状態から始めたか?

Laravel 8 をインストールした直後に Vue.js 3 を SPA として最低限使えるようにしました。

カテゴリー
Linux

Chart.js 3.7.0 、 90度回転させた線チャートのグラフ両側にラベルを表示する方法

まとめ

  • チャートの右側にラベルを表示するためのプラグインを用意し、これを使用した。
  • Chart.js のオプションで設定する方法を見つけることはできなかった。
カテゴリー
Linux

laravel-permission。 ユーザーに紐づく全てのパーミッションを取得する。この時、パーミッションがロールに属している場合はそのロールも取得したい、を実現する Eloquent ORM とリレーション

環境

$ php artisan --version
Laravel Framework 6.20.30
$
$ composer show | grep spatie/laravel-permission
spatie/laravel-permission                 4.2.0     Permission handling for Laravel 6.0 and up
$
カテゴリー
Linux

Laravel 6 、 PHPUnit をデータプロバイダを利用したリファクタリングによりコードの重複を減らす方法

はじめに

Laravel のバリデーションクラスであるフォームリクエストをユニットテストするためのノウハウ – oki2a24 のリファクタリングを行いました。

PHPUnit のデータプロバイダを利用して、重複をできるだけ取り除いた内容となります。

本投稿での Laravel 等のバージョンです。

$ php artisan --version
Laravel Framework 6.20.30
$ 
$ composer show | grep phpunit/phpunit
phpunit/phpunit                           9.5.7     The PHP Unit Testing framework.
$ 

まとめ

  • データプロバイダ – 2. PHPUnit 用のテストの書き方 — PHPUnit latest Manual
  • データプロバイダのデートとしてファクトリを使用して DB データを生成する場合は、データプロバイダを利用するのは難しい。データプロバイダメソッド内のファクトリメソッドで DB レコードとそのモデルデータを用意しても、それを利用するテストメソッドの前に DB レコードは削除されてしまうため。具体的には、テストはデータプロバイダメソッドの実行後に、 refreshDatabase() を実行し、次にデータプロバイダを利用するテストメソッドを実行するため。
  • データプロバイダを利用するテストメソッドを、別のテストメソッドから呼び出すことは可能だった。テスト失敗した場合も、期待通り別のテストメソッドで失敗したと出力されていた。
カテゴリー
Linux

Docker コンテナ内の Laravel から外部サービスを使わずにメールを送信するために Docker コンテナ内に exim4 をインストールしたらできた、という記録

まとめ