Beállítások átadása az előadóknak
Szüksége van arra, hogy olyan argumentumokat adjon át a prezentereknek, amelyek nem objektumok (pl.
információ arról, hogy debug üzemmódban fut-e, könyvtárak elérési útvonalai stb.), és így nem adhatók át
automatikusan az autowiring által? A megoldás az, hogy ezeket egy Settings
objektumba kapszulázza.
A Settings
szolgáltatás egy nagyon egyszerű, mégis hasznos módja annak, hogy egy futó alkalmazásról
információt adjunk a bemutatóknak. Konkrét formája teljes mértékben az Ön konkrét igényeitől függ. Példa:
namespace App;
class Settings
{
public function __construct(
// a PHP 8.1 óta lehetőség van readonly megadására.
public bool $debugMode,
public string $appDir,
// és így tovább
) {}
}
Példa a konfigurációhoz történő regisztrációra:
services:
- App\Settings(
%debugMode%,
%appDir%,
)
Ha az előadónak szüksége van az e szolgáltatás által biztosított információkra, egyszerűen elkéri azokat a konstruktorban:
class MyPresenter extends Nette\Application\UI\Presenter
{
public function __construct(
private App\Settings $settings,
) {}
public function renderDefault()
{
if ($this->settings->debugMode) {
// ...
}
}
}