Ver1.2->1.3でvendorPathsの設定不備によるエラーの解消
CakePHPのverを1.2から1.3にあげると、既存のソースで
Configure::read('vendorPaths')
の設定を用いていたため、エラーが出る場合の解消法。
$vendorPaths = array_values(App::path('vendors'));
を代わりに使えばよさそう。
エラーメッセージの例
Warning (2): array_merge() [function.array-merge]: Argument #1 is not an array [APP/plugins/media/vendors/mime_type.php, line 299]
Warning (2): Invalid argument supplied for foreach() [APP/plugins/media/vendors/mime_type.php, line 302]
いずれも、指定の変数がarrayではない、という主旨のエラーです。
当該箇所を確認すると、この部分で
Configure::read('vendorPaths')
という設定を使っています。
ver1.2と1.3のソースを検索して比較すると、Configure::read('vendorPaths')は、1.3では無くなったようです。
ver1.3のコアソースで、このように書いてる箇所があるので、この$vendorPathsでConfigure::read('vendorPaths')を代替すると、エラーが解消されました。
cake/console/cake.php:224行目
$vendorPaths = array_values(App::path('vendors')); foreach ($vendorPaths as $vendorPath) { (以下略)