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 olarak şifreleme algoritması kabul ediyor.


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, $algorithm = 'sha1')
{
return $algorithm($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 }}!
<br />
Hello {{ name|encrypt('sha1') }}!
<br />
Hello {{ name|encrypt('md5') }}!

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!
Hello bae9e624ee464e275fa804d047955bcc08caab5b!
Hello 144c8dcb89dc293f55c68cc74adda88b!