php

MacOS

brewのPHPのバージョンを変更する

Macの開発でいつの間にかPHPのバージョンが上がっていて不具合が起こってしまったのでバージョンを変更する。PHP8.3にする場合はこんな感じでbrew install php@8.3brew unlink phpbrew link --f...
CakePHP

[CakePHP]メール送信で”Could not send email: unknown”

CekePHP5でメール送信したら"Could not send email: unknown"という謎のメッセージが出る。原因EmailTransportのclassNameの設定を確認する。app.php(もしくはapp_local.p...
CakePHP

オブジェクト内のプロパティー存在チェックに引っかからない場合

CakePHP5/PHP8.1でコンポーネントがロードされているかどうか調べるためにif(isset($this->Auth)){}というようなコードを書いたが、なぜかfalseになる。その他のmethod_exists()などの類似の関数...
docker-compose

Composer で処理中にタイムアウトになるのを防ぐ

docker-compose系のコマンドが長くてめんどくさいのでcomposer.jsonにscriptを書いたのですが、いつの間にか強制終了されてしまいます。composerで長い時間の処理をさせようとすると、300秒でタイムアウトして強...
開発

[CakePHP]Warning: Cannot modify header information – headers already sent ..がどうしても解決できない時

他人が作った古ーいシステムをメンテナンスする時に、Warning: Cannot modify header information - headers already sent ..がでてRedirectが動かなかったり、画面が真っ白にな...
開発

docker内でcomposerをインストールする

docker内でcomposerを使えるようにしたい場合。インストールコマンドをRUNにかいてもいいんですが、もっと簡単にDockerFile内で以下のように書けばOK。COPY --from=composer /usr/bin/compo...
GitHub

GitHub ActionsでPHPのバージョンを指定する方法

GitHub ActionsでLaravelのバックエンドをデプロイしているのですが、突然デプロイできなくなった問題に遭遇した時の忘備録です。原因原因は、デプロイする環境(runner)にインストールされているPHPのバージョンが変わってし...
javascript

配列のキーが歯抜けだとlengthがundefindになる

axiosで受け取ったレスポンスのサイズを見るためにlengthプロパティーを参照したら何故かundefindになってしまいました。理由バックエンド側のレスポンスで{ 0: { id: 1 }, 3: { id: 3 }, 5: { id:...
Laravel

Laravel sail によるデバッグ設定

Laravel sail で構築したアプリのPHPデバッグを行う方法です。設定変更Xdebugについては標準でVer3系のものがインストールされています。.ENV ファイルに以下の環境変数をセットSAIL_XDEBUG_MODE=devel...
Docker

VSCodeでPHPのxdebugしようとしても[Step Debug] Time-out connecting to debugging client になる

WSL2上のUbuntuで動いているDockerコンテナ動かしていたら、こんな感じのエラーになりました。PHP message: Xdebug: Time-out connecting to debugging client, waited...
PHP

VSCodeにコンテナ内のPHPを指定する方法

VSCodeでPHP IntelliSenseを有効化すると、こんな画面が表示される場合があります。通常はsetting.jsonにphpのバイナリがある場所を指定すればOKです。ですがPHPをDockerで動かしている場合、そもそもローカ...
CakePHP3.x

[CakePHP]composer起動時に出る警告メッセージ

composerでCakePHPをインストールしたらこんなメッセージがAction requiredThe CakePHP plugin installer v1.3+ no longer requires the "post-autolo...
Google API

googleスプレッドシートをPHPからアクセスしたら超絶めんどくさかった件

エクセルのシートをPHPで読みたかったのですが、googleスプレッドシート経由で読めば簡単じゃね?と思ってやり始めたときのメモです。公式のチュートリアルを見て簡単じゃーんと思ったのですが・・・結果としては、結構ハマりました。
CakePHP3.x

[CakePHP3.x]CakePHP2にあったafterFind()やvirtualFiledsはどこに行った?

CakePHP2ではモデルのafterFind()メソッドで検索結果の整形を行うことができました。なんですが、CakePHP3ではなくなってしまったようです。(参考)afterFind イベントやバーチャルフィールドはありません
CakePHP3.x

CakePHP3で複合主キーを使う

CakePHP3が複数のプライマリキーを持つことができるようになったみたいなのだが、ずっと避けてきていましたが、ようやく使えそうなのでちょっといじってみました。
CakePHP3.x

CakePHP3+Bootstrap3でチェックボックスとかラジオボタンを横並びでいい感じで表示する

CakePHP3+Bootstrap3でフォーム部品を表示させようとするのだけど、チェックボックスとかが縦並びになったりイマイチ感が半端ない。とりあえず、手っ取り早く横並びでいい感じに表示させようと試みてみました。
開発

ImageMagic&PHPでJPEGに変換すると背景が黒くなる問題

ImageMagicでPDFを変換してJPEGにしたかったのだが、背景色が真っ黒になってしまって文字が読めなくなってしまう。どうにかして背景色を設定したいのだがうまくいかない・・・どうにかして見つけた方法がこれ。
CakePHP3.x

CakePHP3のFormHelperのデフォルトを変える

CakePHP3でフォームを書く際に、divとかラベルとかの制御はそれぞれのメソッドのパラメータからできたんですが、CakePHP3になってなんかうまくいかないことが多い。
CakePHP

同じテーブルで条件を変えて同時に取得するには

CakePHP2でHasManyでリレーションしているテーブルの最新のデータのみ取得と全件取得を同時にしたい場合どうしたらいいか…ちょっと悩みました。
OS設定

[XAMPP]ShellからBreakができない?

Windows10にインストールしたXAMPPのコントロールパネルから起動したShell(コマンドプロンプト)でPHPのプログラムを実行してみた。右側のShellボタンで動かすやつね。プログラム自体は動いたんだけど、Ctrl+Cでブレークが...