PHP 8.3.31
Preview: HasCollection.php Size: 1.37 KB
/home/getspomw/royalsquad.us/vendor/laravel/framework/src/Illuminate/Database/Eloquent/HasCollection.php

<?php

namespace Illuminate\Database\Eloquent;

use Illuminate\Database\Eloquent\Attributes\CollectedBy;
use ReflectionClass;

/**
 * @template TCollection of \Illuminate\Database\Eloquent\Collection
 */
trait HasCollection
{
    /**
     * The resolved collection class names by model.
     *
     * @var array<class-string<static>, class-string<TCollection>>
     */
    protected static array $resolvedCollectionClasses = [];

    /**
     * Create a new Eloquent Collection instance.
     *
     * @param  array<array-key, \Illuminate\Database\Eloquent\Model>  $models
     * @return TCollection
     */
    public function newCollection(array $models = [])
    {
        static::$resolvedCollectionClasses[static::class] ??= ($this->resolveCollectionFromAttribute() ?? static::$collectionClass);

        return new static::$resolvedCollectionClasses[static::class]($models);
    }

    /**
     * Resolve the collection class name from the CollectedBy attribute.
     *
     * @return class-string<TCollection>|null
     */
    public function resolveCollectionFromAttribute()
    {
        $reflectionClass = new ReflectionClass(static::class);

        $attributes = $reflectionClass->getAttributes(CollectedBy::class);

        if (! isset($attributes[0]) || ! isset($attributes[0]->getArguments()[0])) {
            return;
        }

        return $attributes[0]->getArguments()[0];
    }
}

Directory Contents

Dirs: 5 × Files: 23

Name Size Perms Modified Actions
- drwxrwxrwx 2025-09-17 06:53:01
Edit Download
Casts DIR
- drwxrwxrwx 2025-09-17 06:53:01
Edit Download
Concerns DIR
- drwxrwxrwx 2025-09-17 06:53:01
Edit Download
Factories DIR
- drwxrwxrwx 2025-09-17 06:53:01
Edit Download
Relations DIR
- drwxrwxrwx 2025-09-17 06:53:01
Edit Download
3.26 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
5.73 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
348 B lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
61.52 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
22.64 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
2.60 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
1.37 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
1.05 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
930 B lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
1.36 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
137 B lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
1.18 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
564 B lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
63.61 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
13.30 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
1.39 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
4.59 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
1.44 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
677 B lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
1001 B lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
350 B lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
7.76 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download
4.73 KB lrw-rw-rw- 2025-09-17 06:53:01
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).