CLASSE CALENDRIER OPTIMISÉE POO

xque19 Messages postés 47 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 19 novembre 2006 - 9 juin 2006 à 17:44
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015 - 20 juin 2006 à 13:44
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/38032-classe-calendrier-optimisee-poo

kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
20 juin 2006 à 13:44
Non perso je trouve qu'il est bien ce code... c'est juste qu'un fonction aurait suffit plutot qu'un classe... .. .

et puis bon faudra m'excuser mais les mecs qui font encore des fonctions à l'heure actuelle c'est qu'ils ne savent pas dans quel objet les mettre


Ou alors tout simplement que ça ne sert à rien de mettre ça en classe... code orienter objet ne veut pas dire abandonner les fonction et faire des classe pour tout même pour un echo... les classes et les fonction sont complémentaire... elles n'ont pas le même but et la même utilitée... l'instanciation d'un objet coute en performance ça ne sert donc à rien d'en mettre à toutes les sauces là ou une fonction suffit... .. . ;o)

@ tchaOo°
ganjamannicoweb Messages postés 5 Date d'inscription samedi 29 avril 2006 Statut Membre Dernière intervention 21 mai 2008
19 juin 2006 à 22:42
et bien dire que je pensai rendre service en mettant à jour ce code :-(

be merci les gars c clair que je serai tenté de vouloir me prendre à aider ceux pour qui interface, classe, objet ne signifie pas encore grand chose....

et puis bon faudra m'excuser mais les mecs qui font encore des fonctions à l'heure actuelle c'est qu'ils ne savent pas dans quel objet les mettre (ndr : comprendre => come to back dans le code les gars trop lol)

bon sur ce ,
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
13 juin 2006 à 12:31
bah oui, c'est bien ce que je dis... une simple fonction aurait suffit...
il aurait pu faire une class date par exemple, même si ça n'aurait pas eu grand interet (et ça n'aurait pas apporté l'héritage, mais ça aurait été mieux...)... pour le reste, bah passer à php5, c'est important ;)
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
13 juin 2006 à 12:20
Hu ? J'en entend des belles tous les jours :)

"étant donné la forme en classe et l'utilisation de méthodes n'utilisant pas de echo ou print afin de garantir une stabilité des headers je penses qu'il est très difficile de contester que ce script est orienté objet."
Reste que l'expression "orientée objet" est un peu vague dans ton cas moi je trouve :)
Et je peux très bien utiliser du echo() ou du print() ou du header() ou du ce_que_tu_veux() dans une classe. Personne a dit que mettre du html dans une classe était malsain !

"entre nous, ça reste de l'objet de base" Appelons ca comme ca alors :)
"sans interface" Impossible, il tourne sous PHP4 :o
"sans héritage" Jvois pas comment il va pouvoir s'en sortir avec une classe comme ca pour faire de l'héritage !
"sans private, sans public" Pareil, PHP4 power ! =)
"sans surcharges" La aussi, jvois pas comment !
"ici, la class n'est qu'une grosse boiboite..." Oui, une grosse fonction aurait tout fait aussi bien :)

Ici, la classe tel-quel ne vaut pas grand chose.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
13 juin 2006 à 10:02
entre nous, ça reste de l'objet de base, sans interface, sans héritage, sans private, sans public, sans surcharges, bref, pas super super non plus... ici, la class n'est qu'une grosse boiboite...
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
13 juin 2006 à 05:57
n'utilisant pas de echo ou print afin de garantir une stabilité des headers je penses qu'il est très difficile de contester que ce script est orienté objet.


Je ne vois pas le rapport ni entre les header et l'aspect OO ni entre le header et les echo... quand c'est bien codé (je ne parle pas de la class) le $monObj->display() est fait au bon moment et n'interfère en rien avec les headers... .. . ;o)

@ tchaOo°
ganjamannicoweb Messages postés 5 Date d'inscription samedi 29 avril 2006 Statut Membre Dernière intervention 21 mai 2008
13 juin 2006 à 03:38
trop lol on laisses un code deux jours et hop de la lecture pour dix minutes ;-)
va falloir que je me remettes à la reprise de script utiles dits "exemples" trop lol

bon alors pour répondre un peu à tout le monde :

