[PHP5] NOTIMEOUT PACKAGE

Signaler
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
-
Messages postés
89
Date d'inscription
samedi 25 mai 2002
Statut
Membre
Dernière intervention
5 décembre 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/39866-php5-notimeout-package

Messages postés
89
Date d'inscription
samedi 25 mai 2002
Statut
Membre
Dernière intervention
5 décembre 2009

Ola
Ca peut fonctionner pour la génération d'un mega fichier zip ?
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
21
Oui tu as raison, mais au moment où j'ai codé cette classe, je voulais voir ce que cela donnait de gérer les exceptions interception comprise dans la classe.
En fait, ça ne sert à rien si ce n'est à perdre des ressources pour rien...faudra que je recode ça.
Alakhnor => l'utilisation de ces classes passent nécessairement par une revisite de ton code. Il faut le voir autrement : la boucle est gérée par du javascript, c'est tout.
Poutr php4, tu dois pouvoir réécrire la classe php...à priori. Rien de vital ne tire partie des spécificités PHP5.
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Etrange, je ne l'aurais pas codé comme ca cette classe.
Enfin si, mais au niveau des try{}catch() non.


J'aurais dégagé les try{}catch() des méthodes pour commencer.
Théoriquement, le try{}catch() se fait lors d'un appel de méthode et pas dans la méthode elle même. Sauf si c'est pour appeler une méthodes privée/protégée.

Ex :
# public function __set ($sType, $sVal) {
# try {
# if (!array_key_exists ($sType, $this -> aProps)) {
# throw new Exception ($sType.' is not a valid property');
# }
# } catch (Exception $e) {
# echo $e -> getMessage ();
# }

Ce que j'aurais fait :
public function __set($var, $val) {
if ( !array_key_exists($var, $this -> aProps) )
throw new GetSetException($var, 'set');
// suite...
}

Et quand tu appèles ta classe de l'extérieur :
try {
$maclasse = new noTimeOut;
$maclasse->timeout = 360;
// etc..
} catch ( GetSetException $gs ) {
die ( $gs->getMessage() );
} catch ( Exception $e ) {
die ( $e->getMessage() );
}

Par contre (voila la suite ^^) :
#public function flushMe ($aWork = null) {
# try {
# switch ($this -> aProps['TYPE']) {
# case 'DB':
# if (false === self::isNull ($this -> aProps['DB'], $this -> aProps['HOST'], $this -> aProps['LOGIN'], $this -> aProps['PWD'], $this -> aProps['QUERY'], $this -> aProps['DBSERVER'], $this -> aProps['START'], $this -> aProps['STEP'])) {
# throw new Exception ('DB properties have not been fully defined');
# }
# $mTmp = $this -> getDB ();
# break;

switch ($this -> aProps['TYPE']) {
case 'DB':
if ( !self::isNull ($this -> aProps['DB'], $this -> aProps['HOST'], $this -> aProps['LOGIN'], $this -> aProps['PWD'], $this -> aProps['QUERY'], $this -> aProps['DBSERVER'], $this -> aProps['START'], $this -> aProps['STEP']) )
throw new IssetException('DB');
try {
$mTmp = $this -> getDB ();
} catch ( Exception $e ) {
die ( $e->getMessage() );
}
break;
// Etc...

try {
$maclasse = new noTimeOut;
$maclasse->timeout = 360;
$maclass->flushMe();
// etc..
} catch ( GetSetException $gsE ) {
die ( $gsE->getMessage() );
} catch ( IssetException $iE ) {
die ( $iE->getMessage() );
} catch ( Exception $e ) {
die ( $e->getMessage() );
}

Voila comment je l'aurais joué. J'aurais étendu la classe d'exception pour chaque cas :)
Autrement, ton try{}catch() ne sert pas à grand chose dans une classe :)
Messages postés
2
Date d'inscription
dimanche 4 mars 2007
Statut
Membre
Dernière intervention
5 mai 2007

J'aimerais pouvoir utiliser ces classes. Malheureusement, je me heurte à 2 problèmes:
- je dois développer en php4
- mon programme est une boucle effectuant un certains nombre de traitements incluant des requêtes vers FlickR calculées par le reste. Je ne vois pas trop comment déporter des traitements et les traiter dans la classe php.
Afficher les 45 commentaires