Tip Sistem

Tip sistemi, sağlam uygulamaların geliştirilmesi için ana unsurdur. Latte şablonlara tip desteği getiriyor. Her değişkenin hangi veri veya nesne türünde olduğunu bilmek

  • IDE'nin otomatik tamamlamayı doğru şekilde yapması (bkz. entegrasyon ve eklentiler)
  • hataları tespit etmek için statik analiz

Gelişimin kalitesini ve rahatlığını önemli ölçüde artıran iki nokta.

Beyan edilen tipler bilgilendiricidir ve Latte şu anda bunları kontrol etmemektedir.

Türleri kullanmaya nasıl başlanır? İletilen parametreleri temsil eden bir şablon sınıf oluşturun, örneğin CatalogTemplateParameters:

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(),
));

Ardından, şablonun başına tam sınıf adını (ad alanı dahil) içeren {templateType} etiketini ekleyin. Bu, şablonda ilgili türler de dahil olmak üzere $langs ve $products değişkenleri olduğunu tanımlar. Yerel değişkenlerin türlerini etiketleri kullanarak da belirtebilirsiniz {var}, {varType} ve {define}.

Artık IDE doğru şekilde otomatik tamamlama yapabilir.

İş nasıl kaydedilir? Bir şablon sınıfı veya {varType} etiketleri mümkün olduğunca kolay nasıl yazılır? Bunların oluşturulmasını sağlayın. {templatePrint} ve {varPrint} etiket çiftleri tam olarak bunu yapar. Bu etiketlerden birini bir şablona yerleştirirseniz, normal oluşturma yerine sınıfın veya şablonun kodu görüntülenir. Daha sonra kodu seçip projenize kopyalamanız yeterlidir.

{templateType}

Şablona aktarılan parametrelerin türleri class kullanılarak bildirilir:

{templateType MyApp\CatalogTemplateParameters}

{varType}

Değişken türleri nasıl bildirilir? Bu amaçla mevcut bir değişken için {varType} etiketini kullanın veya {var}:

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

{templatePrint}

Bu sınıfı {templatePrint} etiketini kullanarak da oluşturabilirsiniz. Bunu şablonun başına yerleştirirseniz, normal şablon yerine sınıfın kodu görüntülenir. Daha sonra kodu seçip projenize kopyalamanız yeterlidir.

{varPrint}

{varPrint} etiketi size zaman kazandırır. Bir şablona yerleştirirseniz, normal oluşturma yerine {varType} etiketlerinin listesi görüntülenir. Ardından kodu seçip şablonunuza kopyalamanız yeterlidir.

{varPrint} şablon parametreleri olmayan yerel değişkenleri listeler. Tüm değişkenleri listelemek istiyorsanız, {varPrint all} adresini kullanın.

versiyon: 3.0