Coder101 0 Denunciar post Postado Janeiro 5, 2008 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
Sryche 0 Denunciar post Postado Janeiro 5, 2008 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 864 Denunciar post Postado Janeiro 5, 2008 Primeiramente, bem-vindo ao iMasters! :D Você pode usar o operador new dentro de um método para instanciar outra classe. Compartilhar este post Link para o post Compartilhar em outros sites
Sryche 0 Denunciar post Postado Janeiro 5, 2008 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
Coder101 0 Denunciar post Postado Janeiro 5, 2008 Obrigado, galera vale dar um include dentro de um metodo? Compartilhar este post Link para o post Compartilhar em outros sites
Sryche 0 Denunciar post Postado Janeiro 5, 2008 Creio que sim, mas não vejo muita necessidade para isso, nem muita utilidade :] Compartilhar este post Link para o post Compartilhar em outros sites