CakePHP の Media Plugin で Call to undefined method Folder::ls() エラーが出るときの対処法
ここで使用している CakePHP のバージョンは 1.3.3 です。 ここで使用している Media Plugin のバージョンは 0.60 です。 設置が少し大変な部分はありますが、Media Plugin は便利ですよね。
CakePHP 1.3 で Media Plugin を使用していると、ファイルの削除処理などを実行した時に、Call to undefined method Folder::ls() エラーが出るときの対処法。
CakePHP 1.2 から 1.3 への移行ガイドにもある通り...
1.2 から 1.3 への移行ガイド :: 付録 :: マニュアル :: 1.3 コレクション :: The Cookbook http://book.cakephp.org/ja/view/1561/Migrating-from-CakePHP-1-2-to-1-3
Foldermkdir は非推奨となりました。create を使用してください。 mv は非推奨となりました。move を使用してください。 ls は非推奨となりました。read を使用してください。 cp は非推奨となりました。copy を使用してください。 rm は非推奨となりました。delete を使用してください。
ls は非推奨となり、代わりに read を使用することになっています。 そこで、media.php の該当部分を書き換えてみます。
// app/plugins/media/models/behaviors/media.php
// 270行目
//list($versions, ) = $Folder->ls();
list($versions, ) = $Folder->read(); // for CakePHP 1.3
追記: Issues にも上がっていますね。
Issues - davidpersson/media - GitHub http://github.com/davidpersson/media/issues#issue/37