それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

laravel

php でクラスが呼び出す関数をスタブにしたいとき require を工夫すればいいが、laravelでは面倒が起きる

php でクラスが呼び出す関数をスタブにしたいとき コードテストを書いていて、クラスが呼び出すクラスのメソッドをダミー化してたいとき、スタブを使う。 スタブを作るには、クラスが呼び出すクラスのメソッドを書き換える必要がある。phpでは動的なクラス定…

laravel (jetstream + livewire) を 9->10 に手動でアプグレ・アップデート

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で ストレージ設定を一時的(Stroage on the fly)に作って、テスト用に使う。

Laravelで ストレージ設定を一時的に作って、テスト用に使う。 テストのためだけに、config を記入して汚すのも憚られるので、その場で使い捨てのストレージ設定(on-the-fly/Ephemeral)のストレージ設定を作って使う。 使い捨てのStorage定義して終わったら…

laravel で ジョブ・キューを行う

laravel で ジョブ・キューを行う ジョブキューを体験する ジョブキューの準備 コマンドの準備 ジョブ・キュー実行する 失敗時の取り扱い ジョブキューを体験する Laravelのジョブとキューの仕組みを作って体験してみる。 WEB-UIを作るとめんどくさいので、…

laravel でevent(イベント・リスナ) を扱う

laravel でevent を扱う laravel にはイベントとリスナを組み合わがある、重複コード解消に役立つ。データが更新されたタイミングで行う処理を、リストに記入し、共通化する。更新タイミングをイベントとして発火させるように設計する。これを使うとドメイン…

laravel 5/6/7アプリケーションをphp8.0で動かす。

稼働中のLaravelアプリをバージョンアップ php8で動かしたいと思ったけど、エラーになるので、対応する。 マニュアルupgrade 5.8 to 6を参考にアップグレードする composer.json ## require - "php": "^7.1", + "php": "^7|^8.0", - "laravel/framework": "5…

LaravelでsocialiteでOauth(サイトログイン)連携を作る/Gitlabログインを例に

LaravelでGitlabログイン連携を作る laravel でSocialiteプラグインを使う。ユーザー登録の代わりにユーザをほかサイトのIDでログインさせるOAuthです。 今回は、「gitlab」ユーザでログイン機能を作る。とくにOmnibus版でセルフ・ホスティングサイトを使う…

Laravel でイベントとハンドラを使って通知を送る

Laravel でイベントとハンドラを使って通知を送る イベント・リスナ イベント定義を使って、「なにか」が起きたとき「これをやる」を定義出来る。 ジョブキューで分割すると思いがちだけど、別にシングルスレッドで実行しても構わない。 シングルスレッドで…

laravel で通知(slack/mattermost)を試す。

laravel で通知(slack/mattermost)を試す。 laravel で slack に通知(メッセージ送信)をする。 slack 互換のapi がある、mattermostでも「内向きウェブフック」を使えば同じように通知が出来る。 準備 webhook incoming のアドレス(URL) composer でパッケ…

Laravelで通知(メール)を試す。

Laravelで通知(メール)を試す。 laravel でコマンドを作ってメールを送信する。 必要なもの SMTP/S接続情報 作るもの Notification クラス 通知を送信するコンソール・コマンド laravel 通知の流れ laravel 通知では、Notificationを実装したクラスをapp/n…

Laravel でログを、ターミナルに出す。

Laravel でログを、ターミナルに出す。 laravel のログを画面ではなくターミナルへ出力する事ができる。 またターミナルとファイルに出す事ができる。 ログとデバッグ dd とかよく使います。 dd( $model ); dump もよく使います。 dump( $model ); これはロ…

laravelでリクエスト内容を書き換える(rule適用前/適用後)

laravel でリクエスト内容を書き換える。 リクエストの内容を書き換えるのなら、フィルタやサービスでDIを思い浮かべるかもしれないが、もっと手軽にできる方法がある。 それは、FormRequest を使うことだった。ブラウザからのリクエストを集合体にできるFor…

