Sistem tipov
Sistem tipov je glavna stvar pri razvoju robustnih aplikacij. Latte prinaša podporo za tipe v predloge. Vedeti, kakšen tip podatkov ali predmetov je vsaka spremenljivka, omogoča
- IDE pravilno samodejno dopolnjevanje (glejte integracijo in vtičnike)
- statična analiza za odkrivanje napak
Dve točki, ki bistveno izboljšata kakovost in udobje razvoja.
Deklarirane vrste so informativne in jih Latte trenutno ne preverja.
Kako začeti uporabljati tipe? Ustvarite razred predloge, npr. CatalogTemplateParameters
, ki predstavlja
posredovane parametre:
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 oznako {templateType}
s polnim imenom razreda (vključno z imenskim
prostorom). To določa, da sta v predlogi spremenljivki $langs
in $products
, vključno z ustreznimi
tipi. Tipe lokalnih spremenljivk lahko določite tudi z uporabo oznak {var}
,
{varType}
in {define}
.
Zdaj lahko IDE pravilno samodejno dopolni spremenljivke.
Kako shraniti delo? Kako čim lažje napisati razred predloge ali oznake {varType}
? Pridobite jih generirane. Prav
to počne par oznak {templatePrint}
in {varPrint}
. Če eno od teh oznak namestite v predlogo, se
namesto običajnega prikazovanja prikaže koda razreda ali predloge. Nato preprosto izberite in kopirajte kodo v svoj
projekt.
{templateType}
Vrste parametrov, ki se posredujejo predlogi, so deklarirane z uporabo razreda:
{templateType MyApp\CatalogTemplateParameters}
{varType}
Kako deklarirati vrste spremenljivk? V ta namen uporabite oznako {varType}
za obstoječo spremenljivko ali {var}
:
{varType Nette\Security\User $user}
{varType string $lang}
{templatePrint}
Ta razred lahko ustvarite tudi z uporabo oznake {templatePrint}
. Če jo postavite na začetek predloge, se
namesto običajne predloge prikaže koda razreda. Nato preprosto izberite in kopirajte kodo v svoj projekt.
{varPrint}
Oznaka {varPrint}
vam prihrani čas. Če jo vstavite v predlogo, se namesto običajnega prikazovanja prikaže
seznam oznak {varType}
. Nato preprosto izberite in kopirajte kodo v predlogo.
Oznaka {varPrint}
navaja lokalne spremenljivke, ki niso parametri predloge. Če želite seznam vseh spremenljivk,
uporabite {varPrint all}
.