私は下のファクトリーを作成しているsymfonyプロジェクトで:この工場はsymfonyのコマンドで使用サービスで使用されている流暢セッター - PHP
<?php
namespace Company\MyBundle\Factory;
use Company\MyBundle\Entity\ParentRequest;
use Company\MyBundle\Entity\ChildRequest;
use Company\MyBundle\Entity\Foo;
use Company\MyBundle\Entity\Bar;
/**
* Class ChildRequestFactory
*
* Factory instanciating ChildRequest with several values
* @package Company\MyBundle\Factory
*/
class ChildRequestFactory extends AbstractRequestFactory
{
/**
* @param \DateTime $date
* @param Bar|null $bar
* @param Foo|null $foo
* @return ChildRequest
*/
public function createRequest(\DateTime $date, Bar $bar
= null, Foo $foo = null)
{
$childRequest = new ChildRequest();
$childRequest
->setDateValidation($date)
->setIsValid(ParentRequest::IS_VALIDATED)
->setFoo($foo)
->setBar($bar)
->setBaz('baz')
->setOrigin('Manager')
;
return $childRequest;
}
。 のが今の問題を説明してみましょう:
- のdevの備品と地元のdevの環境でコマンドを実行し、工場を正しく作成したオブジェクトを返します。
- preprodデータベースを使用してローカルのdev環境でコマンドを実行すると、ファクトリはオブジェクトを正しく作成して返します。
- preprodデータベースを使用してpreprod環境でコマンドを実行すると、以下のエラーが発生した:
PHPの致命的なエラー:は/ var/www /のアプリケーション/ srcの中でヌルに)(メンバ関数setFooに呼び出し/Company/MyBundle/Factory/ChildRequestFactory.phpライン上の37
[symfonyの\コンポーネント\デバッグ\例外の\ FatalErrorException] エラー:ヌルにメンバ関数setFoo()の呼び出し
例外トレース: ()/var/www/application/src/Company/MyBundle/Factory/ChildRequestFactory.php:37
でこのエラーはpreprod環境に表示されます。 私はすでにバージョン管理をチェックしていますが、コードはローカルとプリプロード環境の同じgitブランチ上にあります。 キャッシュはpreprodですでに削除されています。 データベースの同期/スキーマの更新:OK
symfonyのバージョン:2.7.13 (ローカルおよびpreprod) PHPバージョン:5.6.17 (ローカル)/ 5.6.23(preprod)
私が流暢なセッターを使用しないとき、それはpreprod envの問題を解決します。
注意:私は、機密性のためにバンドル名といくつかの変数/クラス/メソッドを変更しました。
更新:
これは、NULLを返すsetIsValidセッターです。
/**
* Set is_valid
*
* @param integer $isValid
*/
public function setIsValid($isValid)
{
$this->isValid = $isValid;
return $this;
}
あなたの 'setIsValid'メソッドを私に教えてください –
私の賭けは、' ParentRequest :: IS_VALIDATED'に何か問題があります - いくつかのオートロードの問題かそれに類するものですが、確かに言うのは難しいです。あなたはそれを具体的な価値に変えようとして、それがうまくいくかどうか見てみましょうか? –
@TomaszMadeyski具体的な値を1のように渡すときには機能しません。同じ問題 –