FuelPHPをPHP7.2に対応させる

php oil g model {以下省略} をすると下記のエラーがでました。

Uncaught exception Fuel\Core\PhpErrorException: 2 – Illegal string offset ‘primary’ in {path}/fuel/packages/oil/classes/generate/migration/actions.php on line 355

エラーがおこるケースとして、

count:int:default[0]

の様にデフォルト値が含まれているコマンドでエラーが発生していました。
この症状ですが、defaultを0以外にすると一見エラーも出ずコマンドが通るのですが、default値の設定はmigrationに反映されません。

fuel/packages/oil/classes/generate.php Line:1809を

修正前

if (count($part_matches) > 0)
{
    $option = $part_matches[0];
}
else
{
    $part_matches = true;
}

修正後

if (count($part_matches) > 0)
{
    $part_matches = $part_matches[0];
}
else
{
    $part_matches = true;
}

に修正すると正常動作します。


数年まえにつくったシステムがFuelPHP1.7系(PHP)でつくられていたのですが、諸事情によりPHP7.2が動くサーバに移設することとなり、対応しました。
開発も止まっていて、情報もあまりないのでなかなか大変です。。

FuelPHPPHP
スポンサーリンク
A4 WORKS Official BLOG