Laravel通用集合

时间:2017-04-20 07:20:37

标签: php laravel laravel-5 laravel-5.2 laravel-5.3

我的Java经验告诉我,我可以创建这样的通用集合:

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 个答案:

答案 0 :(得分:0)

感谢来自@AlexSlipKnot的评论,我相信PHP目前不支持Generics;但是,it may support it in the future。他在评论中的其他链接(StackOverflow对a similar question的回答)也为自定义实现提供了深入的指导;但是,如果要开发自己的自定义实现,他们需要注意适用的O.O Design Principles