laravel
Notificationをデータベースに入れる Notificationはジョブキュー的に処理されるし、別にメール通知とは限らない。 そもそもイベント・リスナみたいなもの。イベントが発火してリスナが受け取るのと同じように、通知が発生して通知連絡のクラスが起動する。 …
Laravelのイベント・リスナを分割する。 データベースを使ってイベント・リスナを分割する。 データベース(SQL)を使って、イベントをキューに登録し、queue:work でリスナがイベントを拾って動作させる。 データベースにイベント発生を登録してジョブキュ…
php でクラスが呼び出す関数をスタブにしたいとき コードテストを書いていて、クラスが呼び出すクラスのメソッドをダミー化してたいとき、スタブを使う。 スタブを作るには、クラスが呼び出すクラスのメソッドを書き換える必要がある。phpでは動的なクラス定…
laravel (jetstream + livewire) を 9->10 にアップデート componser.json の書き換え "require": { - "php": "^8.0.2", + "php": "^8.1", "guzzlehttp/guzzle": "^7.2", - "laravel/framework": "^9.19", - "laravel/jetstream": "^2.12", - "laravel/sanct…
Laravelで ストレージ設定を一時的に作って、テスト用に使う。 テストのためだけに、config を記入して汚すのも憚られるので、その場で使い捨てのストレージ設定(on-the-fly/Ephemeral)のストレージ設定を作って使う。 使い捨てのStorage定義して終わったら…
laravel で ジョブ・キューを行う ジョブキューを体験する ジョブキューの準備 コマンドの準備 ジョブ・キュー実行する 失敗時の取り扱い ジョブキューを体験する Laravelのジョブとキューの仕組みを作って体験してみる。 WEB-UIを作るとめんどくさいので、…
laravel でevent を扱う laravel にはイベントとリスナを組み合わがある、重複コード解消に役立つ。データが更新されたタイミングで行う処理を、リストに記入し、共通化する。更新タイミングをイベントとして発火させるように設計する。これを使うとドメイン…
稼働中のLaravelアプリをバージョンアップ php8で動かしたいと思ったけど、エラーになるので、対応する。 マニュアルupgrade 5.8 to 6を参考にアップグレードする composer.json ## require - "php": "^7.1", + "php": "^7|^8.0", - "laravel/framework": "5…
LaravelでGitlabログイン連携を作る laravel でSocialiteプラグインを使う。ユーザー登録の代わりにユーザをほかサイトのIDでログインさせるOAuthです。 今回は、「gitlab」ユーザでログイン機能を作る。とくにOmnibus版でセルフ・ホスティングサイトを使う…
Laravel でイベントとハンドラを使って通知を送る イベント・リスナ イベント定義を使って、「なにか」が起きたとき「これをやる」を定義出来る。 ジョブキューで分割すると思いがちだけど、別にシングルスレッドで実行しても構わない。 シングルスレッドで…
laravel で通知(slack/mattermost)を試す。 laravel で slack に通知(メッセージ送信)をする。 slack 互換のapi がある、mattermostでも「内向きウェブフック」を使えば同じように通知が出来る。 準備 webhook incoming のアドレス(URL) composer でパッケ…
Laravelで通知(メール)を試す。 laravel でコマンドを作ってメールを送信する。 必要なもの SMTP/S接続情報 作るもの Notification クラス 通知を送信するコンソール・コマンド laravel 通知の流れ laravel 通知では、Notificationを実装したクラスをapp/n…
Laravel でログを、ターミナルに出す。 laravel のログを画面ではなくターミナルへ出力する事ができる。 またターミナルとファイルに出す事ができる。 ログとデバッグ dd とかよく使います。 dd( $model ); dump もよく使います。 dump( $model ); これはロ…
laravel でリクエスト内容を書き換える。 リクエストの内容を書き換えるのなら、フィルタやサービスでDIを思い浮かべるかもしれないが、もっと手軽にできる方法がある。 それは、FormRequest を使うことだった。ブラウザからのリクエストを集合体にできるFor…
laravel の dd だけを自分のプロジェクトで使う dd関数だけ切り出したパッケージがあるので、それを使えば、好きなプロジェクトファイルで dd 関数が使える。 composer require --dev larapack/dd 依存パッケージがあるので、composer で インストールする。…
laravel ジョブ・キューモデル laravel には、ジョブ・ワーカーとキューがデフォルトで用意されています。 これを少し試してみました。 今回試すこと キューにジョブをいれて、ワーカーで処理をする。 queue でできること ジョブを待ち続けて実行する。 php …
laravel のスケジュール実行 laravel で cron のようなジョブ実行ができる。cron書式で書いて旧世代のワタシに理解しやすくて便利そうなので、スケジュールをつかってcronを管理できたらいいなと思った laravel のスケジュールの流れ Kernel.phpに記述 artis…
phpでprotectedなメソッドにアクセスする。 この様なときに使う必要があった、laravelが持ってる protected な プロパティに強引にアクセスする。 laravelなどのフレームワークが内部に持ってるコールバックやプロパティを取り出して調べたり、意図通り、正…
Selectやラジオボタンのチェック項目よって、バリデーションが異なる場合。 根本問題としてそういうフォームを作るなと思うのですが。 直前の選択項目によって次の入力項目のバリデーションが異なることがある。 例 電話番号 固定電話と携帯電話で番号をバリ…
laravel の env / config の関係について。 env と configキャッシュで testing のデータベースが使われずにパニクった。 TL;DR .env.testing を使ってる場合、テスト実行する前には、cache:clearする。 laravel の実行環境と設定について 実行環境と設定は…
Laravel の通知でカスタムチャネルとカスタム通知を作ってみる 作ったもの 最初に知っておくこと laravel の通知の概要 通知するもの、通知されるもの、通知チャンネル(ドライバ) ユーザーに通知する箇所の概念的構造。 通知を送る例 通知するクラスは自分で…
laravel でmigrate するとき、特定のファイルだけを実行したい migrate refresh とかだと全部のテーブルが再生成されちゃうので、別のテーブルデータを消さずに特定のテーブルだけを再構築したい。 サンプル 指定したマイグレーションのファイルだけを実行す…
TL;DR HTTPリクエストのヘッダに、 Accept: text/json が抜けている可能性が高い。 Laravelのレスポンスが login になる場合。 api で auth を入れているところへリクエスト投げつける。 HTMLのログインが帰ってくる。 実例 curl -H 'Content-Type: applicat…
xdebug を有効にしてphpunitを実行したい。 Xdebug の設定をしたとしても、phpunit の設定だとか、xdebugや日付などの php.iniを作るのが不便。 プロジェクトを切り替える毎に、php.iniを見直すのは割と面倒くさい。 phpには user.iniがある php には実行時…
Laravelに移行中。 ローカル開発環境でデバッグしてると、Storageにツッコんだファイルが見れないので困ってた。 しょせん、PHPなので期待してはいけない。 よくある解決策 artisan storage:link これで、ストレージがリンクされるから見れるはずだよ。って…