{templatePrint} vyhazuje chybu Nette\InvalidStateException

m.brecher
Generous Backer | 700
+
0
-

Ahoj,

zkouším si vygenerovat automaticky typovou třídu pro šablonu latte pomocí značky {templatePrint}:

default.latte:

{templatePrint}

Vyhazuje mě to chybu:

Nette\InvalidStateException
Cannot add property 'presenter', because it already exists.

provedl jsem aktualizaci nette composer update, ale nepomohlo to.

Mám tyto verze:

latte/latte           v2.11.5
nette/application     v3.1.7

Nemáte někdo nějaké zkušenosti, kde by mohla být chyba?

Díky za komentáře.

David Grudl
Nette Core | 8077
+
0
-

Napadá mě, že by to mohlo způsobovat nette/php-generator v4, můžeš to schválně zkusit s V3?

m.brecher
Generous Backer | 700
+
0
-

@DavidGrudl Ahoj, downgradoval jsem na nette/php-generator 3.5.4:

composer:

.......
  - Downloading nette/php-generator (v3.5.4)
  - Downgrading nette/php-generator (v4.0.2 => v3.5.4): Extracting archive
.......

a ve stejném kódu jako včera, kdy {templatePrint} nefungoval nyní funguje a vypisuje typovou třídu pro šablonu:

Native types:

namespace App\Admin\Presenters;

class NodeTemplate extends \Nette\Bridges\ApplicationLatte\Template
{
	use \Nette\SmartObject;

	public NodePresenter $presenter;
	public \Nette\Security\User $user;
	public string $baseUrl;
	public string $basePath;
	public array $flashes;
	public string $appDir;
	public \App\Utils\Utils $utils;
	public bool $robotIndex;
	public string $_title;
	public string $_title2;
	public string $_caption;
	public string $_text;
	public string $_slug;
	public string $langUrl;
	public \Nette\Database\Table\Selection $nodes;
	public \Nette\Database\Table\ActiveRow $rootCategory;
}

a

phpDoc types:

namespace App\Admin\Presenters;

class NodeTemplate extends \Nette\Bridges\ApplicationLatte\Template
{
	use \Nette\SmartObject;

	/** @var NodePresenter */
	public $presenter;

	/** @var \Nette\Security\User */
	public $user;

	/** @var string */
	public $baseUrl;

	/** @var string */
	public $basePath;

	/** @var array */
	public $flashes;

	/** @var string */
	public $appDir;

	/** @var \App\Utils\Utils */
	public $utils;

	/** @var bool */
	public $robotIndex;

	/** @var string */
	public $_title;

	/** @var string */
	public $_title2;

	/** @var string */
	public $_caption;

	/** @var string */
	public $_text;

	/** @var string */
	public $_slug;

	/** @var string */
	public $langUrl;

	/** @var \Nette\Database\Table\Selection */
	public $nodes;

	/** @var \Nette\Database\Table\ActiveRow */
	public $rootCategory;
}