Değişkenleri Şablonlar Arasında Geçirme
Bu kılavuzda, {include}
, {import}
, {embed}
, {layout}
,
{sandbox}
ve diğerleri gibi çeşitli etiketler kullanılarak Latte'deki şablonlar arasında değişkenlerin nasıl
aktarıldığı açıklanmaktadır. Ayrıca {block}
ve {define}
etiketlerindeki değişkenlerle nasıl
çalışacağınızı ve {parameters}
etiketinin amacını öğreneceksiniz.
Değişken Türleri
Latte'deki değişkenler, nasıl ve nerede tanımlandıklarına bağlı olarak üç kategoriye ayrılabilir:
Giriş Değişkenleri şablona dışarıdan, örneğin bir PHP betiğinden veya {include}
gibi bir etiket
kullanılarak aktarılan değişkenlerdir.
Çevreleyen Değişkenler belirli bir etiketin bulunduğu yerde var olan değişkenlerdir. Bunlar, tüm girdi
değişkenlerini ve {var}
, {default}
veya bir döngü içinde {foreach}
gibi etiketler
kullanılarak oluşturulan diğer değişkenleri içerir.
Açık Değişkenler doğrudan bir etiket içinde belirtilen ve hedef şablona gönderilen değişkenlerdir.
{block}
{block}
etiketi, devralınan şablonlarda özelleştirilebilen veya genişletilebilen yeniden kullanılabilir kod
bloklarını tanımlamak için kullanılır. Bloktan önce tanımlanan çevreleyen değişkenler blok içinde kullanılabilir,
ancak değişkenlerdeki herhangi bir değişiklik yalnızca bu blok içinde yansıtılır.
{define}
{define}
etiketi, yalnızca {include}
kullanılarak çağrıldığında işlenen bloklar oluşturmak
için kullanılır. Bu blokların içinde bulunan değişkenler, tanımda parametrelerin belirtilip belirtilmediğine bağlıdır.
Parametreler belirtilmişse, yalnızca bu parametrelere erişilebilir. Belirtilmemişse, blokların tanımlandığı şablonun
tüm girdi değişkenlerine erişilebilir.
{parameters}
{parameters}
etiketi, şablonun başında beklenen girdi değişkenlerini açıkça beyan etmek için
kullanılır. Bu şekilde, beklenen değişkenleri ve veri türlerini kolayca belgeleyebilirsiniz. Varsayılan değerleri
tanımlamak da mümkündür.
{include file}
{include file}
etiketi bir şablonun tamamını eklemek için kullanılır. Bu şablona hem etiketin
kullanıldığı şablonun girdi değişkenleri hem de açıkça tanımlanmış değişkenler aktarılır. Ancak, hedef şablon
{parameters}
adresini kullanarak kapsamı sınırlayabilir.
{include block}
Aynı şablonda tanımlanmış bir blok eklenirken, tüm çevreleyen ve açıkça tanımlanmış değişkenler buna aktarılır:
Bu örnekte, $name
ve $age
değişkenleri blockName
bloğuna aktarılır. Aynı
davranış {include parent}
için de geçerlidir.
Başka bir şablondan bir blok eklerken, yalnızca giriş değişkenleri ve açıkça tanımlanmış değişkenler aktarılır. Çevreleyen değişkenler otomatik olarak kullanılamaz.
{layout}
veya {extends}
Bu etiketler, alt şablonun girdi değişkenlerinin ve bloklardan önce kodda oluşturulan değişkenlerin geçirildiği bir düzen tanımlar:
Şablon layout.latte
:
{embed}
{embed}
etiketi {include}
etiketine benzer ancak blokların şablona gömülmesine izin verir.
{include}
etiketinden farklı olarak, yalnızca açıkça bildirilen değişkenler aktarılır:
Bu örnekte, menu.latte
şablonunun yalnızca $items
değişkenine erişimi vardır.
Tersine, {embed}
içindeki bloklar çevredeki tüm değişkenlere erişebilir:
{import}
{import}
etiketi diğer şablonlardan blok yüklemek için kullanılır. Hem girdi hem de açıkça bildirilen
değişkenler içe aktarılan bloklara aktarılır.
{sandbox}
{sandbox}
etiketi, şablonu güvenli işleme için izole eder. Değişkenler yalnızca açık olarak
aktarılır.