カテゴリー
コンピューター

Google Chrome に怒られない開発用途限定の自己署名なSSLサーバ証明書をコマンド一発で作る方法

コマンド

# サーバ証明書 (および秘密鍵) の作成
openssl req -x509 -newkey rsa:2048 -nodes -days 3650 \
-keyout private_key.pem \
-out certificate.pem \
-config - <<EOF
[req]
distinguished_name = req_distinguished_name
x509_extensions = usr_cert
prompt = no

[req_distinguished_name]
C = JP
O = oki2a24.com
OU = MyDivision
CN = localhost

[usr_cert]
basicConstraints = critical, CA:FALSE
subjectAltName = DNS:localhost
EOF

# サーバ証明書の確認
openssl x509 -text -noout -in certificate.pem

使用したバージョン

root@495db3743f1d:/var/www/html# openssl version
OpenSSL 1.1.1n  15 Mar 2022
root@495db3743f1d:/var/www/html# 

まとめ・ポイント

カテゴリー
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 のオプションで設定する方法を見つけることはできなかった。
カテゴリー
コンピューター

Laravel の `DATABASE_URL` を外部の環境変数 (server レベル) で設定している場合、 PHPUnit テストの 1 個目は通常に行われるのに 2 個目で DB 接続エラーとなってしまう問題を解決した

エラー対処まとめ

  • 今回の状況
    • Laravel 8.55.0
    • PHPUnit テストをインメモリ SQLite で行いたい。
    • DATABASE_URL を外部の環境変数 (server レベル) で設定している。
  • テスト用に DATABASE_URL を指定する以外に、 DB_CONNECTIONDB_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:"/>
カテゴリー
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
$