PHP

M2 MacにHomebrewでPHP7.4を入れてXdebugを有効にする

Homebrew経由でM2 MacにPHP7.4を入れようとしたら以下のエラーが表示された $ brew install php@7.4 Error: php@7.4 has been disabled because it is a versioned formula! M1 Macのときからなるっぽい ググったら同じ現象の記事が山ほど出てきたので以下で…

php:7.4-apacheを使ったDockerfileでXdebugのインストールが失敗する

エラー #0 179.0 pecl/xdebug requires PHP (version >= 8.0.0, version <= 8.2.99), installed version is 7.4.33 #0 179.0 No valid packages found #0 179.0 install failed 原因 Xdebug 3.2.0がPHP7.2~7.4をサポートしなくなった This is the first rele…

Toggl の作業内容を Redmine に登録する

弊社では作業管理ツールに Redmine を使用しています。 チケットと呼ばれる各タスクに作業時間を入力して、↓みたいに退社時に Slackbot で1日の作業内容がわかるようになっています。 (ちなみに上記のSlackbotは弊社代表の自作です。) ただ、これが死ぬほど…

PHPUnit で作成したテスト項目をHTMLで出力する

PHPUnit の --log-junit オプションでxmlを出力する # ./vendor/bin/phpunit tests/Feature/SampleControllerTest.php --log-junit output.xml PHPUnit 9.5.10 by Sebastian Bergmann and contributors. . 1 / 1 (100%) Time: 00:00.901, Memory: 24.00 MB O…

Mac に Xdebug をインストールして VSCode でデバッグする

経緯 ちょっとしたサンプルプログラムをホストマシンで試すときに、いつも var_dump() デバッグ使ってたけどちょっとしたサンプルプログラムだろうが何だろうが Xdebug 使ったほうがもっと楽になるよね、ハム太郎。 手順 Debug Build が no になっていること…

Laravel でアクセストークンを header に含むときのAPIのテストを書く

いつ使うの? SPAではないプロジェクト(アクセストークンの取得タイミングがMPAでのログイン時) 一部画面でアクセストークンを含むAPIを叩いている コード post('/login', [ 'email' => 'hoge@example.jp', 'password' => 'password' ]);…

Laravel で画像をアップロードする Controller のテストを書く

Laravel で画像アップロードのController周りのテストを書いたことがなかったので備忘録 post('image/upload', ['images' => UploadedFile::fake()->image('hoge.jpg')]); $res->assertRed…

Carbon の diffInDays() は時間まで見ている

みんな大好きCarbonで対象日が今日の何日後かを知りたいときに, 想定していた挙動と違っていたのでメモ 対象日が本日の何日後かを知りたい 2021-11-15が本日(2021-11-14)の何日後かを知りたいとき >>> now()->diffInDays(Carbon\Carbon::parse('2021-11-15')…

PHPで半角数字を漢数字の単位付きの表記に変換したい

PHP

530000 → 53万みたいに漢数字の単位を付けたかった。 タイトルに漢数字って書いてあるから詐欺ってるみたいだけど五三万への変換は今回はやりません。🙇🏿‍ 早速コード

配列を任意の個数で分割したい

PHP

array_chunk() みたいに全部均等ではなく, 3個, 2個, 2個, 6個, 1個, 1個 ... みたいに分割数が可変な配列を作りたかったときに地味にハマったのでメモ

PHP で Selenium を動かすためにやったこと

Selenium 童貞捨てたのは Python だったけど使い慣れてる PHP でも Selenium を使いたかったので備忘録 以前やった内容を後日まとめてるのでもしかしたら手順に抜けがあるかも。。。 前提 手順 1. ChromeDriver のダウンロード 2. chromedriver のパスを通す…

Composer のパッケージを作成した🎉

前からやってみたいと思いつつ後回しにしていた。。。 文字列をLeet文字に変換するっていう使い所がないパッケージだけど作れたことに満足:)

Laravel の Eloquent ORM でサブクエリを作る

日付単位で number の合計が10以上のレコードのみを抽出する データ id target_date number 1 2021-09-01 1 2 2021-09-02 2 3 2021-09-01 3 4 2021-09-03 4 5 2021-09-04 4 6 2021-09-11 2 7 2021-09-06 5 8 2021-09-12 23 9 2021-09-12 10 10 2021-09-23 20…

CodeIgniter3 の QueryBuilder でサブクエリを作る

databaseの接続設定は済んでいる前提 $subQuery = $this->db->select('count(*) as column_count, sample_id')->get_compiled_select('table_a'); $this->db->select('*')->join("({$subQuery}) AS table_a", 'table_a.sample_id = samples.id', 'left', fal…

PHPUnitのアサーションについて

書いてないのもあるので修正が必要 論理値の検証 assertFalse assertTrue assertIsBool 空かどうかの検証 assertEmpty assertNull 等しいかどうか assertEquals assertSame 比較の検証 assertGreaterThan assertGreaterThanOrEqual assertLessThan assertLes…

PHPの演算子の優先順位

PHP

※過去ブログの転記 評価順位 表記 名前 例 意味 高 && 論理積 $a && $b $aと$bがTRUEの時にTRUE || 論理和 $a || $b $aまたは$bがTRUEの時にTRUE = 代入演算子 $a = $b $aに$bを代入 and 論理積 $a and $b $aと$bがTRUEの時にTRUE xor 排他的論理和 $a xor $…