Všetky balíky
Advertisements for Laravel
Konfigurácia
Balík funguje bez akejkoľvek konfigurácie. Publikovaný config/advertisements.php bez úvodných komentárov:
return [
// Eloquent models the package resolves — override with your own subclasses.
'model' => RoundlyConsulting\Advertisements\Models\Advertisement::class,
// Key type of the polymorphic author column: 'bigint', 'uuid' or 'ulid'.
'key_type' => env('ADVERTISEMENTS_KEY_TYPE', 'bigint'),
'placement_model' => RoundlyConsulting\Advertisements\Models\Placement::class,
'category_model' => RoundlyConsulting\Advertisements\Models\Category::class,
'event_model' => RoundlyConsulting\Advertisements\Models\AdvertisementEvent::class,
// Impression / click recording — inline, or buffered to the queue.
'tracking' => [
'buffered' => env('ADVERTISEMENTS_TRACKING_BUFFERED', false),
'queue' => env('ADVERTISEMENTS_TRACKING_QUEUE'),
'connection' => env('ADVERTISEMENTS_TRACKING_CONNECTION'),
],
// Locale used when the active locale has no translation for an attribute.
'fallback_locale' => env('ADVERTISEMENTS_FALLBACK_LOCALE', config('app.fallback_locale', 'en')),
// Slugs (sluggable): keep retired advertisement slugs and 301 them to the current one.
'slugs' => [
'history' => env('ADVERTISEMENTS_SLUG_HISTORY', false),
],
// Currency used by AdvertisementData::fromMinor() / ::fromDecimal() when none is given.
'default_currency' => env('ADVERTISEMENTS_CURRENCY', 'EUR'),
// Register the global Advertisements facade alias.
'register_facade_alias' => env('ADVERTISEMENTS_FACADE_ALIAS', true),
// Visual creatives (media-library): one single-file bucket per placement named
// "{creative_bucket_prefix}:{placement-slug}" plus a generic "{fallback_bucket}".
'media' => [
'creative_bucket_prefix' => 'creative',
'fallback_bucket' => 'creative',
'disk' => env('ADVERTISEMENTS_MEDIA_DISK'), // null = media-library default
'responsive_widths' => null, // null = media-library default ladder
'display_variant' => 'display',
'use_fallback_bucket' => true,
'text_ad_view' => 'advertisements::text-ad',
],
// Geo-targeting & geo reporting (geolocation).
'geo' => [
'targeting_enabled' => env('ADVERTISEMENTS_GEO_TARGETING', true),
'untargeted_match' => true, // ads with no targeting match every viewer
'match_when_unknown' => 'untargeted_only', // unknown viewer / unknown fact: 'untargeted_only' | 'all'
'stamp_events' => env('ADVERTISEMENTS_GEO_STAMP', true),
],
];Všetky kľúče
| Kľúč | Predvolené | Env | Účel |
|---|---|---|---|
model | Advertisement::class | — | Model reklamy: trieda z balíka alebo jej podtrieda — čokoľvek iné vyhodí InvalidConfigurationException. |
key_type | bigint | ADVERTISEMENTS_KEY_TYPE | Typ kľúča polymorfného stĺpca autora: bigint, uuid alebo ulid (iná hodnota vyhodí InvalidConfigurationException). Číta sa pri migrácii; všetky modely autorov ho musia mať rovnaký. |
placement_model | Placement::class | — | Model umiestnenia (zóny). |
category_model | Category::class | — | Model kategórie. |
event_model | AdvertisementEvent::class | — | Model udalosti zobrazenia alebo kliku. |
tracking.buffered | false | ADVERTISEMENTS_TRACKING_BUFFERED | Zápis zobrazení a klikov odošle do fronty namiesto priameho zápisu. |
tracking.queue | null | ADVERTISEMENTS_TRACKING_QUEUE | Fronta pre odložený zápis (null alebo prázdna = predvolená). |
tracking.connection | null | ADVERTISEMENTS_TRACKING_CONNECTION | Spojenie fronty pre odložený zápis (null alebo prázdne = predvolené). |
fallback_locale | app.fallback_locale | ADVERTISEMENTS_FALLBACK_LOCALE | Záložný jazyk prekladov a route bindingu a jazyk, z ktorého sa generujú slugy umiestnení a kategórií. Nenastavená hodnota (null alebo prázdna) znamená žiadny záložný jazyk prekladov a slugy použijú en. |
slugs.history | false | ADVERTISEMENTS_SLUG_HISTORY | Pamätá si staré slugy reklám a presmeruje ich (301) na aktuálny. Vyžaduje migráciu balíka sluggable. |
default_currency | EUR | ADVERTISEMENTS_CURRENCY | Mena pre AdvertisementData::fromMinor() / fromDecimal(), ak nie je zadaná; musí byť registrovaná v money-for-laravel. |
register_facade_alias | true | ADVERTISEMENTS_FACADE_ALIAS | Zaregistruje globálny alias Advertisements; false ho vypne. |
media.creative_bucket_prefix | creative | — | Prefix názvu skupiny pre umiestnenie ({prefix}:{slug}). |
media.fallback_bucket | creative | — | Všeobecná skupina kreatív bez rozmerov, skúša sa pred textovou reklamou. |
media.disk | null | ADVERTISEMENTS_MEDIA_DISK | Disk pre kreatívy (null alebo prázdny = predvolený disk media-library). |
media.responsive_widths | null | — | Rebrík responzívnych šírok (null = predvolený v media-library). Každá šírka musí byť kladné celé číslo; chybná či prázdna položka vyhodí výnimku, nevynechá sa. |
media.display_variant | display | — | Názov variantu prispôsobeného rozmerom umiestnenia. |
media.use_fallback_bucket | true | — | Pred textovou reklamou skúsi všeobecnú skupinu kreatív. |
media.text_ad_view | advertisements::text-ad | — | Blade view, ktorý vykreslí záložnú textovú reklamu. |
geo.targeting_enabled | true | ADVERTISEMENTS_GEO_TARGETING | Uplatní geografické cielenie v targetedIn(). |
geo.untargeted_match | true | — | Reklamy bez cielenia sa zobrazia každému divákovi. |
geo.match_when_unknown | untargeted_only | — | Čo dostane neznámy divák — untargeted_only alebo all — a či pravidlo, pre ktoré divákovi chýba krajina alebo súradnice, neplatí alebo platí. Iná hodnota (ALL, everything) vyhodí InvalidConfigurationException so zoznamom oboch. |
geo.stamp_events | true | ADVERTISEMENTS_GEO_STAMP | K zaznamenaným udalostiam uloží krajinu diváka (+ región, mesto, súradnice). |
Prostredie (env)
Jedenásť kľúčov sa riadi cez env, takže konfiguráciu zvyčajne vôbec nemusíte publikovať:
ADVERTISEMENTS_CURRENCY=EUR
ADVERTISEMENTS_FALLBACK_LOCALE=en
ADVERTISEMENTS_KEY_TYPE=bigint
ADVERTISEMENTS_SLUG_HISTORY=true
ADVERTISEMENTS_TRACKING_BUFFERED=true
ADVERTISEMENTS_TRACKING_CONNECTION=redis
ADVERTISEMENTS_TRACKING_QUEUE=tracking
ADVERTISEMENTS_FACADE_ALIAS=true
ADVERTISEMENTS_MEDIA_DISK=s3
ADVERTISEMENTS_GEO_TARGETING=true
ADVERTISEMENTS_GEO_STAMP=truePoznámky
- default_currency musí byť registrovaná v registri mien money-for-laravel — predvolene akýkoľvek kód ISO 4217.
- key_type číta iba migrácia: zmeňte ho pred migráciou, nie po nej.
- Kľúče modelov musia odkazovať na model z balíka alebo jeho podtriedu; čokoľvek iné vyhodí výnimku — pozrite Vlastné modely.
- Každý kľúč typu bool prijme true/false, 1/0, on/off alebo yes/no (z .env aj z publikovaného súboru). Čokoľvek iné vyhodí InvalidConfigurationException s názvom kľúča, takže preklep sa nikdy potichu nezmení na predvolenú hodnotu.
- Ostatné kľúče sú rovnako prísne: nenastavený kľúč — vynechaný, null alebo prázdny ('' či len medzery, napríklad riadok ADVERTISEMENTS_FALLBACK_LOCALE=) — dostane predvolenú hodnotu; hodnota nesprávneho tvaru vyhodí InvalidConfigurationException s názvom kľúča. Mena, jazyk, názvy skupín, variant zobrazenia, view textovej reklamy, disk a nastavenia fronty musia byť reťazce a každá responzívna šírka skutočná šírka (prázdna položka v zozname vyhodí výnimku). php artisan about zobrazí chybné nastavenie ako INVALID.
- Pri vypnutom register_facade_alias importujte RoundlyConsulting\Advertisements\Facades\Advertisements výslovne; samotná fasáda funguje ďalej.
Prejavte 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.