2017-04-20 8 views
0

私のJavaの経験は、私がこのような一般的なコレクションを作成することができます私に語った:Laravelジェネリックコレクション

Collection<E> collection = new Collection<E>(); 

これはLaravel(少なくとも5.2+)で可能である場合、私は疑問に思って?私はLaravelを3年近く使っており、今これについて疑問に思っています。

以下のようにLaravelモデル変圧機能を作成する場合たとえば、私はこれを考えていた:

現在Laravel機能:ジェネリックを使用して

public function transformMultiple(Collection $models){ 

     $collection = collect(); 

     foreach($models as $m){ 
      $collection->push($this->transform($m)); 
     } 

     return $collection; 
    } 

仮説的な機能:

public function transformMultiple(Collection<Foo> $models){ 

     $collection = collect(); 

     foreach($models as $m){ 
      $collection->push($this->transform($m)); 
     } 

     return $collection; 
    } 
+1

phpにはGenericsがありません。おそらく、この回答はあなたに役立ちます:http://stackoverflow.com/questions/9646397/does-php-have-an-answer-to-java-style-class-generics 将来的にはPHPが提供することができます:https:///wiki.php.net/rfc/generics –

+0

@AlexSlipknotあなたのコメントは間違いなく役に立ちました。私がPHPとGenericsについて知り尽くした最良の情報を提供します。私はリスコフの代用についてタイムリーに思い出させてくれました。これは追加ボーナスでした。あなたのコメントが代わりに答えだったら、私はこれを解決策として受け入れることに誘惑されるだろう。 – Rob

+1

まあ、ありがとう:)しかしそれはちょうど同様の質問と答えです。私はあなたが単に別のものを追加したり、既存の答えを編集したりすることができると思います。 –

答えて

0

@AlexSlipKnotからのコメントには、私はPHPが現在Genericsをサポートしていないと信じています。しかし、it may support it in the future。コメント内の彼の他のリンク(StackOverflowの答えはa similar questionへの回答)も、カスタム実装に深いガイドラインを提供しています。ただし、独自のカスタム実装を開発する場合は、該当するO.O Design Principlesに注意する必要があります。

関連する問題