Transmettre les paramètres aux présentateurs
Avez-vous besoin de transmettre aux présentateurs des arguments qui ne sont pas des objets (par exemple, des
informations indiquant si le présentateur fonctionne en mode de débogage, des chemins de répertoire, etc.) et qui ne peuvent
donc pas être transmis automatiquement par le câblage automatique ? La solution consiste à les encapsuler dans un objet
Settings
.
Le service Settings
est un moyen très simple et utile de fournir aux présentateurs des informations sur une
application en cours d'exécution. Sa forme spécifique dépend entièrement de vos besoins particuliers. Exemple :
namespace App;
class Settings
{
public function __construct(
// depuis PHP 8.1 il est possible de spécifier readonly
public bool $debugMode,
public string $appDir,
// et ainsi de suite
) {}
}
Exemple d'inscription à la configuration :
services:
- App\Settings(
%debugMode%,
%appDir%,
)
Lorsque le diffuseur a besoin des informations fournies par ce service, il lui suffit de les demander dans le constructeur :
class MyPresenter extends Nette\Application\UI\Presenter
{
public function __construct(
private App\Settings $settings,
) {}
public function renderDefault()
{
if ($this->settings->debugMode) {
// ...
}
}
}