Eu tenho uma classe de conexão com o banco de dados, que utiliza adodb e tals
Dae eu inventei de colocar o método _destruct nele, para ele fechar a conexão quando terminasse o script.
PHP 5 introduces a destructor concept similar to that of other object-oriented languages, such as C++. The destructor method will be called as soon as all references to a particular object are removed or when the object is explicitly destroyed or in any order in shutdown sequence.
Na minha teoria, não chamaria ele só quando terminasse a execução do script/função?
Ou quando a chamada dele na classe termina?
Pois eu tenho métodos que acessam outros métodos (usando conexão o tempo todo).
Exemplo:
function algumacoisa($arrValores) {
$o = new osForm();
//Vários setters de dados vindas de uma consulta SQL, abrindo uma conexao
$o->setCliente(clienteClass::getClienteCodigo($o->getCd_cliente()));
$o->setUsuarioAtendente(usuarioClass::getUsuarioCodigo($o->getCd_usuario()));
$o->setEquipamento(equipamentoClass::getEquipamentoCodigo($o->getCd_equipamento()));
$o->setUsuario_abertura(usuarioClass::getUsuarioCodigo($o->getCd_usuario_abertura()));
}Cada chamada de função tá abrindo conexão, e fechando no término de execução dela :S
Pensei agora, será que se eu passar elas para static ele irá chamar o destrutor somente quando termina a execução da função chamada inicialmente?
Definição de static:
Another important feature of variable scoping is the static variable. A static variable exists only in a local function scope, but it does not lose its value when program execution leaves this scope. Consider the following example:
(espero que o PR leia isso...
-- EDIT --
Será que é porque eu fico fazendo novas chamadas da classe a cada método que eu vou executando? Pra mim que não, pois a variavel de conexao é estática :S
E bem antes de começar a chamar estas conexões eu já incluo ela no escopo, ou seja, ele não fica requerindo toda hora a classe, só fazendo a chamada >_>'
Alguem já passou por algo parecido?
[]'s
Edição feita por: savior, 24/08/2007, 12:10.











