Tipski sistem

Tipski sistem je ključen za razvoj robustnih aplikacij. Latte prinaša podporo tipov tudi v predloge. Zahvaljujoč temu, da vemo, kateri podatkovni ali objektni tip je v vsaki spremenljivki, lahko

  • IDE pravilno predlaga (glej integracija)
  • statična analiza odkrije napake

Oboje bistveno povečuje kakovost in udobje razvoja.

Deklarirani tipi so informativni in Latte jih trenutno ne preverja.

Kako začeti uporabljati tipe? Ustvarite si razred predloge, npr. CatalogTemplateParameters, ki predstavlja posredovane parametre, njihove tipe in morebiti tudi privzete vrednosti:

class CatalogTemplateParameters
{
	public function __construct(
		public string $langs,
		/** @var ProductEntity[] */
		public array $products,
		public Address $address,
	) {}
}

$latte->render('template.latte', new CatalogTemplateParameters(
	address: $userAddress,
	lang: $settings->getLanguage(),
	products: $entityManager->getRepository('Product')->findAll(),
));

Nato na začetek predloge vstavite značko {templateType} s polnim imenom razreda (vključno z imenskim prostorom). To definira, da so v predlogi spremenljivke $langs in $products vključno z ustreznimi tipi. Tipe lokalnih spremenljivk lahko navedete s pomočjo značk {var}, {varType}, {define}.

Od takrat vam lahko IDE pravilno predlaga.

Kako si prihraniti delo? Kako čim lažje napisati razred s parametri predloge ali značke {varType}? Pustite, da se generirajo. Za to obstaja par značk {templatePrint} in {varPrint}. Če jih postavite v predlogo, se namesto običajnega izrisovanja prikaže predlog kode razreda oz. seznam značk {varType}. Kodo potem samo z enim klikom označite in kopirate v projekt.

{templateType}

Tipe parametrov, posredovanih v predlogo, deklariramo s pomočjo razreda:

{templateType MyApp\CatalogTemplateParameters}

{varType}

Kako deklarirati tipe spremenljivk? Za to služijo značke {varType} za obstoječe spremenljivke, ali {var}:

{varType Nette\Security\User $user}
{varType string $lang}

{templatePrint}

Razred si lahko tudi pustite generirati s pomočjo značke {templatePrint}. Če jo postavite na začetek predloge, se namesto običajnega izrisovanja prikaže predlog razreda. Kodo potem samo z enim klikom označite in kopirate v projekt.

{varPrint}

Značka {varPrint} vam bo prihranila čas s pisanjem. Če jo postavite v predlogo, se namesto običajnega izrisovanja prikaže predlog značk {varType} za lokalne spremenljivke. Kodo potem samo z enim klikom označite in kopirate v predlogo.

Samo {varPrint} izpisuje le lokalne spremenljivke, ki niso parametri predloge. Če želite izpisati vse spremenljivke, uporabite {varPrint all}.

različica: 3.0