暇人じゃない

CakePHP の Media Plugin で Call to undefined method Folder::ls() エラーが出るときの対処法
CakePHP

ここで使用している 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

About

chocoby (GitHub / Twitter)

フリーのソフトウェア開発者です。 Ruby を使った Web 開発を得意としています。