CakePHP

CakePHP5でコードをきれいに保つ

コードのスタイルを統一しておくことは、品質の良いコードを保つのに必須要件です。 ですが、コーディング規約をいちいち気にしながらコードを書くのは非常にストレスになります。 ということで、できるところは機械に任せちゃいましょう。 CakePHP...
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

Dockerコンテナの起動、終了時にネットワーク系のエラーが出る

DockerのContainer(コンテナ)を終了させようとした時に「ERROR: error while removing network: network HOGE id FUGA has active endpoints.」とか、開始...
雑談

K855(Logicoolキーボード)+macでキー入力がおかしいとき

LogiCoolのK855というキーボードを1年ほど愛用しています。 無線のメカニカルキーボード。打ち心地もいいし、ゲーミングじゃないけど新方式の無線なので遅延も特に感じないからゲームもできる。BTにも対応で3台まで切り替え可能。ゲーミング...
開発

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

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

LaravelでEloquentのSQLを確認する

Queryビルダーで作ったSQL文を確認したいときにはtoSQL()メソッドを使います。 プレースホルダーの値も取得したい場合はgetBindings()メソッドを使います。 $query = User::where('id',1); va...
Laravel

Laravelで複数レコードを一括で更新する

Laravelで1度のQueryで複数のレコードを一括で更新したい時は,upserts()メソッドを使います。 Flight::upsert([ , ], , ); 第1引数に配列 第2引数に検索キー 第3引数に変更したいカラム を指定しま...
Git

[vscode]fatal: You have not concluded your merge. (MERGE_HEAD exists)でコンフリクトが解消できなくなった

VSCodeをつかっていて、どういうわけかコンフリクトの解消ができなくなってしまって fatal: You have not concluded your merge. (MERGE_HEAD exists) といった感じのエラーが出るよう...
GitHub

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

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

Laravelのリレーション先のモデルを取得するときは基本的にはwithを使え

Laravelでリレーション先のモデルを結合して受け取る方法は3種類ありますが、リレーション先のモデルを効率的に取得するために、withメソッドを使用することが推奨されています。 なぜでしょうか? withメソッドを使ってアクセスする wi...
Node.js

MacのNode.jsをnodebrewで切り替えできるようにする

nodebrewのインストール nodebrewのインストール方法は以下の通りです: ターミナルを開きます。 ターミナルで以下のコマンドを実行します: curl -L git.io/nodebrew | perl - setup インストー...
Laravel

laravel Eloquent updateOrCreate()でmodelを更新する

LaravelのupdateOrCreateメソッドは、指定した条件に基づいてデータベース内のレコードを更新するか、存在しない場合は新しいレコードを作成します。 このメソッドは非常に便利で、以下のようなシナリオで使用することができます。 既...
AWS

terraformのbackend設定内で変数を使う

tfstateファイルをS3で管理する場合は、バックエンドの設定を行います。この際、バケット名やキー名を変数管理したいと思うことでしょう。 しかし、結論から言って、Terraformのbackend設定では、直接的な変数の使用はサポートされ...
Git

GitHub Copilotが使えない

VSCodeでGitHub Copilotを使おうとしたときに、下記のエラーになる場合の対処 GitHub Copilot could not connect to server. Extension activation failed: ...
Laravel

laravelのcollectionでfilterを使った時はかならずvalues()を呼ぶ

laravelのcollectionでfilterを使って絞り込んだときは、必ずvalues()を呼びましょう。 こんな感じに。 $new = array.filter(function(value){ return (何か条件式); })...
Docker

The requested image’s platform (linux/amd64) does not match the detected host platform.

M1/M2でdockerを動かしていると、 Docker on Mac M1 gives: "The requested image's platform (linux/amd64) does not match the detected ...
AWS

tfenvによるTerraformインストール(for MacOS)

Terraformは、AWSやGCPなどの環境構築をコード化&自動化&デプロイするツールです。 今回はこちらのインストール方法を紹介します。 Terraformは複数バージョンが存在しますので、それらを簡単に切り替えられるtfenv経由での...
AWS

AWS CLIのPROFILE切り替え

aws cli では、複数のプロファイルを切り替えることができます。 以下のようなコマンドで、プロファイルを作成できます。 $ aws configure この場合は、ランダムな値のプロファイル名ができますが、プロファイル名を指定したい場合...
javascript

JavaScriptの連想配列

JavaScriptの配列 まず、普通の配列はキーが数字のものを指し const array = ; こんな感じで書けますが、実は console.log(array instanceof Object); //true console.l...