2012年6月10日日曜日

openpne3 Symfony cc で Warning: array_merge()

OpenPNE3でSymfony ccとキャッシュをクリアすると下記のWarningが発生。
       
Warning: array_merge(): Argument #1 is not an array in openpneルート
\lib\config\opProjectConfiguration.class.php on line 131

Warning: Invalid argument supplied for foreach() in openpneルート\li
b\config\opProjectConfiguration.class.php on line 144

Notice: Undefined index: session_storage in openpneルート\lib\config
\opProjectConfiguration.class.php on line 141

Notice: Undefined index: session_storage in ルート\lib\config
\opProjectConfiguration.class.php on line 141

公式ページのバグでも管理されているようで、php4とphp5でのarray_mergeの使用の違いで
発生するようだ。

なお、自分のPHPのバージョンは5.3.8でした。

修正方法
================================
openpneルート\lib\config 配下の
opProjectConfiguration.class.phpの131行目を下記のように修正すると直りました。
(openpne3.6.3)

<修正前>
$config = array_merge($config, sfYaml::load($path));
<修正後>
$config = array_merge((array)$config, sfYaml::load($path));
================================

と、一件落着です。

1 件のコメント:

  1. 初めまして、kentと申します。
    このHPに辿り着き参考にさして頂きました。
    一つ教えて頂きたくお願い申し上げます。

    当方の環境は、Win XP PHP5.4.19 OpenPNE-3.8.7.1-0-gedf903cです。

    インストールコマンド php d:\ルート\symfony openpne:install

    エラー1
    PHP Notice: Undefined index: session_storage in D:\ルート\lib\config\op
    ProjectConfiguration.class.php on line 163

    エラー2
    Notice: Undefined index: session_storage in D:\ルート\lib\config\opProje
    ctConfiguration.class.php on line 163
    PHP Notice: Undefined index: session_storage in D:\ルート\lib\config\op
    ProjectConfiguration.class.php on line 163
    エラー2が後2回続き下記の所で固まります。

    Choose DBMS:
    - mysql
    - pgsql (unsupported)
    - sqlite (unsupported)

    ^C
    C:\php>
    $config = array_merge((array)$config, sfYaml::load($path));を試して
    見ましたが、変わりませんでした。

    ご指導頂けましたら、幸いかと存じます。
    よろしくお願いします。

    返信削除