Symfony Framework’ü İçinde Twig’de Kullanabileceğimiz Fonksiyonlar Oluşturmak

By | 5 January 2018

Bu yazıda Symfony tarafında fonksiyon oluşturup, bunu Twig içinde her yerde kullanabileceğimiz yapıyı oluşturacağız. Proje bundle’ı içinde önce Twig dizini oluşturup, onun içine de Extension adında bir dizin oluşturuyoruz. Twig içinde hali hazırda JsonDecode fonksiyonu olmadığı için, aldığı değeri JsonDecode fonksiyonuna verip, değeri dönen bir fonksiyon oluşturacağız. Bunun için Extension dizini altına aşağıdaki gibi JsonDecode sınıfı oluşturuyoruz.

Kodları da aşağıdaki gibi düzenliyoruz;

namespace AppBundle\Twig\Extension;

class JsonDecode extends \Twig_Extension
{
    public function getName()
    {
        return 'twig.json_decode';
    }
    public function getFilters()
    {
        return array(
            'json_decode'   => new \Twig_Filter_Method($this, 'jsonDecode')
        );
    }
    public function jsonDecode($string)
    {
        return json_decode($string);
    }
}

Ardından services.yml dosyasına aşağıdaki satırları ekliyoruz ve bu sınıfı bir servis olarak atıyoruz.

twig.json_decode
    AppBundle\Twig\Extension\JsonDecode
    tags:
        { twig.extension }

Kodlarımız bu kadar yeterli ve kullanım için aşağıdakilerden birini seçebilirsiniz;

{{ data | json_decode() }}

{{ json_decode(data) }}

Anlatacaklarım şimdilik bu kadar, bir dahaki yazıda görüşmek üzere… 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

*