begin process at 2012 02 15 23:09:32
  Trouver un code source :
 
dans
 

34 commentaire(s) de originalcompo sur des sources sur phpcs

Déposé sur My.exception

Bonjour,
ce script me plait beaucoup !
Je ne l'ais pas testé, mais il me semble que si l'erreur survient disons en ligne 3 d'un script php, et que l'on a décidé d'afficher 10 lignes, $start va avoir la valeur -2 et $array[$i] va planter.

Sinon, très bien !
Posté le : 06/09/2010 09:11:01

Déposé sur Débogage d'un code php (suivit des variables)

Je découvre HEREDOC, donc voilà:

je n'ai pas réussi à faire de concaténation de variable {$JS.$CSS}, et PHP_EOL est ignoré et affiché tel quel (pas anormal, puisqu'avec HEREDOC il suffit de sauter la ligne !)

J'ai finalement réussi à obtenir ce que je voulais (et c'est vrai que c'est mieux) en faisant ainsi:

    $this->BEGIN =
<<<BEGIN
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
  <TITLE>DEBUG</TITLE>
  <meta name='author' content='OriginalCompo' />
  <meta name='owner' content='Jean-Pierre Aguado' />
  <meta name='Debug unit for PHP 5' content='Debug unit for PHP 5' />
  <meta name='keywords' content='PHP5, Debug' />

{$JS}

{$CSS}
</HEAD>
<BODY>
BEGIN;
Posté le : 15/08/2010 23:11:41

Déposé sur Débogage d'un code php (suivit des variables)

oups, j'ai oublié dans les nouveautés la possibilité de ne créer ou mettre à jour le fichier de trace que lorsqu'on le désire grace à la méthode set_UpdateTrace($booleen)
Ex
$instance_ocDEBUG->set_UpdateTrace(false);
...
$instance_ocDEBUG->set_UpdateTrace(true);  // à mettre avant la fin du script à deboguer
Posté le : 14/08/2010 19:47:50

Déposé sur Débogage d'un code php (suivit des variables)

Merci Delphiprog pour les commentaires.

__clone : je vais suivre le conseil. (Comme c'est une classe pour debuguer, je suis parti
du principe que l'utilisateur n'a aucun interet à essayer de faire des trucs bizarres, comme cloner cette classe, sauf s'il veut volontairement écraser ou planter ses résultats. Pour être totalemnt franc, j'avais aussi zappé cette fonctionnalité... je reviens tout juste à la programmation php !)

css: le probleme comme j'y fais allusion dans le code est que si on debogue plusieurs pages se trouvant dans des dossiers/chemins différents, il faut prendre en compte tous les
chemins, et les changer à chaque fois que l'on change de projet. Le fait de l'insérer dans le head fait que l'on n'a pas à toucher au source de la classe (moins de travail donc).
J'avais initialement externalisé le js et le css, pour revenir à cette dernière version qui est plus pratique. (De plus le css est spécifique à l'affichage du débogage, et n'est pas sensé évoluer ni être utilisé ailleurs).
Posté le : 14/08/2010 19:20:00

Déposé sur Fonction qui génère un code grâce à l'ortographe et la pronon...

