Ver Mensaje Individual
  #7 (permalink)  
Antiguo 01/06/2008, 06:53
Avatar de enriqueplace
enriqueplace
 
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años, 7 meses
Puntos: 32
Respuesta: Metodo estatico que sepa el nombre de la clase que lo llama

Cita:
Iniciado por Volrath Ver Mensaje
Hola, en cuanto a tu primer punto, no estoy seguro de porque dices q no es recomendable que el atributo sea publico, en mi caso en particular, yo no lo utilizo como publico sino como protected. Pero me gustaria saber porque piensas que no es recomendable que el atributo sea publico
Primero, en todos los ejemplos que nos muestras usas un atributo público, por consiguiente "no me puedo equivocar".

Código PHP:
public static $class_name
Segundo, como principio general y básico de la POO, no se usan nunca atributos públicos, a lo sumo, métodos "getters y setters" (no lo digo yo).

Cita:
Iniciado por Volrath Ver Mensaje
En cuanto al segundo, creo que como no di un contexto amplio de que es lo que estoy implementando te confundiste y piensas que no existe caso practico de interes.

Voy a colocar un escenario corto (no mi escenario particular) en el cual es util: Estas construyendo un ORM, Sigues la convencion de que las clases se llamaran igual que las relaciones.
Nuevamente, subestimas el poder de la fuerz... digo, de mi entendimiento . Son muy pocos los casos que puedas verdaderamente necesitar saber la clase, un caso *muy* particular es hacer un ORM, pero para el resto *generalmente* es una mala decisión de diseño atarte a preguntar "cual es la clase que estoy procesando" y no hacer algo genérico (buscar en Google patrón de diseño abierto cerrado).

¿Por qué? Por principios básicos de diseño POO, porque no utilizas el "patrón estratégico más importante de la POO" que es el Polimorfismo.

Recomendación: busca material en Google sobre "Liskov herencia de clases y principio de sustitución".

PD: hay un principio que dice "si me cambias de contexto, tengo que cambiar de solución"; si planteas algo, te responderemos en base a ese planteo, pero si luego nos dices "que tu contexto es otro", no pidas que la misma respuesta sirva para algo que ni siquiera nos lo presentas.

Esto no es una competencia de "quién sabe más" y tú no estás en evidencia por "no saber" (no hace falta que te defiendas) pero respeta el tiempo de los demás que buscan darte una mano, por lo menos habla claro y sé franco.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com