Ver Mensaje Individual
  #6 (permalink)  
Antiguo 29/03/2014, 02:46
Avatar de jor_0203
jor_0203
 
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años, 1 mes
Puntos: 8
Respuesta: se puede instanciar adentro de una clase en php

Cita:
Iniciado por hhs Ver Mensaje
Claro que se puede:
Código PHP:
Ver original
  1. class A {
  2.     public function ejecutar(){
  3.         echo 'Instanciado dentro de B';
  4.     }
  5. }
  6.  
  7. class B {
  8.  
  9.     private $a;
  10.  
  11.     public function __construct(){
  12.         $this->a = new A();
  13.     }
  14.  
  15.     public function ejecutarA(){
  16.         $this->a->ejecutar();
  17.     }
  18. }

Puedes instanciar en el constructor o los métodos de la clase. Pero generalmente no se aconseja hacerlo, ya que esta practica oculta dependencias y rompe con la encapsulación. Además de que hay otras formas de manejar la creación de objetos y reducir el acoplamiento
tu me dices que esta es una forma

class B {
private $a;
public function __construct(){
$this->a = new A();
}
public function ejecutarA(){
$this->a->ejecutar();
}
}

si te fijas llamo a la clase asi $this->a = new A();
pero porque, si es tan fácil llamar a una clase adentro de un método entonces
no necesito esto de herencia
public class Herencia extends ClaseHeredada{

}
según entiendo, esto es lo que me confunde, ya que podemos estar llamandolas desde cualquier método sin necesitar de la palabra extends o etc en la clase