Herkese merhaba!

Uzun yıllardır bol miktarda kişisel zaman ve enerji harcayarak bilgimizi hepinizle paylaşıyoruz. Ancak şu andan itibaren bu blogu çalışır durumda tutabilmek için yardımınıza ihtiyacımız var. Yapmanız gereken tek şey, sitedeki reklamlardan birine tıklamak olacaktır, aksi takdirde hosting vb. masraflar nedeniyle maalesef yayından kaldırılacaktır. Teşekkürler.

Aşağıdaki twig extension örneğinde, verilen değeri şifreleyeceğiz. Bu örnekteki extension parametre kabul etmiyor.


Extension Class


# sport/src/Football/FrontendBundle/Twig/EncryptExtension.php
namespace Football\FrontendBundle\Twig;

use Twig_Extension;
use Twig_SimpleFilter;

class EncryptExtension extends Twig_Extension
{
public function getName()
{
return 'encrypt_extension';
}

public function getFilters()
{
return array(
new Twig_SimpleFilter(
'encrypt',
array($this, 'encryptFilter')
)
);
}

public function encryptFilter($value)
{
return sha1($value);
}
}

Config


# sport/src/Football/FrontendBundle/Resources/config/services.yml
services:
football_frontend.twig.extension.encrypt:
class: Football\FrontendBundle\Twig\EncryptExtension
public: false
tags:
- { name: twig.extension }

Twig


Varsayalım ki name değişkeni "inanzzz" değerini tutacak şekilde, default controller içinde tanımlanmış olsun.


Hello {{ name }}!
<br />
Hello {{ name|encrypt }}!

Test


Eğer tarayıcınızdan http://sport.local/app_dev.php linkini açarsanız, aşağıdaki çıktıyı alırsınız.


Hello inanzzz! 
Hello bae9e624ee464e275fa804d047955bcc08caab5b!