概要
Laravelの機能である Observer
で、そこそこ複雑な処理をさせた状態で php vendor/bin/phpunit
したら segmentation fault (core dumped)
で死んだ。
で、PHPのバージョンを上げたら治った。謎。
環境
- PHP 7.0.4
- Laravel 5.1
<?php
namespace App\Observers;
use App\Models\User;
class UserObserver
{
public function created(User $user)
{
// そこそこ複雑な処理
$user->hogehoge = bcrypt('fugafuga');
$user->save();
}
}
この関数内を処理を全てコメントアウトしたら動いた。
ちなみに phpunit.xml
はこんな感じ。
phpunit.xml(一部)
<?xml version="1.0" encoding="UTF-8"?>
<php>
<env name="APP_ENV" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
<env name="DB_DRIVER" value="mysql"/>
<env name="DB_HOST" value="127.0.0.1"/>
<env name="DB_DATABASE" value="homestead_test"/>
<env name="APP_HOST" value="http://localhost"/>
</php>
<filter>
<whitelist>
<directory suffix=".php">./app/Http/Controllers</directory>
<directory suffix=".php">./app/Models</directory>
<directory suffix=".php">./app/Services</directory>
<directory suffix=".php">./app/Http/Middleware</directory>
</whitelist>
</filter>
<logging>
<log type="coverage-html" target="./storage/coverage" charset="UTF-8"
yui="true" highlight="true"
lowUpperBound="50" highLowerBound="80" />
</logging>
</phpunit>
php 7.1.4
にしたらエラー起こらなくなった。謎。