Symfony Framework

Symfony Ortak Şablon Kullanımı

Symfony'de, tüm şablonların ortak olarak kullanacağı başlık ve alt bilgileri içeren ve temel bölümleri diğer şablonlar tarafından değiştirilebilen 'base.html.twig' adlı bir şablon kullanılmaktadır.

1. Öncelikle, C:\wamp\www\mysym\app\Resources\views dizini altında bulunan base.html.twig dosyasının içeriğini, açtığınız yeni bir dosya içine kopyalayın ve dosyayı main.html.twig adı ile kaydedin.

{# app/Resources/views/main.html.twig #}
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>{% block title %}Symfony Uygulaması{% endblock %}</title>
        {% block stylesheets %}{% endblock %}
        <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
    </head>
    <body>
        {% block body %}{% endblock %}
        {% block javascripts %}{% endblock %}
    </body>
</html>

2. Daha önce, myview dizininin altında oluşturduğunuz index.html.twig adlı dosyayı aşağıdaki hale getirerek kaydedin:

{# app/Resources/views/myview/index.html.twig #}
{% extends 'main.html.twig' %}
{% block body %}
<h1>Ana sayfa içeriği</h1>
{% endblock %}

Yukarıda, index.html.twig dosyasındaki extends komutu 'main.html.twig' içindeki tüm değerlerin index.html.twig dosyası içinde kullanılmasını sağlar. {% block body %} ve {% endblock %} ifadeleri arasında yer alan değerlerin ise, 'main.html.twig' dosyasındaki karşılık gelen bölümün yerini almasını sağlar.

3. Tarayıcınızın adres çubuğundan http://localhost:8000 ifadesini girerek uygulamaya erişim sağladığınızda, karşınıza aşağıdakine benzer bir ekran görüntüsü gelecektir:

Böylece, uygulamamız main.html.twig içinde tanımlı Title değerini index.html.twig içinde kullanmış oldu. Daha sonra, aynı yöntemi kullanarak farklı başlık ve alt bilgilerini de farklı dosyalarda kullanma işlemlerini gerçekleştireceğiz.