mais c'est fermé. Sans passerelle de type 'gmail' en python ou php, tes mails sont confinés sur leur disque jusqu'a ce que tu atteingne ton quota.
- la corbeille se rempli, il faut de temps a autre penser a la vider : Trash / Delete forever
- le systeme de marquage plutot que de placer les mails dans des dossier est pratique et efficasse, un meme mail peut avoir plusieurs marques (linux, perso, maison, job, poo ...)
- l'anti spam marche bien et je n'ai pas a m'en occuper, c'est tout bénef pour passer du temps a faire autre chose que trier ses mails,
- je suppose que le classement de SPAM bénéficie d'un apprentissane local et peut-etre collectif. Dans le dossier SPAM tu peux decider qu'un mail n'en n'est pas un.
- l'interface est motorisée par javascript et le refraichissement se fait en background. Il s'agit d'un client javascript lourd tournant sur le navigateur. C'est la premiere fois que je vois cela. C'est tres réactif comme systeme. C'est développé par une société tierse. Quand tu clique n'importe ou, tu concerves tout le contexte de l'application et tu va télécharger sur le site distant uniquement les infos nécessaires. La page est mise a jour d'une tres jolie facon.
- par défaut les mails sont visibles dans "Inbox". Quand tu ne veux plus les voir, tu les selectionne et tu "Archive".
- il y a un auto-apprentissage des adresses email. Et via javascript, quand tu saisie les premiere lettre d'une adresse, il y a un menu qui s'affiche. Tu peux valider l'adresse ou continuer a saisir ce que tu desires. Encore tres fort pour du javascript.
- si tu as une bonne connexion, tu peux afficher des listes de 100 éléments. C'est plus sympa que je paginer sur 5 ...
- le mecanisme de filtrage n'est pas tres riche mais suffisant,
- tu peux poser un cokkie pour ne plus avoir a saisir ton mdp pdt 20j,
en négatif :
- je n'ai pas trouvé un mécanisme qui permette une recherche pondérée par la taille des message.
- le fait que tu ne puisse pas exporter tes messages,
- tu ne peux pas nom plus poller une autre boite aux lettre externe, t'es obligée de passer par un fetchmail externe, mais bon laisser ses mdp sur google c'est pas le top hein !
- interface en english, pas encore internationnalisée, ca peut genrer certains.
"Le spam est une nuisance pour des millions d'Américains ..."
et pour les autres personnes du monde qui ne sont pas dans le nombril de la planete, ca donne quoi le spam ? heuu, je crois que moi aussi, ca me hérisse les cheveux !
ces américains, ils sont encore au centre du monde, meme les journalistes ! d'ailleurs les élections sont bien la pour nous le rapeller.
actuellement, nous sommes hébergés sur une pauvre machine sur un petit brin adsl a 128k. Autant dire que ca rame, mais on s'amuse ...
faudrait que je demande a mon FAI s'il veut pas se lancer dans l'hebergement de logiciels libres ... vu le mon qu'il a choisi, les technologies qu'il utilise, ce serait difficile de sa part de refuser un tel projet, sauf que ca demande un admin pour cette tache.
tiens, voila quelqu'un qui assimile le terme encapsulation de la meme maniere que moi et pas dans le sens C++ !
http://www.tonymarston.net/php-mysql/good-bad-oop.html(...)
# 'Encapsulation' means that the class must define all the properties and methods which are common to all objects of that class. All those properties and methods must exist inside a single container or 'capsule', and must not be distributed across multiple locations.
Reference: encapsulation The localization of knowledge within a module. Because objects encapsulate data and implementation, the user of an object can view the object as a black box that provides services. Instance variables and methods can be added, deleted, or changed, but as long as the services provided by the object remain the same, code that uses the object can continue to use it without being rewritten.
juste dessous, il fait bien le distingo : encapsulation - protection de l'implémentation ...
c'est encore 3 fois rien, donc c'est tout au plus un ensemble de classes PHP a exploiter plutot qu'une application.
comme tout logiciel que je réalise, il est Free, enfin il le sera. Si tu veux un snapshot, par curiosité, je peux m'arranger ou plutot on peut s'arranger. Sinon, je fréquente irc://irc.freenode.org/#wirelessfr, pseudo _marc_
j'ai corrigé la premiere methode, et maintenant, c'est OK, j'ai 2 formules completement différentes qui donnent sensiblement le meme résultat a moins de 1cm d'ecart, via 2 formules différentes.
$cugnaux = new Point(1.367, 43.533);
$seysses = new Point(1.317, 43.500);
je suis en train de réaliser un système intéractif de cartographie tres simplifiée pour présenter des vue de réseau wifi.
j'ai besoin de :
1 - représenter une vue 2D, meme approximative ; j'ai deja réalisé quelque classes qui me permettent d'afficher (sans projection) les coordonnées géographiques sur une image générée a la volée.
2- j'ai aussi créé la notion de lien.
3 - la carte est en phase de devenir intéractive. Les objets affichés vont bientot réagir aux intéractions.
j'aurais besoin d'informations complémentaires :
1 - un algorythme permettant de trouver les nodes les plus proches. Je pensais creer un arbre de type b-tree. La fonction de comparaison pour insersion dans les noeuds et sous-noeuds étant tout simplement la distance.
Il suffit de comparer recursivement la distance, a gauche, a droite et de rentrer judicieusement dnas les sous-arbres.
Par la suite, pour détecter les voisin, il suffit de parcourir l'arbre.
J'espere que cet algo tient la route, je n'en n'ai pas la certitude, mais c'est intéressant de voir ... Je suppose qu'il doit exister d'autres methodes avec un decoupage par zone.
2 - j'aimerai bien evaluer les distances en kilometre et metres, meme sans une grande précision. Pour cela j'ai trouvé quelque sites :
étant donné que les distances utilisées dans le cadre de ce projet sont tres courtes, la courbure de la terre ne devrait pas avoir une importance significative. Aussi je pensais calculer la distance en applicant le théoreme de Pythagore, connaissance le rayon moyen de la terre, ca devrait suffir. Mais les resultats obtenus ne sont pas statisfaisants : trop grande erreur par rapport a des valeurs de reference trouvées sur le net.
Dans mon algo, j'ai défini une classe Terre avec un rayon de 6366 (lion1906). J'en déduit les dimensions d'un degré d'arc (a l'equateur) : 111km. Il est plus petit sous nos latitudes : reduit de cos(latitude). A partir de ces données, une simple triangulation avec un triangle rectangle (donc Pythagore) devrait suffir, hors, j'obtient des décalage de 25 à 50%.
ou est mon errreur ?
voici mes 2 methodes php :
function distance(){
# théoreme de pythagore devrait suffire sur des petites distances !
$width = ($this->p1->x - $this->p2->x);
$height = ($this->p1->y - $this->p2->y);
# manque cos(latitude)
return ( $this->terre->degre * sqrt(pow($width, 2) + pow($height,2)));
}
tu confonds encapsulation et protection des données membres. Enfin peut-etre que tu as raison et que je suis le "hors norme". Souvent je constate une grande facon de voir les choses et dans vocabulaire employé en fonction de les langages utilisés par les gens. Je constate que bien des gens pensent C++ au lieu de penser a un niveau un peu plus élevé, c'est a dire le niveau objet.
voici un extrait de wikipedia qui a tendance a te donner raison :
L'encapsulation pour les développeurs en informatique est l'idée de cacher l'information contenu dans un objet et de ne proposer que des méthodes de manipulation de cet objet, ainsi les propriété et axiomes associés au informations contenue dans l'objet seront assurés/validés par les méthodes de l'objet et ne seront plus de la responsabilité de l'utilisateur extérieur.
L'utilisateur extérieur ne pourra pas modifier directement l'information et risquer de mettre en péril les axiomes et les propriétés comportementales de l'objet.
cependant, dans un langage permissif tel que php(4), etant donné que la notion de contrat n'est plus formalisée par le langage, c'est au développeur de veiller au grain.
c'est un peu comme la notion de methode virtuelle ... en php, tout methode est dite virtuelle dans le sens ou elle est surchageable et a ligature dynamique (si je me plante pas dans la terminologie).
> La première est la persistance des processsus coté serveurs.
comment est-ce qu'on fait :
- pour garder le meme processus utilisateur au fil des connexions,
- sans pour autant saturer le serveur en memoire alloue
- et ou processus ou thread systeme.
sur un serveur peu chargé tout réside en memoire,cc'est parfait, il y a unicité enttre process et contexte utilisateur
dans un contexte plus chargé, les sessions sont certainement déchargée sur le disque non ? du coup, cela se raproche etrangement de ce qui se fait de maniere un peu moins transparent en php. Mais ce n'est pas trop complexe a gerer tout de meme une session.
laissez moi rire, les classes php (4 et 5) sont assez complete pour pouvoir réaliser de jolis framework objet, alors arretez donc avec la soit disante supériorité de java et C++. Avec php tout est beaucoup plus dynamique et rapide a developper.
cepandant, dans un contexte contractuel, php4 n'est pas la panacée puisqu'on peut acceder aux membres de la classe.
j'ai meme entendu parler d'interpréteur C++, Ada, ASP, .NET et du support de DirectX, des dll Windows, de l'active X ; cepandant pour ce qui est du support de XHTML, il faudrra encore attendre un peu ..
ben, oui, mais mon fils essaie de faire comme son papa. Il se met a php, il essaie de bricoler des scripts php, et apres pour faire encore mieux, il met le tout dans des classes, des jolies classes php.
pour l'instant, il a réalisé (avec mon aide) :
- le jeu des allumettes,
- le morpion (en cours de finition)
php, ca peut a la fois etre crade, ou propre suivant les compétances, le temps, les gouts de chacun.
j'ai lu sur fr.comp.lang.php que la doc en ligne, c'était horrible et que ca pourrissait le code. A chacun son avis.
cependant il est vrai que parfois les imbrications de classes ne sont pas triviales.
souvent, mes applis ont cette allure :
$appli = new MonAppli()
$appli->run();
et le main se limite a cela :
- pas de variable globale, enfin si une seule : $appli
- pas de polution de l'espace de nommage (c'est pas trop le fort de php, alors autant aller dans le bon sens)
- toutes les classes sont surclassables.
je m'efforce de realiser des classes qui ont les caractéristiques suivantes :
- plus faciles a hériter et surcharger que a instancier avec des milliers de parametres ; ca simplifie largement l'utilisation, mais peut-etre pas la lecture,
- des methode courtes, tres courtes meme ; je parle de méthode atomique dans le sens ou elles ne font qu'une seule chose et bien. Une methode qui fait plusieurs choses devrait etre sindée pour faciliter la surchage via l'héritage,
- ne pouvant pas encore utiliser la notion d'interface de php5 commune a Java, je fais des classes type 'interface' dont j'hérite. Chaque classe apportant par famille son lot de fonctionnalités (services).
[^] # Re: Whaaaaaaaaaaaaaa
Posté par Marc Quinton . En réponse au journal Dave BRUBECK à Lille. Évalué à 1.
# java ...
Posté par Marc Quinton . En réponse au journal Chat avec P. Nègre. Évalué à 4.
[^] # Re: Avis sur GMail ?
Posté par Marc Quinton . En réponse au journal invitation gmail. Évalué à 2.
mais c'est fermé. Sans passerelle de type 'gmail' en python ou php, tes mails sont confinés sur leur disque jusqu'a ce que tu atteingne ton quota.
- la corbeille se rempli, il faut de temps a autre penser a la vider : Trash / Delete forever
- le systeme de marquage plutot que de placer les mails dans des dossier est pratique et efficasse, un meme mail peut avoir plusieurs marques (linux, perso, maison, job, poo ...)
- l'anti spam marche bien et je n'ai pas a m'en occuper, c'est tout bénef pour passer du temps a faire autre chose que trier ses mails,
- je suppose que le classement de SPAM bénéficie d'un apprentissane local et peut-etre collectif. Dans le dossier SPAM tu peux decider qu'un mail n'en n'est pas un.
- l'interface est motorisée par javascript et le refraichissement se fait en background. Il s'agit d'un client javascript lourd tournant sur le navigateur. C'est la premiere fois que je vois cela. C'est tres réactif comme systeme. C'est développé par une société tierse. Quand tu clique n'importe ou, tu concerves tout le contexte de l'application et tu va télécharger sur le site distant uniquement les infos nécessaires. La page est mise a jour d'une tres jolie facon.
- par défaut les mails sont visibles dans "Inbox". Quand tu ne veux plus les voir, tu les selectionne et tu "Archive".
- il y a un auto-apprentissage des adresses email. Et via javascript, quand tu saisie les premiere lettre d'une adresse, il y a un menu qui s'affiche. Tu peux valider l'adresse ou continuer a saisir ce que tu desires. Encore tres fort pour du javascript.
- si tu as une bonne connexion, tu peux afficher des listes de 100 éléments. C'est plus sympa que je paginer sur 5 ...
- le mecanisme de filtrage n'est pas tres riche mais suffisant,
- tu peux poser un cokkie pour ne plus avoir a saisir ton mdp pdt 20j,
en négatif :
- je n'ai pas trouvé un mécanisme qui permette une recherche pondérée par la taille des message.
- le fait que tu ne puisse pas exporter tes messages,
- tu ne peux pas nom plus poller une autre boite aux lettre externe, t'es obligée de passer par un fetchmail externe, mais bon laisser ses mdp sur google c'est pas le top hein !
- interface en english, pas encore internationnalisée, ca peut genrer certains.
- (c'est tout je crois)
# ou est le centre du monde a votre avis ?
Posté par Marc Quinton . En réponse au journal neuf quoi ?. Évalué à 0.
et pour les autres personnes du monde qui ne sont pas dans le nombril de la planete, ca donne quoi le spam ? heuu, je crois que moi aussi, ca me hérisse les cheveux !
ces américains, ils sont encore au centre du monde, meme les journalistes ! d'ailleurs les élections sont bien la pour nous le rapeller.
[^] # Re: Marc
Posté par Marc Quinton . En réponse au journal invitation gmail. Évalué à 1.
[^] # Re: 4 Comptes à donner!
Posté par Marc Quinton . En réponse au journal invitation gmail. Évalué à 2.
# la pool-gmail est vide !
Posté par Marc Quinton . En réponse au journal invitation gmail. Évalué à 1.
# hébergement subversion
Posté par Marc Quinton . En réponse au journal Cherche hébergeur. Évalué à 1.
http://toulouse.sans.fil.free.fr/(...) (voir aussi API).
actuellement, nous sommes hébergés sur une pauvre machine sur un petit brin adsl a 128k. Autant dire que ca rame, mais on s'amuse ...
faudrait que je demande a mon FAI s'il veut pas se lancer dans l'hebergement de logiciels libres ... vu le mon qu'il a choisi, les technologies qu'il utilise, ce serait difficile de sa part de refuser un tel projet, sauf que ca demande un admin pour cette tache.
[^] # Re: Marrant, ça...
Posté par Marc Quinton . En réponse au journal Apache/PHP et J2EE. Évalué à 1.
http://www.tonymarston.net/php-mysql/good-bad-oop.html(...)
# 'Encapsulation' means that the class must define all the properties and methods which are common to all objects of that class. All those properties and methods must exist inside a single container or 'capsule', and must not be distributed across multiple locations.
Reference: encapsulation The localization of knowledge within a module. Because objects encapsulate data and implementation, the user of an object can view the object as a black box that provides services. Instance variables and methods can be added, deleted, or changed, but as long as the services provided by the object remain the same, code that uses the object can continue to use it without being rewritten.
juste dessous, il fait bien le distingo : encapsulation - protection de l'implémentation ...
# bravo !
Posté par Marc Quinton . En réponse au journal [long] Vers du Libre embarqué qui s'assume. Évalué à 1.
[^] # Re: établissement ou perso ?
Posté par Marc Quinton . En réponse au journal application php pour notes d'élèves. Évalué à 1.
par specs j'attends principalement les tables et souvent des tables SQL se deduisent facilement les actions.
voici un extrait possible :
table eleve
- id
- nom,
- prenom,
- classe_id
table matiere
- id,
- nom
- description,
table classe
- id,
- nom,
- description,
...
# nom a preciser ...
table devoir (ou exam, ou exercice ...)
- id,
- id_matiere,
- date,
- commentaires,
# notes par eleve pour un devoir donné
table devoir_eleve
- id
- id_devoir,
- id_eleve,
- note
il faudrait peut-etre implémenter la notion d'année de trimestre, mais c pas forcément dans une table ... a réfléchir ...
[^] # Re: Merci
Posté par Marc Quinton . En réponse au journal le dictionnaire des algorithmes. Évalué à 2.
[^] # Re: cartographie en php pour projet Wifi
Posté par Marc Quinton . En réponse à la dépêche La spatialisation libre avance : tour d'horizon. Évalué à 0.
# un point c'est tout !
Posté par Marc Quinton . En réponse à la dépêche La spatialisation libre avance : tour d'horizon. Évalué à 1.
http://www.upct.org/(...)
(merci Julien)
[^] # Re: cartographie en php pour projet Wifi
Posté par Marc Quinton . En réponse à la dépêche La spatialisation libre avance : tour d'horizon. Évalué à 2.
http://toulouse.sans.fil.free.fr/(...)
les sources, ne sont pas encore dispo.
[^] # Re: cartographie en php pour projet Wifi
Posté par Marc Quinton . En réponse à la dépêche La spatialisation libre avance : tour d'horizon. Évalué à 1.
comme tout logiciel que je réalise, il est Free, enfin il le sera. Si tu veux un snapshot, par curiosité, je peux m'arranger ou plutot on peut s'arranger. Sinon, je fréquente irc://irc.freenode.org/#wirelessfr, pseudo _marc_
[^] # Re: cartographie en php pour projet Wifi
Posté par Marc Quinton . En réponse à la dépêche La spatialisation libre avance : tour d'horizon. Évalué à 3.
$cugnaux = new Point(1.367, 43.533);
$seysses = new Point(1.317, 43.500);
$seg = new WifiLink($cugnaux, $seysses);
echo 'distance = ' . $seg->distance() . "\n";
echo 'distance ortho = ' . $seg->distance_orthodromique() . "\n";
resultat :
distance = 5.4473367205683
distance ortho = 5.4473365237337
la methode (pour ceux que ca intéresse) :
function distance(){
$cos = cos(deg2rad(($this->p1->y+$this->p2->y)/2));
$width = ($this->p1->x - $this->p2->x) * $this->terre->degre * $cos;
$height = ($this->p1->y - $this->p2->y) * $this->terre->degre;
return ( sqrt(pow($width, 2) + pow($height,2)));
}
pour info, $this->terre->degre = rayon_terre(km) * 2PI / 360 =~ 111 km
# cartographie en php pour projet Wifi
Posté par Marc Quinton . En réponse à la dépêche La spatialisation libre avance : tour d'horizon. Évalué à 3.
je suis en train de réaliser un système intéractif de cartographie tres simplifiée pour présenter des vue de réseau wifi.
j'ai besoin de :
1 - représenter une vue 2D, meme approximative ; j'ai deja réalisé quelque classes qui me permettent d'afficher (sans projection) les coordonnées géographiques sur une image générée a la volée.
2- j'ai aussi créé la notion de lien.
3 - la carte est en phase de devenir intéractive. Les objets affichés vont bientot réagir aux intéractions.
j'aurais besoin d'informations complémentaires :
1 - un algorythme permettant de trouver les nodes les plus proches. Je pensais creer un arbre de type b-tree. La fonction de comparaison pour insersion dans les noeuds et sous-noeuds étant tout simplement la distance.
Il suffit de comparer recursivement la distance, a gauche, a droite et de rentrer judicieusement dnas les sous-arbres.
Par la suite, pour détecter les voisin, il suffit de parcourir l'arbre.
J'espere que cet algo tient la route, je n'en n'ai pas la certitude, mais c'est intéressant de voir ... Je suppose qu'il doit exister d'autres methodes avec un decoupage par zone.
2 - j'aimerai bien evaluer les distances en kilometre et metres, meme sans une grande précision. Pour cela j'ai trouvé quelque sites :
http://www.lion1906.com/Pages/Orthodromie.html(...)
http://www.ign.fr/telechargement/education/fiches/geodesie/coordonn(...)
étant donné que les distances utilisées dans le cadre de ce projet sont tres courtes, la courbure de la terre ne devrait pas avoir une importance significative. Aussi je pensais calculer la distance en applicant le théoreme de Pythagore, connaissance le rayon moyen de la terre, ca devrait suffir. Mais les resultats obtenus ne sont pas statisfaisants : trop grande erreur par rapport a des valeurs de reference trouvées sur le net.
Dans mon algo, j'ai défini une classe Terre avec un rayon de 6366 (lion1906). J'en déduit les dimensions d'un degré d'arc (a l'equateur) : 111km. Il est plus petit sous nos latitudes : reduit de cos(latitude). A partir de ces données, une simple triangulation avec un triangle rectangle (donc Pythagore) devrait suffir, hors, j'obtient des décalage de 25 à 50%.
ou est mon errreur ?
voici mes 2 methodes php :
function distance(){
# théoreme de pythagore devrait suffire sur des petites distances !
$width = ($this->p1->x - $this->p2->x);
$height = ($this->p1->y - $this->p2->y);
# manque cos(latitude)
return ( $this->terre->degre * sqrt(pow($width, 2) + pow($height,2)));
}
# http://www.lion1906.com/Pages/OrthodromieCap.html(...)
function distance_orthodromique(){
$LatA = deg2rad($this->p1->latitude());
$LatB = deg2rad($this->p2->latitude());
$LongA = deg2rad($this->p1->longitude());
$LongB = deg2rad($this->p2->longitude());
return 6366 * acos(cos($LatA) * cos($LatB) * cos($LongB-$LongA)+sin($LatA) * sin($LatB));
}
[^] # Re: PS
Posté par Marc Quinton . En réponse au journal Apache/PHP et J2EE. Évalué à 0.
c'est pour cela que je fais confiance a Linux et php ;-)
[^] # Re: Marrant, ça...
Posté par Marc Quinton . En réponse au journal Apache/PHP et J2EE. Évalué à 2.
voici un extrait de wikipedia qui a tendance a te donner raison :
L'encapsulation pour les développeurs en informatique est l'idée de cacher l'information contenu dans un objet et de ne proposer que des méthodes de manipulation de cet objet, ainsi les propriété et axiomes associés au informations contenue dans l'objet seront assurés/validés par les méthodes de l'objet et ne seront plus de la responsabilité de l'utilisateur extérieur.
L'utilisateur extérieur ne pourra pas modifier directement l'information et risquer de mettre en péril les axiomes et les propriétés comportementales de l'objet.
cependant, dans un langage permissif tel que php(4), etant donné que la notion de contrat n'est plus formalisée par le langage, c'est au développeur de veiller au grain.
c'est un peu comme la notion de methode virtuelle ... en php, tout methode est dite virtuelle dans le sens ou elle est surchageable et a ligature dynamique (si je me plante pas dans la terminologie).
[^] # Re: PS
Posté par Marc Quinton . En réponse au journal Apache/PHP et J2EE. Évalué à 2.
comment est-ce qu'on fait :
- pour garder le meme processus utilisateur au fil des connexions,
- sans pour autant saturer le serveur en memoire alloue
- et ou processus ou thread systeme.
sur un serveur peu chargé tout réside en memoire,cc'est parfait, il y a unicité enttre process et contexte utilisateur
dans un contexte plus chargé, les sessions sont certainement déchargée sur le disque non ? du coup, cela se raproche etrangement de ce qui se fait de maniere un peu moins transparent en php. Mais ce n'est pas trop complexe a gerer tout de meme une session.
[^] # Re: Marrant, ça...
Posté par Marc Quinton . En réponse au journal Apache/PHP et J2EE. Évalué à -1.
laissez moi rire, les classes php (4 et 5) sont assez complete pour pouvoir réaliser de jolis framework objet, alors arretez donc avec la soit disante supériorité de java et C++. Avec php tout est beaucoup plus dynamique et rapide a developper.
cepandant, dans un contexte contractuel, php4 n'est pas la panacée puisqu'on peut acceder aux membres de la classe.
[^] # Re: Mozilla 2
Posté par Marc Quinton . En réponse au journal Plugin python pour navigateur web. Évalué à 1.
---->[] ...
[^] # Re: Tiens, toi aussi ?
Posté par Marc Quinton . En réponse au journal un registrar, hébergeur qui fait du SPAM ?. Évalué à 1.
j'ai vu ce matin des tas de sites en rapport avec XXXXXX.
quel est le lien avec altitudetelecom.fr ?
[^] # Re: Bonne idée...
Posté par Marc Quinton . En réponse à la dépêche Présentation de chrono-site et de ses modules. Évalué à 7.
pour l'instant, il a réalisé (avec mon aide) :
- le jeu des allumettes,
- le morpion (en cours de finition)
php, ca peut a la fois etre crade, ou propre suivant les compétances, le temps, les gouts de chacun.
j'ai lu sur fr.comp.lang.php que la doc en ligne, c'était horrible et que ca pourrissait le code. A chacun son avis.
cependant il est vrai que parfois les imbrications de classes ne sont pas triviales.
souvent, mes applis ont cette allure :
$appli = new MonAppli()
$appli->run();
et le main se limite a cela :
- pas de variable globale, enfin si une seule : $appli
- pas de polution de l'espace de nommage (c'est pas trop le fort de php, alors autant aller dans le bon sens)
- toutes les classes sont surclassables.
je m'efforce de realiser des classes qui ont les caractéristiques suivantes :
- plus faciles a hériter et surcharger que a instancier avec des milliers de parametres ; ca simplifie largement l'utilisation, mais peut-etre pas la lecture,
- des methode courtes, tres courtes meme ; je parle de méthode atomique dans le sens ou elles ne font qu'une seule chose et bien. Une methode qui fait plusieurs choses devrait etre sindée pour faciliter la surchage via l'héritage,
- ne pouvant pas encore utiliser la notion d'interface de php5 commune a Java, je fais des classes type 'interface' dont j'hérite. Chaque classe apportant par famille son lot de fonctionnalités (services).