laravel のdd をwordpressなど自分のプロジェクトでで使う。

laravel の dd だけを自分のプロジェクトで使う dd関数だけ切り出したパッケージがあるので、それを使えば、好きなプロジェクトファイルで dd 関数が使える。 composer require --dev larapack/dd 依存パッケージがあるので、composer で インストールする。…

laravelのジョブ・キュー・ワーカーを試す。

laravel ジョブ・キューモデル laravel には、ジョブ・ワーカーとキューがデフォルトで用意されています。 これを少し試してみました。 今回試すこと キューにジョブをいれて、ワーカーで処理をする。 queue でできること ジョブを待ち続けて実行する。 php …

laravel のスケジュール実行とジョブと例外処理について調べておいた。

laravel のスケジュール実行 laravel で cron のようなジョブ実行ができる。cron書式で書いて旧世代のワタシに理解しやすくて便利そうなので、スケジュールをつかってcronを管理できたらいいなと思った laravel のスケジュールの流れ Kernel.phpに記述 artis…

phpでprotectedなメソッドにアクセスする。

phpでprotectedなメソッドにアクセスする。 この様なときに使う必要があった、laravelが持ってる protected な プロパティに強引にアクセスする。 laravelなどのフレームワークが内部に持ってるコールバックやプロパティを取り出して調べたり、意図通り、正…

WEBフォーム項目の連動項目でのバリデーションの一般的な解決法(laravelでの実装例)

Selectやラジオボタンのチェック項目よって、バリデーションが異なる場合。 根本問題としてそういうフォームを作るなと思うのですが。 直前の選択項目によって次の入力項目のバリデーションが異なることがある。 例 電話番号 固定電話と携帯電話で番号をバリ…

laravelの設定(config) のキャッシュと実行環境(テスト環境testing/local ) の関係

laravel の env / config の関係について。 env と configキャッシュで testing のデータベースが使われずにパニクった。 TL;DR .env.testing を使ってる場合、テスト実行する前には、cache:clearする。 laravel の実行環境と設定について 実行環境と設定は…

Laravel の通知でカスタムチャネルとカスタム通知を作ってみる

Laravel の通知でカスタムチャネルとカスタム通知を作ってみる 作ったもの 最初に知っておくこと laravel の通知の概要 通知するもの、通知されるもの、通知チャンネル(ドライバ) ユーザーに通知する箇所の概念的構造。 通知を送る例 通知するクラスは自分で…

laravel のマイグレーションで特定のmigration のファイル名指定して、一つだけ再度・何度も実行したい

laravel でmigrate するとき、特定のファイルだけを実行したい migrate refresh とかだと全部のテーブルが再生成されちゃうので、別のテーブルデータを消さずに特定のテーブルだけを再構築したい。 サンプル 指定したマイグレーションのファイルだけを実行す…

laravel の api ルートを叩いてもloginページやHTMLが帰ってきてjson以外になってしまう場合

TL;DR HTTPリクエストのヘッダに、 Accept: text/json が抜けている可能性が高い。 Laravelのレスポンスが login になる場合。 api で auth を入れているところへリクエスト投げつける。 HTMLのログインが帰ってくる。 実例 curl -H 'Content-Type: applicat…

laravel で phpunitのテスト実行時に、PhpStormからXdebugを有効にする。user.iniを有効にして実行

xdebug を有効にしてphpunitを実行したい。 Xdebug の設定をしたとしても、phpunit の設定だとか、xdebugや日付などの php.iniを作るのが不便。 プロジェクトを切り替える毎に、php.iniを見直すのは割と面倒くさい。 phpには user.iniがある php には実行時…

Laravel artisan serve で storageの画像が配信されない問題とか.user.iniでxdebugを有効にできない問題。

Laravelに移行中。 ローカル開発環境でデバッグしてると、Storageにツッコんだファイルが見れないので困ってた。 しょせん、PHPなので期待してはいけない。 よくある解決策 artisan storage:link これで、ストレージがリンクされるから見れるはずだよ。って…