Hola amigos como están.
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:
<?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';
}
}
yo creo que ahi es el problema por que no me reconoce la carpeta o directorio "TWIG"
MI services.yml
Código:
get_datos.twig_extension:
class: SistemasifacBundle\Twig\DatosExtensions
public: false
arguments:
doctrine: "@doctrine"
tags:
- { name: twig.extension }