それマグで!

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

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

php

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…

RuntimeException: SplFileInfo::getSize(): stat failed for php://temp となり、getSize出来ない

php

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 で次のようなエラーが出る The server requested authentication method unknown to the client 原因 php-mysql の接続でエラー エラーの原因は mysql の認証方式の変更に対応できないエラー いままで、mysql は mysql_native_password だったが、mysql8…

pdoのprepareで名前に数字を入れると、bindValue出来ないエラー

php の pdo でエラーがでるので数日ずっと頭を抱えてた 出てくるエラー : Invalid parameter number: number of bound variables does not match number of tokens エラーは、php pdo の prepare statement で、execした時にエラーになる。 bindValue(":n1",…

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 でできること ジョブを待ち続けて実行する。 aris…

Synfomy::Processが詰まって60秒くらいで終了してしまう理由

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

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

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

php の pecl のインストール

古いphpのアプリを動かす。 https://packages.sury.org/php/ を使って php7.0 をインストール サンプルとして、pecl から rarパッケージを持ってくる php8.1/php8.0/php7.4 でも同様です。 php7.0 で pecl パッケージ をインストールする。 sudo apt install…

cronをWEB管理するソフトを作りました。

cron の代替を作りました。 github.com 経緯 cron(自動実行プログラム)の管理が煩雑でした。 増え続けるcrontab。ここ数年管理が崩壊していました。systemd.timer や google app scripts なども増えるし、ラムダ系で実行してたりいろいろな所で、タイマー(…

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

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

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

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

phpに於ける StringIO

php

phpに於ける StringIO php にはStringIOが無いと存じます。無いのではなく、必要がないのです。 stringio を実現する $string_io = new \SplFileObject('php://memory','w+'); これだけです。SplFileObjectが最強です。 もしくは、fopen $fp = fopen('php://…

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

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

debianのphpでapcuを有効にする。

APCuが有効にならない。 sudo -u www-data php occ An unhandled exception has been thrown: OC\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?) 清く正しくdebian提…

sendmail コマンドを ssh 経由で呼び出せることに気づいた。

sendmail でメールを送ろうとして苦労してた。 webの問い合わせフォームだとか、php のsendmail をサーバでは使えるが、ローカルでは smart-relay な postfix を設定して試していた。 実にめんどくさいことだった。或る日、コマンドを眺めていて、ふと気づい…

全角の英数を半角の英数に統一する(ただし、記号は除外)

php

全角を半角にする。 php で日本語の英数字(A-Z)を半角にしたいときは、文字コードのコードポイントを用いた計算ができる。 英数字だけを半角にしたいとき。

php, mysqlで wordpress のテーブルへ pdo したときに文字化けする。

機種依存文字が化けます。 めっちゃ化けます。とくに、外字的な、ハシゴダカのような文字列を扱えません。PDOまじアレ。 PDOのマニュアルとか検索結果を見ても、ほとんど情報がないんですよね。困りました。 Windowsだと外字に登録するような文字列であって…

php xdebug の接続(localhost/phpstorm/php-builtin webserver)

IDE とphp-xdebug でブレークポイントを使いたい。 IDE で php-debug を使ってブレークポイントを設定し任意の場所で変数の内容をダンプしたい。 はじめに php の xdebug を使えば phpstorm や vscode などでブレークポイントを使うことができる。 接続形態 …

phpで'rm -rf'で再帰的に空じゃないフォルダを消す。

php

php で rm -rf をする方法を探してた PHPの組み込み機能をすごく上手につかった方法を発見したのでメモ。 isDir…

php で url から ホスト名を取り出す。 - parse_url

php

PHPでURLからホスト名だけを取り出す。 var_dump(parse_url( 'https://www.yahoo.co.jp:443/', PHP_URL_HOST )); string(15) "www.yahoo.co.jp" 見て分かる通り、指定したものをちゃんと簡単に取り出せます。 ほんとなんで十分に検証もしないままコピペの正…

php で DNS からレコードを調べてIPアドレスを取り出す - dns_get_record

php

ドメイン名のDNSレコードを調べてIPアドレスを取得する dns_get_record でDNSの値をクエリすることが出来ます。 var_dump(…

phpで文字列がメールアドレスかどうか調べる(RFC822) - filter_vars

php

phpで文字列がメールアドレスかどうか調べる。 var_dump(filter_var('takuya@example.com', FILTER_VALIDATE_EMAIL )); string(18) "takuya@example.com" php > var_dump(filter_var('takuya+sample@…

phpで 文字列がIPアドレスかどうか調べる- filter_vars

php

文字列がIPアドレスかどうか調べるには。 FILTER_VALIDATE_IP を filter_vars と組み合わせて使うとお手軽です。 var_dump(filter_var('a', FILTER_VALIDATE_IP)); bool(false) php > var_dump(filter_var…

phpでプロスセス実行するライブラリ書いた。

php でコマンドのプロセス実行したい。 シェルコマンドの呼び出しをどうしてもやる必要があって、ずっと proc_open について調べてたり、pakagist / pear などのライブラリを見てたんだけど、代表的なものをいくつか試した。しかしコレと思えるものや使い方…