CodeLab

CakePHP

CakePHPがひどすぎる件

久々にCakePHP触ったんだけど、5になってリファレンスのインチキ度が増していますので、全く信用できません。CakePHP4とかのときに削除された機能がそのまましれっと書いてある。とにかく、名前が変わっただけとか無意味な変更がおおくて非常...
CakePHP

[CakePHP5]CSRF無効化

CakePHP5でCSRFを無効化する方法がハマったのでメモ。結論先に結論だけ述べると、FormProtectionComponentを使えダウトな情報その1SecurityComponent はCakePHP4.2ぐらいのころになくなった...
CakePHP

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

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

[CakePHP5]Since 5.0.0: Using options array for the `find()` call is deprecated. Use named arguments instead.

CakePHP5ではTable::find()の書き方がかわったようです。Since 5.0.0: Using options array for the `find()` call is deprecated. Use named arg...
CakePHP

[CakePHP5]Security.saltが取得できない。

CakePHP5でSecurity.saltを利用したかったのですが、なぜか取得できません。設定してあるのになぜだろう?と、30分ぐらい悩んだのですが原因判明config/bootstrap.php で消してました。Security::se...
CakePHP

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

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

LaravelでEloquentのSQLを確認する

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

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

Laravelで1度のQueryで複数のレコードを一括で更新したい時は,upserts()メソッドを使います。Flight::upsert([,], , );第1引数に配列第2引数に検索キー第3引数に変更したいカラムを指定します。updat...
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メソッドを使ってアクセスするwithメ...
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: "...