CodeLab

MacOS

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

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

[Laravel]外部キー制約が削除できない

Laravelで外部キー制約を削除する場合、マイグレーションのupメソッドでpublic function up() { Schema::table('{テーブル名}', function (Blueprint $table) { $tab...
Chrome

ERR_ADDRESS_UNREACHABLE でローカルのサーバーにアクセスできない

MacのChromeでLAN内にあるルーターやNASの管理画面とかがERR_ADDRESS_UNREACHABLEで開けなくなった。こんな感じPINGは通るのでネットワーク的には繋がってはいそう。Safariでアクセスしたら問題なく見れるの...
Next.JS

Next.JS14のデバッグでmapファイルが見つからない問題

VSCodeでデバッグ中にコンソールにこんなメッセージが頻繁に出て気になったので調べてみた。Could not read source map for file:/.next/server/vendor-chunks/next.js: EN...
Next.JS

React Hookを使うと書式エラーになる

Hookを使うとなぜかこんなエラーがReact Hook "React.useState" is called in function "hoge" that is neither a React function component no...
Laravel

あえてEager Loadingしないほうが早い場合

Laravelでリレーション先のレコードを一緒に取得したい場合。リレーション先取得のクエリが大量に発行されてしまうのを防ぐには、withメソッドを使います。withメソッドを使うことで複数レコードの取得でも1回のクエリでリレーションが取得さ...
開発

[Next.js]VSCodeでフルスタック(サーバー&クライアント同時)デバッグ方法

Next.jsをVSCodeでデバッグする方法ですが、公式がちょっとわかりにくかったのでメモを残しておきます。まず、公式サイトに設定ファイルがありますのでそのリンクを書いておきます。{"version": "0.2.0","configur...
Laravel

[Laravel] Eloquent(QueryBuilder)で使うINDEXを強制する方法

MySQLなどのDBではIndexの有無によってパフォーマンスがかなり変わります。Indexは自動的に最適なものが選択されるはずですが、気まぐれでおかしなIndexが利用されて動作が極端に遅くなってしまうことがあります。そんな時はFORCE...
Docker

[docker-compose]複数コンテナに同じ設定をDRYに書く

複数コンテナに同じ環境変数を設定したいけど、重複して書くのは嫌。という場合。x-environmentに&environmentでaliasを設定し、*environment で展開できます。いちいち書いて回ると面倒ですしミスもふえますから...
開発

Udemyアプリ版の講座ダウンロードができない

Udemyアプリ版を使うと、動画をストレージにダウンロードできるので、外出先でネットワークが遅かったりオフラインでも見ることができます。ですが、出かける前にダウンロードしておいて、電車の中で聞こうとおもってみてみたらダウンロードされてなかっ...
Windows

マザーボード交換時の再ライセンス認証

マザーボード交換時の再ライセンス認証にはまりました。以前は電話したら何とかなったのですが、電話での認証は現在ないらしい。いろいろ試行錯誤しているうちにできちゃった感じで画面キャプチャーもしていないのだが、ライセンス認証画面でトラブルシューテ...
Laravel

[Laravel]queryのSQLを得る方法

Queryオブジェクトの発行予定のSQLを得る方法です。$sqlDump = preg_replace_array('/\?/', array_map(function($n) { return "'".$n"'";}, $query->g...
Git

リモートにないローカルブランチを削除

gitを使っていると、ローカルに大量のブランチができて鬱陶しい。mainにマージ後削除することが多いと思いますが、リモートにない&マージされていないローカルブランチを削除するコマンドです。git fetch -p && git branch...
CakePHP

[CekePHP5]Tableクラスのメソッド存在チェック

こちらの記事でコントローラーのメソッドの存在チェック方法について書きましたが、Tableクラスでメソッドが存在するか調べる方法についてはまた事情が違うようでした。Tableクラスに実装したメソッドに関してはmethod_exists()で可...
CakePHP

[CakePHP5]Modelイベントがなくなってる?

レコードの保存時などのイベント取得でCakePHP4以前ではafterSave()とかbeforeFind()とか、そいういうメソッドをTableクラスに定義するとそこでイベントを受け取ることができました。ですが、CakePHP5でやってみ...
CakePHP

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

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

sedコマンドでエスケープなしで置換したい

sedコマンドでURLなどエスケープ文字を含む文字列を置換したい場合sed -e "s/URL/http:¥/¥/www.codelab.co.jp¥//g" in.txt > out.txtみたいな感じにしないといけません。ですが、入力文...
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()などの類似の関数...