Beállítások átadása presentereknek
Szüksége van arra, hogy olyan argumentumokat adjon át a presentereknek, amelyek nem objektumok (pl.
információ arról, hogy debug módban fut-e, könyvtárak elérési útjai stb.), és ezért nem adhatók át automatikusan
autowiring segítségével? A megoldás az, hogy becsomagolja őket egy Settings
objektumba.
A Settings
szolgáltatás egy nagyon egyszerű, mégis hasznos módja annak, hogy információkat szolgáltassunk
a futó alkalmazásról a presentereknek. Konkrét formája kizárólag az Ön igényeitől függ. Példa:
namespace App;
class Settings
{
public function __construct(
// PHP 8.1-től kezdve megadható a readonly
public bool $debugMode,
public string $appDir,
// és így tovább
) {}
}
Példa a konfigurációba történő regisztrálásra:
services:
- App\Settings(
%debugMode%,
%appDir%,
)
Amikor egy presenternek szüksége van az e szolgáltatás által nyújtott információkra, egyszerűen elkéri a konstruktorban:
class MyPresenter extends Nette\Application\UI\Presenter
{
public function __construct(
private App\Settings $settings,
) {}
public function renderDefault()
{
if ($this->settings->debugMode) {
// ...
}
}
}