Konfigurácia
Balík funguje s nulovou konfiguráciou — každý kľúč má predvolenú hodnotu a tie bežné sa dajú nastaviť cez env. Publikovaný config/media.php v plnom znení:
return [
'disk' => env('MEDIA_DISK', 'public'),
'variants_disk' => env('MEDIA_VARIANTS_DISK'),
'media_model' => RoundlyConsulting\MediaLibrary\Models\Media::class,
'table_name' => 'media',
'queue_variants_by_default' => false,
'queue_connection' => env('MEDIA_QUEUE_CONNECTION'),
'queue_name' => env('MEDIA_QUEUE'),
'image_driver' => env('MEDIA_IMAGE_DRIVER', 'imagick'),
'variant' => [
'quality' => 75,
'background' => '#ffffff',
],
'url_fallback_to_original' => false,
'temporary_url_default_lifetime' => 5,
'stream' => [
'enabled' => env('MEDIA_STREAM_ENABLED', true),
'route_prefix' => 'media',
'middleware' => ['web'],
],
'path_generator' => RoundlyConsulting\MediaLibrary\Support\DefaultPathGenerator::class,
'file_namer' => RoundlyConsulting\MediaLibrary\Support\DefaultFileNamer::class,
'default_visibility' => 'public',
'max_file_size' => 1024 * 1024 * 256,
'remote' => [
'headers' => [],
'timeout' => 30,
],
'deduplicate' => true,
'checksum_algorithm' => 'sha256', // sha256|sha384|sha512|sha512/256|sha3-256|sha3-384|sha3-512
'verify_checksum_on_read' => false,
'placeholders' => [
'thumbhash' => true,
'blurhash' => true,
],
'responsive' => [
'widths' => [320, 640, 960, 1280, 1920],
],
'drafts' => [
'ttl' => 1440,
],
'url_generator' => RoundlyConsulting\MediaLibrary\Support\DefaultUrlGenerator::class,
'cdn' => [
'enabled' => false,
'base_url' => env('MEDIA_CDN_URL'),
'cache_bust' => true,
'disks' => [],
],
];Všetky kľúče
| Kľúč | Predvolené | Účel |
|---|---|---|
disk | public | Predvolený disk pre originály (MEDIA_DISK). Prázdna hodnota sa považuje za nenastavenú, takže platí public; hodnota, ktorá nie je reťazec, vyhodí výnimku. |
variants_disk | null | Predvolený disk pre varianty (MEDIA_VARIANTS_DISK); null alebo prázdna hodnota (nenastavené) = disk originálu. Hodnota, ktorá nie je reťazec, vyhodí výnimku. |
media_model | Media::class | Eloquent model, ktorý ukladá médiá. Musí to byť model Media z balíka alebo jeho podtrieda; čokoľvek iné vyhodí InvalidConfigurationException. |
table_name | media | Databázová tabuľka modelu médií. Prázdna hodnota sa považuje za nenastavenú, takže platí media; hodnota, ktorá nie je reťazec, vyhodí výnimku. |
queue_variants_by_default | false | Predvolene generovať varianty cez frontu. |
queue_connection | null | Pripojenie fronty pre GenerateVariantsJob (MEDIA_QUEUE_CONNECTION); null = predvolené pripojenie. |
queue_name | null | Názov fronty pre GenerateVariantsJob (MEDIA_QUEUE); null = predvolená fronta. |
image_driver | imagick | imagick alebo gd (MEDIA_IMAGE_DRIVER); čokoľvek iné vyhodí výnimku. Ak je nastavený imagick, no rozšírenie chýba, použije sa gd. |
variant.quality | 75 | Predvolená kvalita JPEG/WebP (1–100). |
variant.background | #ffffff | Farba pozadia pri prevode priehľadného obrázka do JPEG. |
url_fallback_to_original | false | Keď sa getUrl() pýta na nevygenerovaný variant: vyhodiť výnimku (false) alebo vrátiť URL originálu (true). |
temporary_url_default_lifetime | 5 | Predvolené minúty (aspoň 1) pre podpísané/dočasné URL, keď platnosť nezadáte. |
stream.enabled | true | Zaregistrovať podpísanú streamovaciu routu (MEDIA_STREAM_ENABLED, číta sa ako boolean; čokoľvek iné vyhodí výnimku). |
stream.route_prefix | media | Prefix URI streamovacej routy. |
stream.middleware | ['web'] | Middleware streamovacej routy; middleware signed od Laravelu sa pripojí vždy. |
path_generator | DefaultPathGenerator::class | Štruktúra adresárov pre súbory média. Trieda, ktorá nie je PathGenerator, vyhodí výnimku pri vytvorení. |
file_namer | DefaultFileNamer::class | Pomenovanie originálov a variantov. Trieda, ktorá nie je FileNamer, vyhodí výnimku pri vytvorení. |
default_visibility | public | public alebo private pre nové médiá, ak ju skupina ani pridanie nenastaví. Čokoľvek iné vyhodí výnimku — preklep sa nikdy neuloží (čítal by sa ako public). |
max_file_size | 256 MB | Limit veľkosti pre celý balík — vynúti sa pri každom pridaní (aj sťahovaní z URL) a vychádzajú z neho odvodené pravidlá; maxFileSize() skupiny ho prepíše. null alebo prázdna hodnota (nenastavené) = bez limitu, inak aspoň 1 bajt. |
remote.headers | [] | Ďalšie HTTP hlavičky (názov ⇒ hodnota) pre addFromUrl() / addMediaFromUrl(). |
remote.timeout | 30 | HTTP timeout v sekundách (aspoň 1) pre addFromUrl() / addMediaFromUrl(). |
deduplicate | true | Zdieľať úložisko pre rovnaké bajty. |
checksum_algorithm | sha256 | Kontrolný súčet obsahu (kľúč dedup + integrita): sha256, sha384, sha512, sha512/256, sha3-256, sha3-384 alebo sha3-512 — čokoľvek iné vyhodí InvalidConfigurationException. |
verify_checksum_on_read | false | Pri čítaní prehašuje; pri nezhode vyhodí výnimku. |
placeholders.thumbhash | true | Vypočítať ThumbHash LQIP pri pridaní. |
placeholders.blurhash | true | Vypočítať Blurhash LQIP pri pridaní. |
responsive.widths | [320…1920] | Predvolený responzívny srcset rebrík (kladné celé čísla), prepísateľný pre každú skupinu. |
drafts.ttl | 1440 | Minúty (aspoň 1), kým je nenaviazaný draft mazateľný. |
url_generator | DefaultUrlGenerator::class | Stratégia tvorby URL. Má prednosť pred CDN generátorom; trieda, ktorá nie je UrlGenerator, vyhodí výnimku pri vytvorení. |
cdn.enabled | false | Prepísať verejné URL na CDN host. |
cdn.base_url | null | Základná URL CDN (MEDIA_CDN_URL), napr. https://cdn.example.com. |
cdn.cache_bust | true | Pridať ?v={updated_at} k verejným URL. |
cdn.disks | [] | Obmedziť prepisovanie na CDN na tieto disky; [] = všetky verejné disky. |
Každý prepínač typu bool sa všade, kde sa číta, vyhodnotí ako boolean: true/1/on/yes ho zapnú a false/0/off/no vypnú, takže prepínač napojený na .env v publikovanej konfigurácii sa správa presne tak, ako je napísaný. Prázdna hodnota (MEDIA_STREAM_ENABLED=) sa považuje za nenastavenú, takže platí predvolená. Akákoľvek iná hodnota (napríklad MEDIA_STREAM_ENABLED=disabled) vyhodí InvalidConfigurationException namiesto toho, aby sa potichu prečítala ako predvolená.
Rovnako prísne sa čítajú aj všetky ostatné nastavenia. Nenastavený kľúč — chýbajúci, null alebo prázdny ako MEDIA_VARIANTS_DISK= v .env — dostane predvolenú hodnotu a voliteľný kľúč (variants_disk, spojenie a názov fronty, max_file_size, cdn.base_url) zostane nenastavený; prázdne path_generator, file_namer či url_generator naviaže triedu z balíka. Celé čísla prijímajú int alebo obyčajný celočíselný reťazec (každá hodnota z env je reťazec), takže thirty či 5.5 vyhodí výnimku namiesto toho, aby sa z nich stala 0 — čo by pri remote.timeout znamenalo žiadny timeout. Výnimku vyhodí aj nereťazcový disk, fronta, názov tabuľky, prefix routy, farba pozadia či základná URL CDN, preklep v default_visibility, image_driver alebo checksum_algorithm či neplatná položka v zozname šírok, middleware, hlavičiek alebo CDN diskov. php artisan about zobrazí chybné nastavenie ako INVALID.
Prostredie (env)
Bežné prepínače sú riadené cez env, takže konfiguráciu publikujete len zriedka:
MEDIA_DISK=public
MEDIA_VARIANTS_DISK=s3
MEDIA_IMAGE_DRIVER=imagick
MEDIA_STREAM_ENABLED=true
MEDIA_CDN_URL=https://cdn.example.comPrejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.