2017-04-20 4 views
0

내 자바 경험은이 같은 일반적인 컬렉션을 만들 수 있습니다 알려줍니다 :이 Laravel에 가능하면 내가 궁금Laravel 일반 컬렉션

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

을 (적어도 5.2 이상)? 나는 거의 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; 
    } 
을 아래와 같이 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

음, 고마워. :)하지만 비슷한 질문과 대답 일 뿐이야. 나는 당신이 단지 다른 것을 추가 할 수 있다고 생각한다. –

답변

0

@AlexSlipKnot의 댓글에 대한 크레딧으로, 나는 PHP가 현재 Generics를 지원하지 않는다고 믿는다; 그러나 it may support it in the future. 주석에있는 그의 다른 링크 (StackOverflow 대답은 a similar question)는 사용자 정의 구현에 대한 심층적 인 지침을 제공합니다. 그러나 사용자 정의 구현을 개발하려면 적용 가능한 O.O Design Principles을 조심해야합니다.