-
-
Notifications
You must be signed in to change notification settings - Fork 282
/
passing-settings-to-presenters.texy
51 lines (41 loc) · 1.4 KB
/
passing-settings-to-presenters.texy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Transmettre les paramètres aux présentateurs
********************************************
.[perex]
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 :
```php
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 :
```neon
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 :
```php
class MyPresenter extends Nette\Application\UI\Presenter
{
public function __construct(
private App\Settings $settings,
) {}
public function renderDefault()
{
if ($this->settings->debugMode) {
// ...
}
}
}
```
{{sitename: Meilleures pratiques}}