暇人じゃない

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

Folder mkdirは非推奨となりました。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