Foros del Web » Programando para Internet » PHP » Symfony »

[SOLUCIONADO] ejecutar una funcion en el execute de un comando

Estas en el tema de ejecutar una funcion en el execute de un comando en el foro de Symfony en Foros del Web. Hola, bueno sigo con los comandos, tengo una funcion que llama un procedimiento, esto funciona ok, pero necesito que desde un conmando se ejecute esa ...
  #1 (permalink)  
Antiguo 23/06/2014, 11:32
Avatar de witchy  
Fecha de Ingreso: junio-2014
Mensajes: 44
Antigüedad: 10 años, 6 meses
Puntos: 0
Sonrisa ejecutar una funcion en el execute de un comando

Hola, bueno sigo con los comandos, tengo una funcion que llama un procedimiento, esto funciona ok, pero necesito que desde un conmando se ejecute esa funcion, si se puede hacer fue algo que se me ocurrio...Saludoss y Graciasss
  #2 (permalink)  
Antiguo 23/06/2014, 12:06
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 5 meses
Puntos: 379
Respuesta: ejecutar una funcion en el execute de un comando

Si se puede; necesitas extender el ContainerAwareCommand: http://symfony.com/doc/2.3/cookbook/...e_command.html
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 25/06/2014, 07:45
Avatar de witchy  
Fecha de Ingreso: junio-2014
Mensajes: 44
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: ejecutar una funcion en el execute de un comando

Hola, herede de la clase ContainerAwareCommand pero cuando ejecuto el comando, me da un monton de fal error en la consola. Me parece que debo tener un error de sintaxis grave.

protected function configure()
{
$this
->setName('demo:greet')
->setDescription('Greet someone')
//->addArgument('name', InputArgument::OPTIONAL, 'Who do you want to greet?')
// ->addOption('yell', null, InputOption::VALUE_NONE, 'If set, the task will yell in uppercase letters')
;
}


protected function execute(InputInterface $input, OutputInterface $output)
{
$dc= new DefaultController();
$cp = $dc->callProcedure();//funcion que quiero ejecutar

$output->writeln($cp);
}
Esto es lo que tengo puesto en las funciones configure y execute cualquier ayuda gracias
  #4 (permalink)  
Antiguo 25/06/2014, 08:01
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 5 meses
Puntos: 379
Respuesta: ejecutar una funcion en el execute de un comando

Puedes publicar que contiene el método callProcedure
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 25/06/2014, 08:08
Avatar de witchy  
Fecha de Ingreso: junio-2014
Mensajes: 44
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: ejecutar una funcion en el execute de un comando

Este metodo ejecuta un procedimiento en la base de datos, lo probe y funciona bien.

/**
* @Route("/procedimiento" , name="procedimiento")
* @Template()
*/
public function callProcedureAction()
{
$stmt = $this->getDoctrine()->getEntityManager()
->getConnection()->prepare('CAll contando()');
$stmt->execute();

$message = "se update ok";

return array(
'message'=>$message
);


}

son cosas sencillas, que estoy probando, el procedimiento contando es update que lo hace es sumar 1 a un valor..muchas gracias
  #6 (permalink)  
Antiguo 25/06/2014, 09:17
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 5 meses
Puntos: 379
Respuesta: ejecutar una funcion en el execute de un comando

Para ejecutar el procedimiento necesitas acceder al service container desde el comando; tendrias que tener algo como esto
Código PHP:
Ver original
  1. protected function execute(InputInterface $input, OutputInterface $output)
  2. {
  3.     $stmt = $this->getContainer()->get('doctrine')->getConnection();
  4.     $stmt->prepare('CALL contando()');
  5.     $stmt->execute();
  6. }
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 25/06/2014, 11:56
Avatar de witchy  
Fecha de Ingreso: junio-2014
Mensajes: 44
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: ejecutar una funcion en el execute de un comando

Muchas Gracias funciono super bien, al principio me dio un error lo puse asi todo ok


$stmt = $this->getContainer()->get('doctrine')->getConnection()->prepare('CALL contando()');
$stmt->execute();

Mil gracias

Etiquetas: comando, execute, funcion
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 06:50.