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

Usar el container en un objeto instanciado

Estas en el tema de Usar el container en un objeto instanciado en el foro de Symfony en Foros del Web. Hola. Veamos si me puedo explicar. Tengo un proyecto con symfony 2.6.1 y otro con la versión 2.5.7. En la versión 2.5.7 al momento de ...
  #1 (permalink)  
Antiguo 12/01/2015, 19:24
 
Fecha de Ingreso: febrero-2014
Ubicación: Edo. México
Mensajes: 85
Antigüedad: 10 años, 1 mes
Puntos: 0
Usar el container en un objeto instanciado

Hola.
Veamos si me puedo explicar. Tengo un proyecto con symfony 2.6.1 y otro con la versión 2.5.7. En la versión 2.5.7 al momento de instanciar una classe, podía usar el objeto “container” dentro de esta nueva instancia, sin necesidad de pasar el “container” sin ningún problema. Pero en la versión 2.6.1 esto ya no es posible. Me pregunto; Esto es el funcionamiento correcto? . Tendré que pasar el “container” a usar al momento de usar algún procedimiento de la clase instanciada? .
Pongo un ejemplo:

Controllador principal
Código PHP:
class MiCuentaController extends Controller
{        
    
    public function 
IndexAction(Request $request)
    {        
        
        
$Registro=new RegistroController();  // Objeto RegistroController intanciado      
        
$Var=$Registro->IndexAction();  //Metodo a usar
        
        
if($Var['Reg_a']){
           
// hacer algo
        
}
        
        return 
$this->rende....
    }
    

Objeto RegistroController
Código PHP:
class RegistroController extends Controller
{        
    
    public function 
IndexAction()
    {   
        
$this->get('session')->getFlashBag()->add('info''¡Bien!');// En la versión2.5.7 no me genera ningun problema. En la versión 2.6.1 me genera el siguiente error:
//Error: Call to a member function get() on a non-object
// Lo mismo ocurre al usar "$this->getDoctrine()" o "$this->getUser()"

        /// ...... resto de codigo
        
return $Var;
    } 
Tendre que pasar el "container" al momento de usar los procedimientos de la siguiente manera?: $Registro->IndexAction($em,$Usr,$session);

Espero puedan ayudarme. Saludos
  #2 (permalink)  
Antiguo 13/01/2015, 11:18
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 8 meses
Puntos: 379
Respuesta: Usar el container en un objeto instanciado

De echo se cambiaron las llamadas a algunos métodos de una versión a otra.
Código PHP:
Ver original
  1. // Symfony 2.6
  2. $this->addFlash('info', 'The item was created successfully.');
  3.  
  4. // Previous Symfony versions
  5. $this->get('session')->getFlashBag()->add('info', 'The item was created successfully.');
Fuente: http://symfony.com/blog/new-in-symfo...or-controllers
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: container, objeto, usar
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 16:08.