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
));
