Posredovanje nastavitev predstavnikom
Ali morate predstavnikom posredovati argumente, ki niso predmeti (npr. informacije o tem, ali deluje v načinu
za odpravljanje napak, poti do imenikov itd.) in jih zato ni mogoče samodejno posredovati s samodejnim povezovanjem? Rešitev
je, da jih zapakirate v objekt Settings
.
Storitev Settings
je zelo enostaven in hkrati uporaben način za zagotavljanje informacij o delujoči aplikaciji
predavateljem. Njena posebna oblika je v celoti odvisna od vaših posebnih potreb. Primer:
namespace App;
class Settings
{
public function __construct(
// od PHP 8.1 je mogoče določiti samo za branje
public bool $debugMode,
public string $appDir,
// in tako naprej
) {}
}
Primer registracije v konfiguracijo:
services:
- App\Settings(
%debugMode%,
%appDir%,
)
Ko voditelj potrebuje informacije, ki jih zagotavlja ta storitev, jih preprosto zahteva v konstruktorju:
class MyPresenter extends Nette\Application\UI\Presenter
{
public function __construct(
private App\Settings $settings,
) {}
public function renderDefault()
{
if ($this->settings->debugMode) {
// ...
}
}
}