MagentoでPHP7を使うときの備忘録
MagentoでPHP5を使い続けたいけど、7にするとスピードがかなり上がるらしい。
そこでPHP7で使うときの変更点をまとめて自分用に残してます。
(Magento1.9以前のバージョン用)
1. Layout.phpの修正
PHP7を使うときは`$callback`の扱いが少し変わっているので、変更が必要なところがあります。変更するファイルは
app/code/core/Mage/Core/Model/Layout.php
になります。
ここで
$out .= $this->getBlock($callback[0])->$callback[1]();
となっているところを
$out .= $this->getBlock($callback[0])->{$callback[1]}();
に変更します。
※まずここを変えないとインストール画面すら表示されません。
2. Mysql4.phpの修正
次に
app/code/core/Mage/Install/Model/Installer/Db/Mysql4.php
を修正します。
->fetchPairs('SHOW VARIABLES');
return (!isset($variables['have_innodb']) || $variables['have_innodb'] != 'YES') ? false : true;
を
->fetchPairs('SHOW ENGINES');
return isset($variables['InnoDB']) && ($variables['InnoDB'] == 'DEFAULT' || $variables['InnoDB'] == 'YES');
に変更します。