Plus de 50 trucs et astuces PHP pour les débutants et les développeurs

PHP est le langage le plus utile pour créer des blogs et des sites Web, il possède de nombreuses fonctions qui peuvent être utilisées pour dériver encore plus de fonctions personnalisées. Nous avons rassemblé les plus utiles Trucs et astuces PHP pour les débutants et même les développeurs. Ces astuces PHP rendent votre codage productif et plus efficace.

Plus de 50 trucs et astuces PHP pour les débutants

Liste des trucs et astuces PHP

1. echo est plus rapide que print.

2. Entourer votre chaîne de guillemets simples (') au lieu de guillemets doubles (") est plus rapide car PHP recherche les variables à l'intérieur de "..." et non dans "...", utilisez ceci lorsque vous n'utilisez pas de variables dont vous avez besoin d'évaluer dans votre chaîne de caractères.

3. Utilisez sprintf au lieu des variables contenues dans des guillemets doubles, c'est environ 10 fois plus rapide.

4. Utilisez les paramètres multiples de echo (ou empilés) au lieu de la concaténation de chaînes.

5. Utilisez des pré-calculs, définissez la valeur maximale de vos boucles for avant et non dans la boucle. c'est-à-dire : pour ($x=0 ; $x < count($array ); $x), cela appelle la fonction count() à chaque fois, utilisez $max=count($array) à la place avant que la boucle for ne démarre.

6. Désactivez ou annulez vos variables pour libérer de la mémoire, en particulier les grands tableaux.

7. Évitez la magie comme __get, __set, __autoload.

8. Utilisez require() au lieu de require_once() si possible.

9. Utilisez des chemins complets dans inclut et nécessite moins de temps consacré à la résolution des chemins du système d'exploitation.

10. require () et include () sont identiques à tous égards, à l'exception des arrêts requis si le fichier est manquant. En termes de performances, il y a très peu de différence.

11. Depuis PHP5, l'heure à laquelle le script a commencé à s'exécuter peut être trouvée dans $_SERVER['REQUEST_TIME'], utilisez-la à la place de time() ou microtime().

12. PCRE regex est plus rapide que EREG, mais voyez toujours si vous pouvez utiliser des fonctions natives plus rapides telles que strncasecmp, strpbrk et stripos à la place.

13. Lors de l'analyse avec XML en PHP, essayez xml2array, qui utilise les fonctions XML de PHP, pour le HTML, vous pouvez essayer le document DOM de PHP ou le XML DOM en PHP4.

14. str_replace est plus rapide que preg_replace, str_replace est globalement meilleur, cependant strtr est parfois plus rapide avec des chaînes plus grandes. L'utilisation de array() dans str_replace est généralement plus rapide que plusieurs str_replace.

15. Les instructions « else if » sont plus rapides que les instructions select aka case/switch.

16. La suppression des erreurs avec @ est très lente.

17. Pour réduire l'utilisation de la bande passante, activez mod_deflate dans Apache v2 ou pour Apache v1, essayez mod_gzip.

18. Fermez vos connexions à la base de données lorsque vous n'en avez plus besoin.

19. $row['id'] est 7 fois plus rapide que $row[id], car si vous ne fournissez pas de guillemets, il doit deviner de quel indice vous vouliez dire, en supposant que vous ne vouliez pas dire une constante.

20. Utiliser balises lors de la déclaration de PHP car tous les autres styles sont dépréciés, y compris les balises courtes.

21. Utilisez un code strict, évitez de supprimer les erreurs, les avis et les avertissements, ce qui entraîne un code plus propre et moins de frais généraux. Envisagez d'avoir error_reporting(E_ALL) toujours activé.

22. Les scripts PHP sont servis 2 à 10 fois plus lentement par Apache httpd qu'une page statique. Essayez d'utiliser des pages statiques au lieu de scripts côté serveur.

23. Les scripts PHP (à moins qu'ils ne soient mis en cache) sont compilés à la volée chaque fois que vous les appelez. Installez un produit de mise en cache PHP (tel que memcached ou eAccelerator ou Turck MMCache) pour augmenter généralement les performances de 25 à 100 % en supprimant les temps de compilation. Vous pouvez même configurer eAccelerator sur cPanel à l'aide d'EasyApache3.

24. Une technique de mise en cache alternative lorsque vous avez des pages qui ne changent pas trop fréquemment est de mettre en cache la sortie HTML de vos pages PHP. Essayez Smarty ou Cache Lite.

25. Utilisez isset si possible en remplacement de strlen. (ie: if (strlen($foo) < 5) { echo "Foo est trop court"; } vs. if (!isset($foo{5})) { echo "Foo est trop court"; } ).

26. ++$i est plus rapide que $ i++, utilisez donc la pré-incrémentation si possible.

27. Utilisez les innombrables fonctions prédéfinies de PHP, n'essayez pas de créer les vôtres car les fonctions natives seront beaucoup plus rapides ; si vous avez des fonctions très consommatrices de temps et de ressources, envisagez de les écrire en tant qu'extensions ou modules C.

28. Profilez votre code. Un profileur vous montre quelles parties de votre code consomment combien de temps. Le débogueur Xdebug contient déjà un profileur. Le profilage vous montre les goulots d'étranglement en vue d'ensemble.

29. Documentez votre code.

30. Apprenez la différence entre un bon et un mauvais code.

31. Respectez les normes de codage, cela vous permettra de comprendre plus facilement le code des autres et les autres pourront comprendre le vôtre.

32. Séparez le code, le contenu et la présentation : séparez votre code PHP de votre code HTML.

33. Ne vous embêtez pas à utiliser des systèmes de modèles complexes tels que Smarty, utilisez celui qui est déjà inclus dans PHP, consultez ob_get_contents et extract, et extrayez simplement les données de votre base de données.

34. Ne faites jamais confiance aux variables provenant de l'espace utilisateur (comme de $_POST), utilisez mysql_real_escape_string lors de l'utilisation de mysql et htmlspecialchars lors de la sortie en HTML.

35. Pour des raisons de sécurité, n'ayez jamais rien qui puisse exposer des informations sur les chemins, les extensions et la configuration, tels que display_errors ou phpinfo() dans votre racine Web.

36. Désactivez register_globals (il est désactivé par défaut pour une raison !). Aucun script au niveau de la production ne devrait nécessiter cette activation car il s'agit d'un risque de sécurité. Corrigez tous les scripts qui l'exigent et corrigez tous les scripts qui l'exigent en utilisant unregister_globals(). Faites-le maintenant, car il est configuré pour être supprimé dans PHP6.

37. Évitez d'utiliser du texte brut lors du stockage et de l'évaluation des mots de passe pour éviter toute exposition, utilisez plutôt un hachage, tel qu'un hachage md5.

38. Utilisez ip2long() et long2ip() pour stocker les adresses IP sous forme d'entiers au lieu de chaînes.

39. Vous pouvez éviter de réinventer la roue en utilisant le projet PEAR, en vous donnant un code existant de haut niveau.

40. Lors de l'utilisation de header('Location: '.$url); n'oubliez pas de le suivre d'un dé (); car le script continue de s'exécuter même si l'emplacement a changé ou évitez de l'utiliser tous ensemble dans la mesure du possible.

41. En POO, si une méthode peut être une méthode statique, déclarez-la statique. L'amélioration de la vitesse est d'un facteur 4.

42. L'incrémentation d'une variable locale dans une méthode POO est la plus rapide. Presque la même chose qu'appeler une variable locale dans une fonction et incrémenter une variable globale est 2 fois plus lent qu'une variable locale.

43. L'incrémentation d'une propriété d'objet (par exemple $this->prop++) est 3 fois plus lente qu'une variable locale.

44. L'incrémentation d'une variable locale non définie est 9 à 10 fois plus lente qu'une variable pré-initialisée.

45. Le simple fait de déclarer une variable globale sans l'utiliser dans une fonction ralentit les choses (à peu près autant que l'incrémentation d'une var locale). PHP vérifie probablement si le global existe.

46. ​​L'invocation de méthode semble être indépendante du nombre de méthodes définies dans la classe car j'ai ajouté 10 méthodes supplémentaires à la classe de test (avant et après la méthode de test) sans changement de performance.

47. Les méthodes des classes dérivées s'exécutent plus rapidement que celles définies dans la classe de base.

48. Un appel de fonction avec un paramètre et un corps de fonction vide prend à peu près le même temps que 7 à 8 opérations $localvar++. Un appel de méthode similaire est bien sûr d'environ 15 opérations $localvar++.

49. Tout ne doit pas nécessairement être POO, il s'agit souvent d'une surcharge, chaque appel de méthode et d'objet consomme beaucoup de mémoire.

50. Ne faites jamais confiance aux données utilisateur, échappez vos chaînes que vous utilisez dans les requêtes SQL en utilisant mysql_real_escape_string, au lieu de mysql_escape_string ou addlashes. Notez également que si magic_quotes_gpc est activé, vous devez d'abord utiliser des barres obliques.

51. Évitez le problème d'injection d'en-tête de fonction PHP mail().

52. Désactivez vos variables de base de données (le mot de passe au minimum), vous ne devriez pas en avoir besoin après avoir établi la connexion à la base de données.

53. RTFM ! PHP propose un manuel fantastique, peut-être l'un des meilleurs, ce qui en fait un langage très pratique, fournissant des exemples de travail et parlant en anglais simple.

Ce sont quelques-uns des trucs et astuces PHP qui peuvent être très utiles pour ceux qui viennent de commencer à apprendre le langage PHP, et aussi pour ceux qui se développent depuis un bon moment. RTFM est cependant le moyen le plus efficace d'apprendre PHP.

Aishwar Babber

Aishwar Babber est une blogueuse passionnée et une spécialiste du marketing numérique. Il aime parler et bloguer sur les dernières technologies et gadgets, ce qui le motive à courir GizmoBase. Il exerce actuellement son expertise en marketing numérique, SEO et SMO en tant que spécialiste du marketing à temps plein sur divers projets. Il est un investisseur actif dans AffiliéBay et un réalisateur dans ImageStation.

22 réflexions sur "50+ trucs et astuces PHP pour les débutants et les développeurs"

  1. Article génial, ces trucs et astuces php aident beaucoup tous les nouveaux développeurs php et à partir de là, j'ai également obtenu des trucs et astuces php que je ne connais pas du tout.

    Répondre
  2. De bons conseils, mais je pense que vous devriez changer le point 37. Un simple hachage md5 n'est pas vraiment assez sophistiqué dans le monde dans lequel nous vivons.

    Répondre
  3. n ° 15
    if/else est plus rapide que switch, tu as raison, j'ai fait quelques tests,
    mais vous devriez considérer dans quel cas utiliser switch.

    Je l'ai fait du vélo, en testant 10,1000,100000 et 1 million de cycles et le résultat est :
    en 100k cycles, vous obtenez une différence de 0,13 s sur la machine locale (sur un serveur extérieur, vous devriez avoir moins de différence).

    Vous devriez donc envisager d'utiliser if/else of switch. Je préfère utiliser le commutateur à cause du code plus propre. Utiliser 1 interrupteur, 2 interrupteurs, voire 100 interrupteurs au lieu de if/else… peu importe, cela n'a aucun sens.

    Répondre
  4. n ° 26
    je lance le test maintenant,
    avec $i++ et ++$i

    c'est simple - le numéro 26 n'a pas de sens jusqu'à ce que vous vouliez utiliser plus de 10 mil. cycles.
    Et la différence ?

    10mil cycles avec $i++ 2.67448 s
    10mil cycles avec ++$i 2.605528 s

    Répondre
  5. 24. (…) Essayez Smarty ou Cache Lite.
    33. Ne vous embêtez pas à utiliser des systèmes de modèles complexes tels que Smarty

    ok.

    (personnellement, je supprimerais simplement le #33 ; smarty (ou d'autres systèmes de modèles) a beaucoup d'avantages par rapport aux fonctions ob_…)

    Répondre
  6. L'écho est plus rapide que l'impression par un seul opcode, donc cela n'a vraiment pas d'importance, vraiment. Et print() est une fonction, echo ne l'est pas. Essaye ça:

    $variable et affiche 'la variable est définie !';

    Et à propos de l'incrémentation : $i += 1; est le plus rapide.

    Super article, merci !

    Répondre
  7. Super article merci pour le partage
    De bons conseils, mais je pense que vous devriez changer le point 37. Un simple hachage md5 n'est pas vraiment assez sophistiqué dans le monde dans lequel nous vivons.

    Répondre

Laisser un commentaire