php
\K を使うと、そこまでのマッチ部を省略できる ip -br a からIPv4 を取り出す例 $ ip -br a | grep eth2 eth2 169.254.70.21/16 fe80::4154:6db4:aec3:32f/64 コレを、\k で書くとこうなる。 ip -br a | grep -oP 'eth2\s+\K[\d.]+' つまり、後方参照を使わ…
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…
php で、〇〇分後を数値に変換する。 php で 00:10:11 分後をint にしたい。 時刻の差分をサクッと、intに変換する 実行結果 int(247) …
php でプロセスを起動するときに、パイプを作ってそれぞれの実行する。 php で pipeを作る例
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…
sample for generate certificate php で certificate 作成する例。 証明書作成の手順 発行人の秘密鍵の作成 発行人の証明書の作成(自己署名・署名リクエスト) 被発行人の秘密鍵の作成 被発行人の証明書の作成(自己署名・署名リクエスト) 発行人が署名リ…
Null合体演算子(Null Coalescing)と三項演算子の短縮形(Short-ternary )を使ってパニクったので整理。 この値を知りたい。 値 比較 結果 unset($a) $a[0] ?? null NULL $a = null $a[0] ?? null NULL $a = $a[0] ?? null NULL $a = ['x'] $a[0] ?? null '…
ふと、他人の書いたPHPコードgithub で眺めていると、次のような記述に遭遇した。 list() と foreach で配列を変数に展開する。
Guzzle さんは、内部的に http_build_query を使っている。 そのため、次のようなリクエストのパラメタを渡すと。 $gz->request('GET' , [ 'name'=>['a','b','c']] ) 次のようなリクエストを作り出す。 ?name[0]=a&name[1]=b&name[2]=c これは、あらゆるHTTP…
php の配列はすべてが連想配列なので、連番に欠番が出る。 欠番を「除去」したいときは、array_values で欠番を除いて再度の採番をすればいいのだけど、「欠番」を「特定の値で埋めたい」ときにはどうすればいいか。 欠番を数字で埋める。 'a', 3=>'c', 4=>'…
二律背反の要求を実現したい。 WebAPIの無駄な呼び出し回数を少しでも減らしたい。回数を減らし、プログラム応答速度を上げたい。 ただ、コードの書き換えは極小にしたい。 この目的では、Generatorを使うのが、鉄板だと思うんですよね。 WEBを呼び出すコー…
trait を use するときに名前がかぶった。 同じ名前の関数・変数があって、名前が衝突してエラーになる。 対応するには、use を使うか、優先順位を変える。 名前の衝突する trait の例 次の例では say() が衝突してしまう。
cloudflare のレコードをphpから処理 cloudflare のAPIを使う。 php が手軽かなと思って選んだ。 https://github.com/cloudflare/cloudflare-php https://packagist.org/packages/cloudflare/sdk インストール composer require cloudflare/sdk 初期化例。 A…
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…
php8.1 までで起こる SplFileInfo / SplFileObject / SplTempFileObject で php://memory php://stream を使うとエラーになる。 fwrite($ret); $sf->getSize(); // =>Error 対応 fstat は動くのでそっちを使う。 fwrite($ret); $sf->fstat()['size']; // => …
php で次のようなエラーが出る The server requested authentication method unknown to the client 原因 php-mysql の接続でエラー エラーの原因は mysql の認証方式の変更に対応できないエラー いままで、mysql は mysql_native_password だったが、mysql8…
php の pdo でエラーがでるので数日ずっと頭を抱えてた 出てくるエラー : Invalid parameter number: number of bound variables does not match number of tokens エラーは、php pdo の prepare statement で、execした時にエラーになる。 bindValue(":n1",…
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 …
symfony processが詰まる理由 symfony processを使っていると、プロセスが60秒で終了してしまう。 Symfony Processのデフォルトタイムアウトかな。 Exit code 143 corresponds to SIGTERM, which is the signal sent by default when you run kill . Did you…
laravel のスケジュール実行 laravel で cron のようなジョブ実行ができる。cron書式で書いて旧世代のワタシに理解しやすくて便利そうなので、スケジュールをつかってcronを管理できたらいいなと思った laravel のスケジュールの流れ Kernel.phpに記述 artis…