NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Package Toolkit for Laravel

Väzby a observery

register() aj boot() zostávajú prepísateľné pre vlastné zapojenie — prepíšte ich a najprv zavolajte rodičovskú metódu. Najčastejšie zapojenie riadené konfiguráciou pokrývajú dva pomocníci:

public function register(): void
{
    parent::register();

    // Bind a contract to the class named in config, with a default. Absent/null/blank → the
    // default; a value that isn't an existing class implementing the contract (false, a
    // typo'd class name) throws InvalidConfigurationException when the contract resolves.
    $this->bindFromConfig(CommentRepository::class, 'comments.repository', EloquentCommentRepository::class);
}

public function boot(): void
{
    parent::boot();

    // Attach an observer to the model named in config.
    $this->observesModel('comments.models.comment', CommentObserver::class);
}

bindFromConfig()

bindFromConfig(string $contract, string $configKey, string $default) naviaže kontrakt na closure, ktorá pri každom resolvovaní prečíta konfiguračný kľúč a danú triedu vytvorí cez kontajner. Chýbajúci kľúč, null alebo prázdna hodnota ('' či len medzery) naviaže predvolenú triedu. Akákoľvek iná hodnota musí byť názvom existujúcej triedy, ktorá je $contract — false, preklep v názve triedy či trieda nesprávneho typu vyhodí pri resolvovaní kontraktu InvalidConfigurationException („Configuration value [comments.repository] must be a class-string of [{contract}], [{given}] given.“), nikdy sa potichu nepoužije predvolená trieda. Volajte ju z register() po parent::register(), aby už bola konfigurácia balíka zlúčená.

observesModel()

observesModel(string $configKey, string $observer) zistí triedu modelu z konfiguračného kľúča a zaregistruje na ňu observer. Trieda sa overí cez ModelResolver bez predvolenej hodnoty, takže kľúč je povinný: chýbajúci alebo prázdny kľúč či kľúč, ktorý neurčuje Eloquent model, vyhodí InvalidConfigurationException už pri boote namiesto tichého zlyhania. Volajte ju z boot().

Konfigurácia v pozadí

Oba kľúče sú v konfigurácii balíka, takže ich hostiteľ vymení bez zásahu do balíka:

// config/comments.php
return [
    'repository' => EloquentCommentRepository::class,

    'models' => [
        'comment' => Comment::class,
    ],
];

// A host swaps either one without touching the package:
// 'repository' => App\Comments\CachedCommentRepository::class,
// 'models' => ['comment' => App\Models\Comment::class],

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 kryptomien

Odoslaní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.