Windows環境にEC-CUBEを入れてみる
入れてようとしたけど、エラー連発で、早速なえたorz
環境は
WindowsXP
xampp1.7.2
(PHP 5.3.0 / MySQL 5.1)
EC-CUBE 2.4.1
エラーメッセージは・・
Deprecated: Assigning the return value of new by reference is deprecated in C:\Program File・・・
Deprecated: Assigning the return value of new by reference is deprecated in C:\Program File・・・
Deprecated: Assigning the return value of new by reference is deprecated in C:\Program File・・・
って感じです。
調べてみると
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=4810&forum=4
同じ現象で苦しんでいる人発見。
xamppのバージョンを
1.7.2 を 1.7.1にしたら問題なしになるらしい。
xamppが悪いのか・・?
というより、1.7.2に同梱されているPHP 5.3.0
ってのが、EC-CUBE2.4.1との相性が悪いっぽい。
EC-CUBEでは、
$obj =& new test();
といった形でオブジェクト生成しているけど、
"=&"ってのが、
http://php.net/manual/ja/migration53.deprecated.php
PHP 5.3.x系では推奨されてないっぽいね。
んもう。
に書かれていた。感謝!!
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
define("DEFAULT_DSN", "mysql://");
がミソですかね。
※メッセージ封じ込めているだけなのもあるけど。。
というわけで、無事に
windowsに、EC-CUBEいれることができました。
まぁ、デバッグするだけなんですけどね。
【追記】
$obj =& new test();
そもそも、なぜ "=&"と表記しているのか
気になったので(というか知らなかっただけですが、、)調べてみた。
どうやら、
= は コピーなのに対して
=& はポインタが渡されるらしい。
PHPの悪癖(?)に慣れてしまうと
こういう考え方がつい漏れてしまうのが情けないところです。。