環境
以下の環境で動作させています。
% sw_vers
ProductName: macOS
ProductVersion: 12.6.5
BuildVersion: 21G531
ハマってしまった事象
Macが大文字/小文字を区別しない仕様を失念していて、Mac環境で動作していたコードがLinux環境へのデプロイした際にエラーを引き起こしました。
// classes/trait/fuga.php というトレイトファイルを呼び出したい
【classes/piyo.php】
namespace Hoge;
use Hoge/Trait/fuga.php // traitというディレクトリを大文字で記述してしまったことでエラーが発生
Macで「aa.php」と「AA.php」の作成を試みたところ、「AA.php」という名前の新しいファイルは作成されず、「aa.php」が更新されるだけでした。
% touch aa.php
% ls
aa.php
% touch AA.php
% ls
aa.php
Macの大文字/小文字の区別はAPFSのオプションだった
事象について調べたところ、Macでの大文字と小文字の区別はディスクフォーマット時に
Apple File System(APFS) というファイルで指定されるオプションとなっていました。
同じような事象に見舞われていたブログがあったため同じ手順で確認したところ、自身の使用PCも大文字/小文字を区別しない設定になっていました。
対処法も存在するらしいのですが、再フォーマットが必要とのことで一旦保留…。
所感
開発/反映先でのOSの違いによる仕様の違い、特に使用するMacの仕様について正しく理解をする必要があると再認識させられました。
参考にした記事