Warning: SplFileInfo::openFile〜の警告が表示されたら
開発環境:CakePHP2.5.1
ShellとWEBの両方で同一のModelを呼び出す時に「Warning: SplFileInfo::openFile〜」と警告が出る場合があります。
そんな時の対処方法です。
警告の原因
ShellでCakePHPを動かした時に生成されるModelのキャッシュの所有者と、WEB側で呼び出した時のユーザーが異なるために「Warning: SplFileInfo::openFile〜」の警告が表示されてしまいます。
maskを追加
これを解消するために、Modelのキャッシュが作られる時にmaskを設定することで、どちらからでもアクセスできるようになります。
やり方ですが、app/Config/core.phpの下記の部分にmaskオプションを追加します。
<?php Cache::config('_cake_core_', array( 'engine' => $engine, 'prefix' => $prefix . 'cake_core_', 'path' => CACHE . 'persistent' . DS, 'serialize' => ($engine === 'File'), 'duration' => $duration, 'mask' => 0666 )); Cache::config('_cake_model_', array( 'engine' => $engine, 'prefix' => $prefix . 'cake_model_', 'path' => CACHE . 'models' . DS, 'serialize' => ($engine === 'File'), 'duration' => $duration, 'mask' => 0666 ));