remplacéES (pardon pour l'orthographe)
Posté le : 22/06/2009 14:35:18

Déposé sur Fonction qui génère un code grâce à l'ortographe et la pronon...

Juste une remarque: les 36 premières lignes du "switch($ch){case '0':$mcar.='00';break; ..."
peuvent être remplacé par:

  if (($ch>='0') && ($ch<='9'))
    $mcar .= '0'.$ch;
  elseif (($ch>='a') && ($ch<='z'))
    $mcar .= ord($ch)-87;

Cordialement
Posté le : 22/06/2009 14:34:12

Déposé sur Histogramme en php avec gd. programmation objet

Salut,

Pour le "serie 1", "serie 2"... les valeurs sont gérés dans le init de l'objet, et stockées dans "legende"

La 1ère version de cette classe d'histogramme utilisait des balises <div>, et j'utilisais le champ "legende" dans la propriété "alt" de la balise <div>.

En gros, l'info apparaissait lorsqu'on passait la souris sur une barre (il y avait le nom de la série suivi de la valeur entre parenthèses)

Dans la 2ième version qui est ici, j'ai ré-utilisé un tronc commun objet, mais je n'ai effectivement pas géré cette valeur, donc tu as parfaitement raison, ca ne sert à rien, je ne m'en étais pas rendu compte d'ailleurs

PS: les 2 versions du code se trouvent sur mon site,
http://mywebdev.free.fr/PHP/index.php
Posté le : 21/02/2008 11:12:57

Déposé sur Histogramme en php avec gd. programmation objet

On peut quand même trouver des avantages à l'utilisation d'une classe sur une simple fonction:

Si on met de coté la partie OO, et qu'on se consacre à ce que sait faire PHP 4, la classe en tant que "structure" est plus pratique ne serais-ce que parcequ'elle permet de saisir les paramètres de manière plus intuitive, pourvu qu'on lui donne des noms suffisement parlants.

En effet, pour appeler une fonction de 10 parametres , il faut se rappeler l'ordre, etc...
Si ces paramètres sont des proprietes d'une classe, c'est plus parlant et plus joli !

Sans compter que pour dessiner, il faut une fonction principale, ok, mais qui en appelle quelques autres: si je mets tous dans une seule procedure, je ne peux plus re-utiliser la partie commune à la gestion de l'histo en css et l'histo en GD, et je dois tout re-ecrire (copier coller, si bug trouve corriger en 2 endroits...).
Donc plusieurs fonctions avec encore passage de plein de parametres...

Bref, la classe, c'est plus "class" ;-)
Posté le : 04/07/2005 13:38:44

Déposé sur Histogramme en php avec gd. programmation objet

C'est vrai qu'on ne voit pas les choses du même point de vue:
"une class chat héréditaire de la class animaux..."

Moi je suis partie du principe qu'un Histogramme, c'etait plusieurs listes de points, et qu'une liste de points... c'est une liste de points !

j'ai donc fait une classe histogramme (TGDHistogramme) héreditaire de la classe
liste de points pour histo (TListePourSerieHisto) héréditaire de la classe "données" (TListeSimple)

Si je dois faire un camenbert, je ferais une classe Camembert (TGDCamenbert) héréditaire de la classe "données" (TListeSimple)

Ah, euhhh... et elle est où la différence avec ton chat ?

Bon, allez, je laisse tomber, d'toute facon, c'est vrai que parler d'objet avec php 4, c'est n'importe quoi... en tout cas j'suis content de m'être tromper et d'apprendre que t'as fait de l'objet ailleurs, n'empêche que pour ceux qui connaissent pas l'objet, le code est quand même un bon tuto à mon sens...
Posté le : 04/07/2005 13:09:29

Déposé sur Histogramme en php avec gd. programmation objet

Là, je suis à OBLIGE de répondre au 2ième paragraphe.

La POO (tu verras ça dans n'importe quel livre) est basée sur 3 principes de base:
- L'encapsulation (présente dans php 5 mais pas dans 4)
- L'héritage
- Le polymmorphisme (simulé dans php)

Tout ca à partir d'une structure appelé "classe"

La programmation objet, c'est une philosophie de programmation, pas un truc destiné à être utilisé à partir de "n" paramètres de sorties, mais au contraire tout le temps (je reviens sur
ce point à la fin du message).

L'introduction de la POO a changé le mode de pensée du programmeur : les données sont maitre de leur contenu, c'est à dire qu'elles se gèrent elles même (fonctions incluses dans l'objet pour le gérer, et non pas fonction externe qui gère les données)

De plus, un des principaux but pour lequel la POO a été introduite est d'avoir un code facilement modifiable, transformable, maintenable, notamment grace à la notion d'heritage.

Hors, j'ai parcouru la semaine quelques uns des codes php les plus populaires du site, et j'en ai ouvert une vingtaine, ceux dont les appréciations étaient bonnes: AUCUN (j'en ai peut-être sauté un, je dis pas) n'utilisait la notion d'héritage, le SEUL des 3 points principaux de la POO présent dans PHP 4 !!!


C'est pour ca que j'ai trouvé que le code fourni pouvait ammener quelque chose d'INSTRUCTIF à la communauté:
il utilise l'héritage, et m'a permis de faire mes modifications en une heure (je ne connaissais pas du tout GD), parceque le code que j'avais écrit était suffisamment générique à la base.


CONCLUSION

1) manipuler des classes ne signifie pas que l'on sait programmer en objet
(c'est comme connaitre connaitre des théorèmes par coeur: on peut savoir s'en servir pour faire des petites démonstrations, mais ca veut pas dire qu'on sait les utiliser pour démontrer des choses compliquées. )

2) je reviens sur les "n sorties" necessaires pour utiliser une classe.
C'est tout à fait faux, et en plus c'est un truc de base qu'on retrouve sur tout les bouquins: la philosophie POO, dans le cas des stats, ce serait créér un objet TDonnees de base sur lequel on va faire toutes les manips de données, et qui va avoir des fonctions abstraites "dessiner()", "inverser()" etc... qui seront implémentées dans des classes descendantes Thistogramme, TCamembert, puisqu'elles seront spécifiques à l'objet descendant...

3) Tes affirmations sur la POO montrent bien que tu à découvert par toi-même la POO à partir de PHP, et pas à partir d'un vrai langage OO, je te conseilles donc de lire un bouquin qui en parle, parceque là, t'es en train de prendre de très mauvaises habitudes, exactement comme moi quand j'utilise des "<div>" au lieu '<div>', sauf que je pense sincèrement que c'est un peu plus grave dans ton cas, vu que c'est une erreur de raisonnement: tu vas exactement à l'inverse de la philosophie OO ...

Cordialement
OC.

Ceci dit en toute amitié, perso, même si je râle quand on me dit d'utiliser telle ou telle méthode plutôt qu'une autre parcequ'on gagne 1/100 de seconde au bout de 100000 itérations, je fini quand même par le faire...
Et depuis un mois que je me suis mis à PHP, je suis pas tombé sur un seul script qui utilisait l'héritage, à part des tutoriaux sans but précis, donc c'est normal si on a pas fait de POO avec un vrai langage OO de ne pas savoir tout ca. Normal mais vraiment dommage.
Posté le : 04/07/2005 12:06:54

1 2 3 4


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 : 0,374 sec (4)

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