Ver Mensaje Individual
  #10 (permalink)  
Antiguo 10/07/2013, 17:11
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Excepciones apropiadas

Cita:
Iniciado por masterpuppet Ver Mensaje
Sobre como comprobar si un objeto es instanciable, simplemente comprueba que la clase existe con class_exists
Pues en realidad una clase puede ser abstracta o puede ser concreta pero con su constructor privado (o protected aunque no tiene sentido protected) ...en conclusion, eso no es suficiente

Código PHP:
Ver original
  1. <?php
  2.  
  3. Class MedejoInstanciar{
  4. }
  5.  
  6. Class NoMeInstancies{
  7.    private function __construct(){}
  8.  
  9.    public function some_function(){
  10.       // ...
  11.    }
  12. }
  13.  
  14.  
  15. var_dump(get_class_methods('NoMeInstancies'));
  16.  
  17. $classes = array ('Algo','MedejoInstanciar','NoMeInstancies');
  18.  
  19. foreach ($classes as $class)
  20. {
  21.     if (class_exists($class)){
  22.         echo "$class existe .. <br/>";
  23.         if (method_exists($class,'__construct')){
  24.             echo "Constructor existe en $class<br/>";  
  25.             $metodos_publicos = get_class_methods($class);        
  26.             if (array_search('__construct',$metodos_publicos))
  27.                 echo "Constructor es Publico => $class es INSTANCIABLE";
  28.             else
  29.                 echo "De malas con $class pues NO es instanciable";
  30.         }else
  31.             echo "Constructor NO existe en $class<br/>";
  32.     }else
  33.         echo "$class NO existe .. <br/>";
  34. }

Es un ejemplo.... no es para que lo uses asi!
__________________
Salu2!

Última edición por Italico76; 10/07/2013 a las 17:32