Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Necesito saber como ejecutar funcion desde TWIG

Estas en el tema de Necesito saber como ejecutar funcion desde TWIG en el foro de PHP en Foros del Web. Hola tengo una duda estoy desarrollando una web y hasta el momento va todo bien pero en mi web tengo que ejecutar una funcion desde ...
  #1 (permalink)  
Antiguo 29/03/2015, 11:52
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 11 años, 5 meses
Puntos: 0
Necesito saber como ejecutar funcion desde TWIG

Hola tengo una duda estoy desarrollando una web y hasta el momento va todo bien pero en mi web tengo que ejecutar una funcion desde un archivo.twig.html

Es una funcion mia nose por ejemplo:

Código PHP:
function testpru($var)
{
   return 
$var;

Como lo haria?
Les comento que no uso Synphony sino me descarge el paquete de twig y lo empece a usar
  #2 (permalink)  
Antiguo 29/03/2015, 14:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Necesito saber como ejecutar funcion desde TWIG

¿Ya revisaste la documentación de Twig?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 29/03/2015, 14:39
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Si pero no encuetro nada, y la verdad mi nivel de ingles es muy bajo :v
  #4 (permalink)  
Antiguo 30/03/2015, 08:10
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Necesito saber como ejecutar funcion desde TWIG

no es complicado solo tienes que crear una instancia Twig_SimpleFunction y agregar un closure.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 30/03/2015, 12:58
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Necesito saber como ejecutar funcion desde TWIG

No logro ahcerlo funcionar asi yo tengo mi codigo, mi index:

Código PHP:
/*-- Esta es mi funcion --*/
function TestFuncion($var,$var2)
{
    
$allvar    =    $var.$var2;
    return 
$allvar;
}
/*-----*/
require_once 'Twig/Autoloader.php';

Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem('templates');

$twig = new Twig_Environment($loader, array(
            
'cache' => 'cache',
            
'debug' => 'true'));
            
$template $twig->loadTemplate('index.twig.html');

echo 
$template->render(array(
)); 
Como tendria que quedar?
  #6 (permalink)  
Antiguo 30/03/2015, 13:46
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Mira en el enlace que te pase, viene un ejemplo de lo que tienes que hacer.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 30/03/2015, 21:11
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Código PHP:
...  Class 'Twig_SimpleTest' not found in  ... 
No logro hacerlo funcinar
  #8 (permalink)  
Antiguo 31/03/2015, 08:43
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Publica el código para ver como lo estas implementando
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #9 (permalink)  
Antiguo 31/03/2015, 10:21
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Código PHP:
<?php
# Esta es mi funcion
$twig = new Twig_Environment($loader);
$test = new Twig_SimpleTest('test_name', function () {
    
$allvar    =    $var.$var2;
    return 
$allvar;
});
$twig->addTest($test);
/*----------------------------------*/
require_once 'Twig/Autoloader.php';

Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem('templates');

$twig = new Twig_Environment($loader, array(
            
'cache' => 'cache',
            
'debug' => 'true'));
            
$template $twig->loadTemplate('index.twig.html');

echo 
$template->render(array());
Aca les dejo un ejmeplo de como lo tengo:
http://mmorpgdev.net/ejemplo_Twig.zip
  #10 (permalink)  
Antiguo 31/03/2015, 10:31
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Necesito saber como ejecutar funcion desde TWIG

De entrada el require_once siempre es la primera linea de tu código por eso no encuentra la clase. Segundo tienes que utilizar Twig_SimpleFunction no Twig_SimpleTest.
Este es el ejemplo en el que te tienes que basar tu solución
Código PHP:
Ver original
  1. $twig = new Twig_Environment($loader);
  2. $function = new Twig_SimpleFunction('function_name', function () {
  3.     // ...
  4. });
  5. $twig->addFunction($function);
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #11 (permalink)  
Antiguo 31/03/2015, 10:36
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Hola si me di cuenta pero el error continua:
Código PHP:
<?php
require_once 'Twig/Autoloader.php';

Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem('templates');

$twig = new Twig_Environment($loader, array(
            
'cache' => 'cache',
            
'debug' => 'true'));

# Esta es mi funcion
//$twig = new Twig_Environment($loader); //Aca se declaa por segunda vez
$function = new Twig_SimpleFunction('function_name', function () {
    
// ...
});
$twig->addFunction($function);
/*----------------------------------*/
            
$template $twig->loadTemplate('index.twig.html');

echo 
$template->render(array());
Código PHP:
Fatal error: Class 'Twig_SimpleFunction' not found in ... 
Es como si la clase "Twig_SimpleFunction" no existiera.
  #12 (permalink)  
Antiguo 31/03/2015, 12:31
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Me encontré el manual en español espero y te ayude: http://gitnacho.github.io/Twig/index.html
Por cierto no solo copies y pegues lo que te había pasado era solo el ejemplo de la documentación; si no comprendes algo del lenguaje revisa el manual de php
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #13 (permalink)  
Antiguo 31/03/2015, 13:36
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Necesito saber como ejecutar funcion desde TWIG

La verdad me vuelvo loco, no logro hacerlo funcionar
  #14 (permalink)  
Antiguo 31/03/2015, 13:52
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Cita:
La verdad me vuelvo loco, no logro hacerlo funcionar
Cuando llegas a este punto tomate un tiempo para despejarte.
Si no entiendes algo, es posible que tengas deficiencias en como se implementa la POO en php. Asi que te sugiero que leas el manual sobre todo el tema de los objetos y funciones.
Y no te des por vencido estas cerca de tu solución solo que no la ves.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #15 (permalink)  
Antiguo 31/03/2015, 15:01
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Algo se de POO, pero me llama ala tencion es como si la clase "Twig_SimpleFunction" no existiera.
  #16 (permalink)  
Antiguo 31/03/2015, 15:05
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Publica nuevamente el código y el error explicito.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #17 (permalink)  
Antiguo 31/03/2015, 15:18
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Este es mi codigo limpio:
Código PHP:
Ver original
  1. <?php
  2. require_once 'Twig/Autoloader.php';
  3.  
  4. Twig_Autoloader::register();
  5.  
  6. $loader = new Twig_Loader_Filesystem('templates');
  7.  
  8. $twig = new Twig_Environment($loader, array(
  9.             'cache' => 'cache',
  10.             'debug' => 'true'));
  11.  
  12. $template = $twig->loadTemplate('index.twig.html');
  13.  
  14. echo $template->render(array(
  15.     'variable'  =>  'Hola mundo!',
  16.     ));

Asi quedo luego de leer la guia:
Código PHP:
Ver original
  1. <?php
  2. require_once 'Twig/Autoloader.php';
  3.  
  4. Twig_Autoloader::register();
  5.  
  6. $loader = new Twig_Loader_Filesystem('templates');
  7.  
  8. $twig = new Twig_Environment($loader, array(
  9.             'cache' => 'cache',
  10.             'debug' => 'true'));
  11. /*---------------*/
  12. $function = new Twig_SimpleFunction('funciontestmia', function () {
  13.     return 'VARIABLE TEST';
  14. });
  15. /*-------------*/
  16. $template = $twig->loadTemplate('index.twig.html');
  17.  
  18. $twig->addFunction($function); // Agrega la funcion
  19.  
  20. echo $template->render(array(
  21.     'variable'  =>  'Hola mundo!',
  22.     ));

El error es el siguiente:
Código PHP:
Ver original
  1. Fatal error: Class 'Twig_SimpleFunction' not found in C:\xampp\htdocs\1\index.php on line 12

Osea la clase Twig_SimpleFunction es como si no existiera
  #18 (permalink)  
Antiguo 31/03/2015, 16:04
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Eso si es raro, que versión de twig estas utilizando ?
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #19 (permalink)  
Antiguo 31/03/2015, 16:24
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Segui esta guia :
http://jhernandz.es/noticia/twig-plantillas-php-i
  #20 (permalink)  
Antiguo 31/03/2015, 16:30
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Si instalaste Twig de acuerdo a las instrucciones que vienen en el sitio oficial ?
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #21 (permalink)  
Antiguo 31/03/2015, 16:32
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Osea es la primera vez que uso Twig y con esa guai que lei en el otro sitio me salio bien no tengo problemas, reconoce variables, trae datos desde mysql entre otras cosas.

Pero no logro ejecutar otras funciones pripias de mi, es decir una funcino que yo creara.
  #22 (permalink)  
Antiguo 31/03/2015, 16:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Cita:
Eso si es raro, que versión de twig estas utilizando ?
Tan básico ¿y hasta ahorita se les ha ocurrido preguntar?

Ese es el problema inicial de todo: versiones, configuración, etc.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #23 (permalink)  
Antiguo 31/03/2015, 16:47
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Cita:
Iniciado por Chiiviito Ver Mensaje
Osea es la primera vez que uso Twig y con esa guai que lei en el otro sitio me salio bien no tengo problemas, reconoce variables, trae datos desde mysql entre otras cosas.

Pero no logro ejecutar otras funciones pripias de mi, es decir una funcino que yo creara.
El articulo en el que te basaste fue escrito en el 2011 ya cambio la forma en que se extiende twig actualmente así que vas a necesitar instalar la versión reciente o quedarte como estas.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #24 (permalink)  
Antiguo 31/03/2015, 17:30
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Ahi ya no me salio ese error, que tarado nunca me fije al fecha ya actualice la version del Twig que tenia pero ahora nose como mandar la funcion mediante el array:


Código PHP:
<?php
require_once 'Twig/Autoloader.php';

Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem('templates');

$twig = new Twig_Environment($loader, array(
            
'cache' => 'cache',
            
'debug' => 'true'));
/*-----*/
$function = new Twig_SimpleFunction('fnx_asd', function () {
    return 
'La funcion salio bien!!';
});
$twig->addFunction($function);
/*-----*/
$template $twig->loadTemplate('index.twig.html');

echo 
$template->render(array(
    
'variable'    =>    'Hola mundo!',
    ));
  #25 (permalink)  
Antiguo 31/03/2015, 17:33
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Necesito saber como ejecutar funcion desde TWIG

no es necesario pasarla en el arreglo, solo tienes que llamarla desde la plantilla:
Código PHP:
Ver original
  1. {{ fnx_asd() }}
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #26 (permalink)  
Antiguo 31/03/2015, 17:47
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Que tarado, era solo poner eso.

Mil gracias te agradezco todo el interes y la ayuda que led edicaste a mi problema.

Mil Gracias!!!!
Tema solucionado
  #27 (permalink)  
Antiguo 31/03/2015, 17:52
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Necesito saber como ejecutar funcion desde TWIG

Cita:
Mil gracias te agradezco todo el interes y la ayuda que led edicaste a mi problema.
Tu lo hiciste todo, yo solo te aconseje.
Eso si recuerda actualizar twig la próxima vez!!
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: funcion, html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:30.