- orientation objet du script : étant donné la forme en classe et l'utilisation de méthodes n'utilisant pas de echo ou print afin de garantir une stabilité des headers je penses qu'il est très difficile de contester que ce script est orienté objet.
Je me permettrai de rajouter ayant utilisé ce code dans un dev que le tableau t_prop illustre clairement la beauté (enfin le début) de l'objet.

- le tableau permet pour le moment de gérer les langues françaises. Personnllement je n'étais pas parti pour d'un seul coup poster la classe parfaite mais je prendrai pour intégrer la possibilité de charger un autre tableau de libellés mois ce qui est en soi excellent ;-)

- concernant les optimisations de code désolé mais bon j'ai repris le script assez rapidement et il est vrai qu'étant le fonctionnement prouvé je n'ai pas trop parcouru l'algo plutot attardé sur la remise en forme OBJET lol du code

bon be n'hésitez pas à continuer cette discussion je viendrai mettre à jour ce script si j'en ai le temps ;-)
momoxe Messages postés 71 Date d'inscription jeudi 18 novembre 2004 Statut Membre Dernière intervention 12 août 2006
13 juin 2006 à 02:02
c'est vrai que...
@+
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
13 juin 2006 à 01:17
Bah tu fais deux méthodes... la méthode pour l'afficher et la méthode pour le récupérer... ou alors tu fais... .. .

function afficherAgenda($display = true)
{
...
if(!$display)
return $chaine_courante;

echo $chaine_courante;
}

@ tchaOo°
momoxe Messages postés 71 Date d'inscription jeudi 18 novembre 2004 Statut Membre Dernière intervention 12 août 2006
12 juin 2006 à 18:47
Kankrelune, c'est pas forcement le top le echo direct surtout si tu utilise un système de templates...
@+
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
11 juin 2006 à 19:08
print($ag->afficherAgenda());

tu aurais pu mettre le echo direct dans la méthode... c'est pas afficherAgenda() mais getAgenda()... .. .

@ tchaoO°
xque19 Messages postés 47 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 19 novembre 2006 1
11 juin 2006 à 18:51
Bonjour,

çà marche toujours pas, j'ai toujours l'erreur de timeout.
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
11 juin 2006 à 17:32
C'est où le "orientée objet" la dedand ?

J'arrive pas à voir :o
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
10 juin 2006 à 14:10
Pas testé mais de vu je me disais qu'il pourrait être pas mal de passer les mois sous forme de constante ou d'un tableau multidimensionel pour avoir une gestion multilanguage... .. .

Concernant l'optimisation remplacer les doubles quotes par des simple quotes comme l'a dit coucou et remplacer...

for($i=0;$i<(7-$this->t_prop['premierJour']);$i++)

par

for($i=0,$limit=(7-$this->t_prop['premierJour']);$i<$limit;$i++)

tu peux aussi remplacer...

$i2=0;
for($i = (7-$this->t_prop['premierJour']);$i < $this->t_prop['nombreJour'];$i++)
{
if($i2 == 7)
{
$this->autreLigne .= "</tr><tr>";
$i2 = 0;
}
$this->autreLigne .= "<td>".($i+1)."</td>";
$i2++;
}

par...

for($i=(7-$this->t_prop['premierJour']),$i2=0;$i<$this->t_prop['nombreJour'];$i2++)
{
if($i2 == 7)
{
$this->autreLigne .= '</tr><tr>';
$i2 = 0;
}
$this->autreLigne .= '<td>'.++$i.'</td>';
}

Mais bon... ça change pas grand chose, pour ne pas dire rien du tout, quand à la façon dont ça s'execute... .. . ;o)

Voili voilou... .. .

@ tchaOo°
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
10 juin 2006 à 00:17
remplace <? par <?php

et ne considère pas qu'un programme qui contient des " est optimisé, les ' sont beaucoup plus rapides...
xque19 Messages postés 47 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 19 novembre 2006 1
9 juin 2006 à 17:44
BOnjour,

Je viens de tester, çà ne marche pas, çà charge pendant un moment et çà me met l'erreur:
Fatal error: Maximum execution time of 30 seconds exceeded in W:\var\www\Mp3Center\agenda.class.php on line 60

++
Rejoignez-nous