Tengo un pequeño inconveniente y no he logrado añadir una extensión Twig a mi proyecto Symfony2.8, trato de recolectar información pero no he conseguido nada.
Muchos dicen que crean un directorio y ahí crean una clase php que es la extension y en el service.yml lo llaman. pero ya hago eso y me da un error. no se por que.
Según veo no me reconoce el directorio o carpeta que cree "Twig" y dentro de ahí tengo mi clase php., como puedo hacer que symfony me reconozca la carpeta creada.
clase php que esta en mi proyecto Sistema/sifacBundle/Twig
Código:
  
yo creo que ahi es el problema por que no me reconoce la carpeta o directorio "TWIG"<?php
namespace Sistema\sifacBundle\Twig;
use Symfony\Bridge\Doctrine\RegistryInterface;
class DatosExtensions extends \Twig_Extension
{    
    // Cargamos doctrine dentro del servicio/extensión
    protected $doctrine;
 
    public function __construct(RegistryInterface $doctrine)
    {
        $this->doctrine = $doctrine;
    }
 
    /* Le ponemos el nombre al filtro que finalmente usaremos en la vista
     y le indicamos que metodo va a cargar.*/
    public function getFilters()
    {
        return array(
            new \Twig_SimpleFilter('get_datos', array($this, 'getDatosFilter')),
        );
    }
 
    // Método con la funcionalidad de la extensión
    public function getDatosFilter($user_id)
    {
        $user_repo = $this->doctrine->getRepository("SistemasifacBundle:Listas");
 
        $user= $user_repo->findOneBy(array("id" => $user_id));
 
        if(!empty($user) && is_object($user)){
           $result = $user;
        }else{
           $result = false;
        }
         
        return $result;
    }
 
    public function getName()
    {
        return 'get_datos_extension';
    }
}
MI services.yml
Código:
  
  get_datos.twig_extension:
        class: SistemasifacBundle\Twig\DatosExtensions
        public: false
        arguments:
            doctrine: "@doctrine"
        tags:
            - { name: twig.extension }
 

