Wikini

ConseilsDeProgrammationPhP

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-34-239-175-196.compute-1.amazonaws.com

Conseils de programmation en PhP

Je propose que chacun place ici des conseils quant à la programmation en PHP. Ces conseils seraient plutôt orientés vers les performances, le respect de la syntaxe etc/ que la clarté du code et sa présentation, et ne doivent pas forcément concerner directement WikiNi (bien que le but soit de les appliquer dans ce cadre). Il ne doit donc pas s'agir de DocDeveloppeurNormesEtRecoDeDeveloppement...

Chaines de carractères

En PhP, il existe trois syntaxes différentes pour les chaines de caractères:
Pour rappel, voici les différence entre les deux:
Conséquences:
Il me semble avoir lu un jour des conseils disant d'utiliser la synthaxe aux guillemets simples dès que possible, car elle était plus performante... Je ne sais malheureusement plus où, mais depuis lors je respecte cela... De toute façon ça me parait logique, et ça ne peut pas faire de mal. (De plus je trouve que les guillemets simples ont comme un air plus 'léger' mais ce n'est qu'une préférence...)

Accès aux caractères d'une chaine
Dans les anciennes versions de PhP, on accédait aux caractères comme s'il s'agissait des éléments d'un tableau. Cette synthaxe, bien qu'elle soit toujours utilisable, est obsolète depuis php4, et vous devez utiliser des accolades à la place ($chaine{23}). N'oubliez pas que le premier caractère se trouve à l'indice 0, et donc le dernier à strlen($chaine) - 1.

Utilisation des objets

Avant php5, quand vous passiez un objet en argument d'une fonction (ou quand vous le stockiez dans une nouvelle variable), celui-ci était entièrement copié. Pour éviter cela, travaillez par référence:
<?php
function Foo(&$object) {
    
// instructions
    
return $newObject;
}
$myObj = new MyClass();
$myNewObj = &Foo($myObj);
$temp = &$myNewObj;
?>

Le passage par référence n'est pas important pour les autres types de variables, à moins que vous ne vouliez en modifier leur valeur à l'intérieur de votre fonction.

Requêtes SQL

Eviter toujours de placer des requêtes à l'intérieur de boucles !
En général il y a toujours moyen de construire une requête dans une boucle, et ensuite de l'exécuter en un coup. Par exemple:

Protection des fichiers

Quelqu'un propose dans la documentation des Constantes Magiques le code suivant pour protéger un fichier de tout appel direct, à tester mais je pense que c'est fiable, et d'ailleurs que c'est le moyen de protection le plus simple qui soit (aucune constante à vérifier, fonctionne n'importe où):
Le système de vérification de l'existence d'une constante (dans wikini: WIKINI_VERSION) reste cependant bon, sauf que si l'on veut utiliser un fichier de WikiNi dans un autre contexte (mettons qu'on veuille par exemple colorer une source en delphi dans son site web, en utilisant le fichier coloration_delphi.php), on est obligé de définir la constante WIKINI_VERSION...



Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]