03/08/2014 - SYMFONY, TWIG
Aşağıdaki twig extension örneğinde, verilen değeri şifreleyeceğiz. Bu örnekteki extension parametre olarak şifreleme algoritması kabul ediyor.
# 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);
}
}
# 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 }
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') }}!
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!