Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Coder101

Instanciar um classe dentro de outra classe(sem extends)

Recommended Posts

Boa tarde, Galera

 

O problema é o seguinte, tenho duas classes:

 

1- Conexão ao banco: imysql.class.php

2- Classe de autenticação: iauth.class.php

 

Quero que dentro da classe "iauth" possa utilizar os métodos de conexão da classe "imysql" sem ter que extender a classe iauth na classe "imysql".

 

Com extends ficaria:

 

Class Authentication extends MySQL(){


}

E se eu colocasse construtor para instanciar a classe MySQL(), funcionaria, como eu o faria?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque no construtor da classe uma referência para a outra classe, mais ou menos assim:

<?php
class Authentication {	
	public $mysql;
	// ----------------------------------------------------------------------
	// Método construtor para a classe.
	// $sql -> instância da classe SQL.
	// ----------------------------------------------------------------------
	public function __construct($sql){
		$mysql = $sql;
	}
}
A chamada ficaria mais ou menos assim:

$sql = new SQL;
$auth = new Authentication($sql);
A partir daí, você vai poder instanciar os métodos da outra classe somente usando chamadas normais, como por exemplo:

$mysql->connect();

Bom, espero ter ajudado :]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo, é claro, isso considerando que a outra classe já não esteja inicializada, neste caso, isso é válido.

No exemplo que eu mostrei, a classe foi inicializada por fora, então eu apenas referenciei ela dentro do método __construct.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.