Transactionの登録方法

仕訳のバランスを見たり、バリデーションチェックをしたりと、結構重要。
最初の計画では

$transaction = $fiscalYear->crceateTransaction( 仕訳データ );

を考えていたけど、FIscalYear の責務が重くなる可能性が高いので、TransactionRegistrar サービスクラスを作って、そこで一元管理することとする(もちろん、Transaction::create()すればどこでも作成できるけど、TransactionRegistrarを使うというのが内部ルール)。

$registrar = new TransactionRegistrar();
$transaction = $registrar( $fiscalYear, 仕訳データ );

ただ、これを直接書くのは直感的でないので、FiscalYear のインスタンスメソッド経由で使わせる。

$fiscalYear = HogeHoge::foo();

try{
    $transaction = $fiscalYear->registerTransaction( 仕訳データ );
}catch( Exception $e){
   // 対応
}