Symfony 2 ile bir twig tabanlı projem var. Symfony 2 doğası nedeniyle Ad alanları kullanılıyor. Bu yüzden ad alanı dışında global işlevler sağlayamıyorum.Twig_SimpleFilter ile Twig_SimpleFilter ile iç işlevleri kullanamıyorum
<?php
namespace Web\MailBundle\Twig;
use Twig_Extension, Twig_SimpleFilter;
class Twig extends Twig_Extension
{
public function getName()
{
return 'twig_extension';
}
public function getFilters() {
return array(
'shortKey' => new Twig_SimpleFilter('shortKey', 'myCustomFilterFunction')
);
}
public function myCustomFilterFunction() {
//code here...
}
Sonuç:
Bu
benim Twig Uzatma sınıf olduğunuFatalErrorException: Error: Call to undefined function myCustomFilterFunction()
Neden: Twig Bu işlevi bulmaya çalışıyor ama bir iç Çünkü, sınıf. Bu sefer sınıfın dışına taşınırsam, ad alanlarıyla yüzleşirim. Çünkü o isimdir. Kodları kazıyorum. Twig aynı şeyi yapıyor. Filtreleri ve sınıf dışındaki işlevleri yazarlar. Ama isim alanı yüzünden bunu yapabilirim. Mümkünse, uygun çözümü kullanarak bunu yapmak için uğraştım. Eğer başarısız olursa; i üzerinde nasıl alabilirim
- Ben ... ad olmadan başka php dosyası oluşturma ve projeye bulunur son solüsyonu ile
geldi olacak? Twig Filter kullanımdan kaldırıldı ve SimpleFilter yöntemini kullanmak zorundayız. Ama bunu yapamadım.
Dökümantasyondaki "Aşırı yükleme" bölümünü nasıl kaçırdım :(. Beni uyandırdığın için teşekkürler! – xangr