Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/08/2010, 20:02
supercalifratilistic
 
Fecha de Ingreso: junio-2010
Mensajes: 10
Antigüedad: 14 años, 4 meses
Puntos: 0
Llamar a clase estatica por referencia en una sola linea

Primero que nada doy mis cordiales saludos.
Este es mi primer tema en este foro y al verdad es que no soy muy forero pero tengo un temita que por mas que busco no puedo solucionar.

Tengo una clase estatica Core con un metodo Service.

Este metodo me devuelve una referencia a otra clase estatica.

Código PHP:
Ver original
  1. $mi_servicio = Core::Service('MiServicio');

Esto funciona sin ningun problema ya que puedo llamar a los miembros estaticos de dicho servicio de la siguiente manera:

Código PHP:
Ver original
  1. $mi_servicio::metodoDeMiServicio();


El punto es como puedo hacer para traer el servicio y ejecutar el método en una misma línea. Algo como esto me da error:

Código PHP:
Ver original
  1. Core::Service('MiServicio')::metodoDeMiServicio();

Me devuelve el siguiente error:

Código:
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM 
Aunque encontré información del error no pude resolver como solucionarlo.

Si puedo hacerlo si recibo un objeto en vez de una referencia a clase estática que sería algo como esto:
Código PHP:
Ver original
  1. Core::System('MiObjeto')->MetodoDeMiObjeto();

El motivo de buscar esto es que actualmente tengo un sistema de c# que realiza esa función y me gustaría portar la misma forma de trabajo a este nuevo sitio en PHP. En C# se llamo a los servicios de la siguiente manera:

Código C++:
Ver original
  1. Core.Service.getService<MiServicio>.MetodoDeMiServicio();

Este es utilizado por cualquiera de mis clases sin necesidad de volverlo a instanciar.

Desde ya muchas gracias por cualquier ayuda que puedan darme.