2017-07-04 2 views
0

バンドルの特定のクラスをオーバーライドしようとしています(失敗しています)。私は上書きしたい クラスは次のとおりです。OroCrmでバンドルをオーバーライドする方法

オロ\バンドル\ MagentoBundle \エンティティ\リポジトリ\ CustomerRepository

そうするために、私は

namespace Kiwee\Bundle\MnhBundle; 

use Symfony\Component\HttpKernel\Bundle\Bundle; 

class MnhMagentoBundle extends Bundle { 

    public function getParent() { 
     return 'OroMagentoBundle'; 
    } 
} 

私のバンドルを作成したと私はバンドルを追加しました.yml

bundles: 
    - Kiwee\Bundle\MnhBundle\MnhMagentoBundle 

これまでのところ、バンドルがロードされています。 今、私は上記のクラスをオーバーライドする方法に関する実例を見つけることができないようです。

オーバーライドしたいクラスと同じ相対パスでファイルを作成しようとしましたが、動作しません。

namespace Kiwee\Bundle\MnhBundle\Entity\Repository; 

use Oro\Bundle\MagentoBundle\Entity\Repository\CustomerRepository as BaseCustomerRepository; 

class CustomerRepository extends BaseCustomerRepository 
{ 
    public function calculateLifetimeValue(Customer $customer) 
    { 
     // [... here is my custom logic for this method ...] 

    } 
} 

私が持っている最初の問題は、「お客様」は、元のクラスと同じタイプではないということです。 2つ目は、完全なクラスパスを宣言してもそれを修正しても、このメソッドは元のままでは使用されないということです。 何かヒント?

ありがとうございました

+0

[こちら](https://stackoverflow.com/questions/26623089/symfony2-how-to-override-a-specific-class-of-a-bundle) – DonCallisto

答えて

関連する問題