2017-04-20 138 views
0

我的Java的经验告诉我,我可以创建泛型集合是这样的:Laravel泛型集合

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

我想知道这是否可能在Laravel(至少5.2 +)?我已经使用Laravel近3年了,现在才想到这一点。

当前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; 
    } 

比如我下面创建一个Laravel模型变压器功能时,在考虑本

+1

Php没有泛型。也许这个答案可以帮助你: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和泛型的最佳信息。我还及时提醒了关于Liskov替补,这是一个额外的奖励。如果你的评论是一个答案,我会试图接受这个解决方案。 – Rob

+1

恩,谢谢:)但这只是一个类似的问题和答案。我想你可以在提供的类似问题中添加另一个或编辑现有的答案。 –

回答