[CakePHP2]cakedc/searchでError: Class ‘String’ not found エラーが出る場合

cakedc/searchは検索エンジンを作るためプラグインですが、最新のCake(2.8系)だと下記のエラーが出ることがありました。

Error: Class ‘String’ not found エラー


スポンサーリンク

原因は、Stringライブラリがデフォルトでロードされていないためのようです。
使用するモデルの先頭に
App::uses(‘String’, ‘Utility’);
を書いてあげれば大丈夫のようです。
面倒ならAppController.php内に書いても大丈夫なようです。

> 2018年6月追記
PHP7系を使っている場合は、Stringクラスが予約語になってしまっているため、CakeのStringクラスは使用できなくなっています。
CakeTextクラスに変更になっていますので、CakeDCのバージョンによっては、プラグイン側を書き換える必要があるかもしれません。
※本記事を書いている段階では修正されていませんでした。
具体的な対処法としては
/Model/Behavior/SearchableBehavior.php の中で”String::”で定義している個所を”CakeText::”に書き換えてあげればよいかと思います。