Est-ce normal d'avoir 200 lignes de code pour en afficher 4 ? - PHP - Programmation
Marsh Posté le 15-04-2004 à 11:52:30
Tu pourrais virer tous ces echo et taper le code HTML en brut avec juste des echo ici et là pour afficher les données, ça me semble mieux et beaucoup plus lisible (pis tu te ferais pas chier avec l'échappement de quotes).
Marsh Posté le 15-04-2004 à 12:17:06
Ce serait bien de te mettre d'accord avec toi-même : soit tu utilise le ' soit tu utilise le " pour les chaînes PHP, mais évite de mélanger les deux, quitte à mettre des caractères d'échappement à l'intérieur. Parceque c'est passablement illisible.
Marsh Posté le 15-04-2004 à 12:40:49
Bon, pour ce qui est du nombre de ligne de code, c'est pas evident de te répondre, je ne sais pas s'il y a des choses superflues...
Sinon voici comment moi je procède (mais bon, chacun sa méthode) :
Code :
|
++
Marsh Posté le 15-04-2004 à 12:44:15
Sinon j'ai aussi l'impression que tout est mélangé ... tu devrais peut etre séparer les differentes choses dans plusieurs fichiers, et faire des includes ... (ajout, suppression, edition etc...)
++
Marsh Posté le 15-04-2004 à 13:56:16
Nouvelle version, suivant vos conseils :
http://masterjul.homeip.net/tp_sql/source_cours.php
Sinon Dj YeLL, je dois tout faire en un seul fichier, et je ne saurai de toute façon pas trop comment dispatcher les tâches dans d'autres fichiers, à part 3 requêtes SQL tout reste assez « collé » à la page.
Marsh Posté le 15-04-2004 à 13:56:40
ça va pas marcher ton lien
Marsh Posté le 15-04-2004 à 13:58:10
drasche a écrit : ça va pas marcher ton lien |
Je viens de m'en appercevoir en le collant dans le premier post.
Marsh Posté le 15-04-2004 à 14:00:45
Y'a 3 lignes de code qui ne servent à rien :
if(!$req) echo "Echec de la modification.";
On ne peut pas les atteindre...
Marsh Posté le 15-04-2004 à 14:14:00
Euh ... si tu mettais ton code dans un TXT on pourrait peut etre le lire ... parceque la, on ne verra que le HTML (c'est tout l'interet du PHP d'ailleurs)
++
Edit : OUPS, j'aurais mieux fait de cliquer avant de parler
Marsh Posté le 15-04-2004 à 14:36:42
Si c'est le nombre de ligne qui te tracasse, oui y a moyen de faire plus court.
Par exemple, remplace :
Code :
|
Par
Code :
|
Tu peux appliquer ça plusieurs fois dans ton code (ça marche aussi pour return...).
Et les commentaires façon entête sont un peu gros, il veut mieux expliquer au début du fichier ce que tu vas faire et ensuite commenter le minimum (des noms explicites pour les variables et fonctions suffisent souvent).
Enfin, ce n'est que mon avis.
Marsh Posté le 15-04-2004 à 14:57:22
"Est-ce normal d'avoir 200 lignes de code pour en afficher 4 ?"
moi je vois pas de pertinence dans le rapport entre le nombre du ligne du code source et le nombre de ligne en sortie.
Code :
|
Marsh Posté le 15-04-2004 à 15:06:43
Pourtant il y en a ... de la pertinence à cette question ...
C'est pas le fait d'avoir 200 lignes de code pour en afficher 4 qui importe ici ....
C'est d'avoir 200 lignes de code alors qu'on pourrait peut-etre en avoir 100 ...
On appelle ça de l'optimisation ...
Suivant ton exemple, si je te met :
echo "t";
echo "o";
echo "t";
echo "o";
Tu crois pas qu'il serait plus interessant de le transformer en echo "toto"; ?
Donc oui, sa question est pertinente
CQFD
++
Marsh Posté le 15-04-2004 à 15:07:55
disons que la formulation du titre du topic est erronée.
Marsh Posté le 15-04-2004 à 19:18:48
kalex a écrit : Si c'est le nombre de ligne qui te tracasse, oui y a moyen de faire plus court.
|
Je n'ai pas très bien compris comment marchait cette syntaxe, j'ai essayé de trouver des trucs sur Google à « syntaxe courte » mais je n'ai rien trouvé. Enfin si, juste le echo court.
Marsh Posté le 16-04-2004 à 00:11:25
Master_Jul a écrit : |
ça s'apelle opérateur ternaire et ça sert à remplacer un if. en gros ça s'écrit condition ? action_si_vrai : action_si_faux
Marsh Posté le 16-04-2004 à 01:26:57
C'est bien ça.
La doc (voir en bas) :
http://www.unixtech.be/docs/php-fr [...] rison.html
Marsh Posté le 16-04-2004 à 11:35:47
Ok merci ! En fait j'avais du mal à comprendre à cause du $tri, j'aurai mieux compris comme ça :
$order_by = 'ORDER BY '.($tri == 'intitule' ? 'intitule' : 'cours');
Marsh Posté le 16-04-2004 à 12:49:25
Master_Jul a écrit : Ok merci ! En fait j'avais du mal à comprendre à cause du $tri, j'aurai mieux compris comme ça : |
c'est pas de l'optimisation ça... ni pour la machine, et surtout pas pour le lecteur...
Marsh Posté le 16-04-2004 à 12:53:08
Surtout si l'intitulé est $tri = "Bienvenue dans la 1ère partie de notre courcernant la symbiose incorrecte entre les lapins géants d'Afrique du Sud et la tourtelle à 3 patte du Corridor Argenté"...
Marsh Posté le 16-04-2004 à 13:06:55
mysql_close();
Tu peux le faire bien avant la fin de la page ! Tout le monde fait la même erreur
Marsh Posté le 16-04-2004 à 15:16:20
JagStang a écrit : |
Pour le lecteur, je veux bien (et encore c'est pas parce qu'on le voit rarement en php que ce n'est pas extrêmement utile, justement pour alléger la syntaxe), mais pour la machine si ! Même si ici, les deux manières de faire sont si rapides qu'on ne verra jamais la différence.
Marsh Posté le 16-04-2004 à 15:21:56
aucune différence à mon sens. PHP étant un language interprété, puis le résultat de celui-ci envoyé via un média instable comme internet, ce genre d'"optimisation" s'apparente _vraiment_ à de l'enc**age de mouche.
a+
Marsh Posté le 16-04-2004 à 15:24:24
et sinon une petite question conne, au début j'avais fait
//modif
if {}
//ajout
if {}
// suppr
if {}
Et après, je me suis dit que je pouvais mettre d'un point de vu plus "logique" des elseif mais est-ce que celà change quelque chose du point de vu du code et de sa rapidité/façon d'éxécution ?
À priori, je ne vois pas de différence si je ne termine pas la série de elseif par un else, ce dont je n'ai pas besoin ici.
Marsh Posté le 16-04-2004 à 15:27:29
attend c'est du PHP là. c'est pas comme si ce code devait être exécuté des milliards de fois...
c'est clair que des if c'est plus long. mets un switch si tu veux.
Mais ça reste de l'optimisation à 2 balles je m'excuse... Le gars devra de toute façon attendre quelques ms avant de recevoir la page par le réseau.
Marsh Posté le 16-04-2004 à 15:53:12
JagStang a écrit : aucune différence à mon sens. PHP étant un language interprété, puis le résultat de celui-ci envoyé via un média instable comme internet, ce genre d'"optimisation" s'apparente _vraiment_ à de l'enc**age de mouche. |
Tu dois pas aimer Perl toi ?
Non, ça permet souvent d'ogmenter la lisibilité et la simplicité du code.
Je préfère faire :
Code :
|
Que :
Code :
|
C'est peut-être con pour toi, mais pour moi c'est plus clair et logique. Et surtout je ne vais dire à personne, que ne pas faire comme moi est stupide...
De plus que PHP soit un langage interprété est plutôt une bonne chose pour ce genre de truc...
Marsh Posté le 16-04-2004 à 16:07:03
Je viens de tranposer un return et ça fait quand même beaucoup plus propre :
Avant :
if($line)
{
return false;
}
else return true;
Après :
return ($line) ? false : true;
Marsh Posté le 16-04-2004 à 16:13:55
Le code est mis à jour et je pense pour ainsi dire bouclé, merci à vous.
http://masterjul.homeip.net/tp_sql/source_cours.php
Marsh Posté le 16-04-2004 à 16:28:35
Master_Jul a écrit : Je viens de tranposer un return et ça fait quand même beaucoup plus propre : |
encore mieux. remplace
return ($line) ? false : true;
par
return ($line) ;
Marsh Posté le 16-04-2004 à 16:30:23
Ça ne serait pas plutôt return(!$line); ?
Marsh Posté le 16-04-2004 à 16:32:33
Impéc, merci.
Bon, je vais passer au gros morceau, la gestion des centres.
Marsh Posté le 16-04-2004 à 16:43:03
Ça commence à devenir bien propre tout ça.
Encore un enculage de mouches :
return (!mysql_fetch_array($req));
Marsh Posté le 17-04-2004 à 11:12:04
Je viens de pondre la gestion des centres, préparez-vous psychologiquement avant de regarder le code :
http://masterjul.homeip.net/tp_sql/gest_centres.php
http://masterjul.homeip.net/tp_sql/source_centres.php
Déjà, je ne vais faire qu'une fonction pour le changement de date, en utilisant un second argument.
Marsh Posté le 15-04-2004 à 11:09:30
Hello,
voilà je suis en train de faire un « petit » script pour gérer des cours et leur numéro (première partie d'un exercice), voilà le résultat :
http://masterjul.homeip.net/tp_sql/gest_cours.php
Et voilà... le code :
http://masterjul.homeip.net/tp_sql/source_cours.php
Soit un peu plus de 200 lignes (avec les commentaires et le HTML certes). Je précise avant de voir arriver les vautours que le but n'est pas pour le moment de faire du code W3C compliant mais les remarques sont les bienvenues, quand même.
Ma question est surtout de savoir si l'on ne pas simplifier ce code ou c'est une taille normale. Et puis s'il y a des erreurs à la con, je veux bien des remarques aussi !
Je travaille en registe_global à off et error_reporting E_ALL.
Merci !
EDIT 17 AVRIL :
Je viens de pondre la gestion des centres, préparez-vous psychologiquement avant de regarder le code :
http://masterjul.homeip.net/tp_sql/gest_centres.php
http://masterjul.homeip.net/tp_sql/source_centres.php
Message édité par Master_Jul le 17-04-2004 à 11:14:21
---------------
En français, on écrit "connexion", pas "connection".