2017-01-14 16 views
0

Laravelに工場を書くことができるようです。 doumentationによるとLaravelの工場?

https://laravel.com/docs/5.3/database-testing#writing-factories

これは、関連するモデル/データベースのための工場を表示されます。

非モデル関連の工場を書くことはできますか?二つのクラスの例については

class Car { 
    public function drive() { } 
} 

Class Bike { 
public function ride() { } 
} 

よりもむしろ、私はクラスにクラスをTransportファクトリーを使用したい(new Car)->drive()使用。

+0

CarまたはBikeのいずれかに合格する必要があります) – apokryfos

+0

@apokryfosいいえ私は嘲笑したくありません。 'Transport :: build( 'car') - > drive();のようなファクトリパターンを使用したいと思います。 –

+0

車に依存関係がありますか、それとも文字通り '(新車) - > drive()'と評価されますか? –

答えて

0

私はdrive()ride()CarためとBikeクラスなどの別のメソッドを持たずにここでは、この

class Transport 
{ 
    public static function build($vehicle) 
    { 
     return new $vehicle; 
    } 
} 

interface Vehicle 
{ 
    public function drive(); 
} 

class Car implements Vehicle 
{ 
    public function drive() 
    { 
     // the way a car drives 
    } 
} 

class Bike implements Vehicle 
{ 
    public function drive() 
    { 
     // the way a bike drives 
    } 
} 

class Something 
{ 
    public function someFunc() 
    { 
     Transport::build('Car')->drive(); 
    } 
} 

ような何かをしたい、私はちょうどdrive()メソッドを追加しました。その後BikeCarVehicle契約に結びついています。

は、それでは私達はちょうど私が正しくあなたを理解していれば、あなたは[Mockeries](https://laravel.com/docs/5.3/mockingを探しているTransport::build('Car')->drive();