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) {
(以下略)