begin process at 2012 02 13 10:55:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Class et Objet ( POO )

 > 

Detruire objet


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Detruire objet

jeudi 19 mai 2005 à 10:38:23 | Detruire objet

pingwin

Bonjour

J'ai un petit pb de syntaxe :  Dans une classe appelée Telnet j'ai une méthode traiteTabNeighbor()  qui boucle en appelant une fonction exterieure a la classe  throwNeighborthreat(). Cette fonction throwNeighborthreat(), cree un objet de type Telnet et lui applique les methodes de la classe Telnet. Dont la méthode traiteTabNeighbor, en fait ça fait une boucle recursive. En fait des que le traitement est fini je voudrais detruire l'objet cree par la fonction throwNeighborthreat, mais le faire dans la boucle de la méthode traiteTabNeighbor. Cependant, je ne vois pas comment appeler la fonction delete dans ma boucle sachant que je n'ai aucune reference à l'objet que je veux detruire a cet endroit... je ne sais pas si j'ai été très clair. mais si vous voyez une solution ou vous voulez des precisions, n'hesitez pas. Cordialement

class Telnet{
...
function traiteTabNeighbor(){
    
    $tab = array_reverse($this->tab_neighbor);
    
    foreach($tab as $eq){
    
    returnTable();
       
    if (!in_array($eq,$GLOBALS["tab_connu"])) {
   
    throwNeighborthreat($eq); 
        
    }
         
  }
...
}


 function throwNeighborthreat($equipment){
    
     $telnet = new Telnet($equipment);
     echo "<br> Traitement en cours sur : ".$telnet->nomequipmnt. " d'adresse IP : ".$telnet->ip;
     $telnet->extractIndexInterface();
     $telnet->connexionTelnet();
     $telnet->recupData();
     $telnet->creeFichierTxt();
     echo "<center><H1>".$telnet->nomequipmnt." : Neighborhood </H1></center>";
     $telnet->traiteFichierTxt();
     $telnet->deleteAll();
     $telnet->returnTab();
     $telnet->traiteTabNeighbor();
     
    }


jeudi 19 mai 2005 à 10:55:51 | Re : Detruire objet

malalam

Administrateur CodeS-SourceS
Hello,

je ne vois pas trop comment tu vas pouvoir faire ca avec cette syntaxe.
Pourquoi ne fais tu pas de throwmachin une methode de ta classe telnet,puisque de toutes facons une methode de cette classe a besoin de cettefonction.
Tu fais du recursif dans les 2 sens...tu ne peux detruire ni l'un nil'autre tant qu'ils n'ont pas fini leurs appels recursifs. Bref, jetrouve ca un peu tordu ;-)


jeudi 19 mai 2005 à 11:10:02 | Re : Detruire objet

pingwin

je suis entièrement d'accord sur le fait que ce soit tordu...
Par contre meme si je mets la fonction throwmachin dans ma classe, cela ne m'aide en rien dans mon pb.

En fait le but est de parcourir un arbre. Je pars de la racine pour lequel je crée un objet Telnet racine, puis je lui applique la série de fonctions comprises dans throwNeighborthreat. J'obtiens alors un tableau (attribut de Telnet racine, qui constitue les fils de la racine),dans lequel pour chaque fils obtenu je crée un nouvel objet telnet Fils pour ainsi obtenir les petits-fils....  Cependant, vu que ça plante au bout d'un certain temps (~29 traitements) je me suis dit que ça venait de la mémoire ou un truc du genre. Vu que je créé un objet pour chaque element et que tant que le prg tourne les objets sont vivants, je me suis dit qu'il serait utile des les detruire au fur et a mesure que le traitement est fini. Or comment faire?
jeudi 19 mai 2005 à 12:41:32 | Re : Detruire objet

malalam

Administrateur CodeS-SourceS
=> Par contre meme si je mets la fonction throwmachin dans ma classe, cela ne m'aide en rien dans mon pb.
Ben tu ne creeras ainsi pas d'objet supplementaire. J'avais biencompris le principe, et le probleme (du moins je m'en doutais).
=> je me suis dit qu'il serait utile des les detruire au fur et a mesure que le traitement est fini.
Tu es dans un traitement recursif...jete rappelle que dans une telle boucle, le DERNIER appel se fermed'abord, puis l'avant dernier...etc jusqu'au premier. Dans tous les casde figure, donc, tu ne pourras en aucun cas detruire le 1er objet, puisle second etc...tu creeras toujours d'abord tous les objets, et nepourra les detruire qu'a la fin, du dernier au premier.
Je maintiens que c'est un probleme de conception.
Je reviens a mon idee : tu ne crees qu'un seul objet telnet, quicree son tableau et le parcours recursivement avec sa methode. Un seulobjet, et une grosse variable membre : le tableau.



jeudi 19 mai 2005 à 13:49:23 | Re : Detruire objet

pingwin

Bon après des jours entiers à me demander pourquoi ça bloquait, j'ai enfin trouvé la soluce. En fait mon algo et ma conception fonctionne. Il s'avère que le max_execution_time  de mon php.ini était trop faible pour parcourir tout l'arbre. En fait je bossais sans débugger et avec php 4.3. Comme j'ai voulu utilisé l'utilisation des references dans mon prg, j'ai installé php 5 y'a une demie-heure. Et o miracle, celui-ci fournit un debugger de base et m'a perni de voir le message d'erreur que générait mon appli : Fatal error: Maximum execution time of 30 seconds exceeded in. Bref que du bonheur. Et merci à toi pour tes explications et ta patience

Bonne continuation

Cordialement


Cette discussion est classée dans : objet, telnet, traitetabneighbor, throwneighborthreat, detruire


Répondre à ce message

Sujets en rapport avec ce message

Connexion telnet [ par Ark1 ] Bijour all,J'aimerais savoir si il est possible de se connecter a un serveur telnet, si oui pourrait on me donner une pitite liste des fonction a util Valeur retourné par un Objet de Type image??? [ par DJPGM ] C quoi la valeur que retourne une image comme dans l'exemple suivant??? Passage d'url trop long [ par matmax ] J ai un problème lorsque je veux passer un objet d'une page à une autre ou rappeller ma page avec un traitement different.J ai linéarisé mon objet mai probleme de classe en php [ par Elkaire ] Donc voila mon probleme!!dans une premiere page je rensegne les insances de mon objet. Une fois renseigné je peux réutiliser les instances cet objet d objet embed [ par elanspeech ] bonjour, je rencontre des problemes avec l'objet embed qui ne fonctionne pas systematiquement. son fonctionnement est aleatoire. le chemin vers le fic objet requis!! [ par saad123 ] salut!! g un p'tit probleme je cherche a faire un site de livraison de pizza mais g un prb pour calculer le montant d'une commande, j'utilise du javas Tuer un Processus Excel (objet COM) [ par nerikT ] Bonjour à tous !J'ai un grros problème.J'utilise un objet COM pour crere un fichier Excel, et à la fin du script, le processu est toujours en mémoire transferer une variable d'objet de page en page ?? [ par Arkko ] slt ... j'aimerais savoir si y'a un moyen de transferer une variable d'objet d'une page a un autre ???exemple:1.php:MaClasse = new Maclasse;?>2.php2.p Quand on parle de Classe [ par Tomcube ] C'est une question très vaste,On parle de plus en plus de programmation objet. Qui dit programmation objet dit classe. D'ailleurs, c'est fou le nombre Probleme avec serialize et unserialize [ par matou82 ] J'ai un objet que je serialize et passe en paramètre dans l'url d'un popup.Dans ce popup je le unserialize. Il s'agit d'un objet possédant une fonctio


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,654 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales