22
22
* @property-read Nette\Application\Request $request
23
23
* @property-read string $action
24
24
* @property string $view
25
- * @property string|bool $layout
25
+ * @property string|null $layout
26
26
* @property-read \stdClass $payload
27
27
* @property-read Nette\DI\Container $context
28
28
* @property-read Nette\Http\Session $session
@@ -84,8 +84,8 @@ abstract class Presenter extends Control implements Application\IPresenter
84
84
/** @var string */
85
85
private $ view ;
86
86
87
- /** @var string|bool */
88
- private $ layout ;
87
+ /** @var string|null */
88
+ private $ layout = ' layout ' ;
89
89
90
90
/** @var \stdClass */
91
91
private $ payload ;
@@ -426,22 +426,25 @@ public function setView(string $view)
426
426
427
427
/**
428
428
* Returns current layout name.
429
- * @return string|bool
430
429
*/
431
- final public function getLayout ()
430
+ final public function getLayout (): ? string
432
431
{
433
432
return $ this ->layout ;
434
433
}
435
434
436
435
437
436
/**
438
437
* Changes or disables layout.
439
- * @param string|bool $layout
438
+ * @param string|null $layout
440
439
* @return static
441
440
*/
442
441
public function setLayout ($ layout )
443
442
{
444
- $ this ->layout = $ layout === false ? false : (string ) $ layout ;
443
+ if (!is_string ($ layout ) && $ layout !== null ) {
444
+ trigger_error (__METHOD__ . '() parameter $layout accepts only string|null, passing other values is deprecated. ' , E_USER_DEPRECATED );
445
+ }
446
+
447
+ $ this ->layout = $ layout === false || $ layout === null ? null : (string ) $ layout ;
445
448
return $ this ;
446
449
}
447
450
@@ -478,7 +481,7 @@ public function sendTemplate(): void
478
481
*/
479
482
public function findLayoutTemplateFile (): ?string
480
483
{
481
- if ($ this ->layout === false ) {
484
+ if ($ this ->layout === null ) {
482
485
return null ;
483
486
}
484
487
$ files = $ this ->formatLayoutTemplateFiles ();
@@ -488,7 +491,7 @@ public function findLayoutTemplateFile(): ?string
488
491
}
489
492
}
490
493
491
- if ($ this ->layout ) {
494
+ if ($ this ->layout !== null ) {
492
495
$ file = strtr (reset ($ files ), '/ ' , DIRECTORY_SEPARATOR );
493
496
throw new Nette \FileNotFoundException ("Layout not found. Missing template ' $ file'. " );
494
497
}
@@ -501,7 +504,7 @@ public function findLayoutTemplateFile(): ?string
501
504
*/
502
505
public function formatLayoutTemplateFiles (): array
503
506
{
504
- if (preg_match ('#/| \\\\# ' , ( string ) $ this ->layout )) {
507
+ if ($ this -> layout !== null && preg_match ('#/| \\\\# ' , $ this ->layout )) {
505
508
return [$ this ->layout ];
506
509
}
507
510
[$ module , $ presenter ] = Helpers::splitName ($ this ->getName ());
0 commit comments