Maison  >  Article  >  développement back-end  >  Savez-vous à quels pièges PHP7 doit prêter attention ?

Savez-vous à quels pièges PHP7 doit prêter attention ?

藏色散人
藏色散人avant
2021-09-25 17:21:011400parcourir

1. N'utilisez pas les fonctions de la classe mysql_

Enfin, vous n'avez plus besoin de voir les invites suggérant de ne pas utiliser la fonction mysql_. Puisque PHP 7 les supprime complètement du noyau, cela signifie passer à de meilleures fonctions de classe mysqli_, ou à la couche PDO plus flexible. mysql_ 函数的提示了。因为 PHP 7 从核心上完全移除了它们,这意味着请你移步至更好的 mysqli_ 类函数,或者更灵活的 PDO 层。

2. 不要写无用的代码

这看上去是个无脑建议,但是随着 PHP7 速度的提升掩盖了一些问题使它显得日趋重要。不要仅仅因切到 PHP7 让网站速度变得快点,你就沾沾自喜了。

想理解速度的重要性和如何做的更好,去看看我们这篇文章 初学者加速优化指南。

作为开发者,应该确保按需加载脚本,可能时再组合,编写高效的数据库查询语句,如果可能的话 使用缓存 等等。

3. 不要在文件末尾使用 PHP 闭合标签

如果你随便看看,就会发现大部分 WordPress 核心代码文件结尾都省略了 PHP 闭合标签。事实上,Zend 框架尤为明显地 禁止了闭合标签。它并非 PHP 所必须,在文件结尾处省略它,可确保结尾无额外空白。

4. 如非必须不要引用传参

我个人非常不喜欢引用传参。我当然知道在某些场合下它很有用,但是多数场合下,它会使得代码难以理解,难以遵循,难以预测结果。

人们认为引用可以使它们的代码更快,不过正如 可敬的 PHP 程序员 的这篇文章所指出的,事实并非如此。

PHP 内置的 shuffle() 或者 sort() 函数,就是糟糕的引用传参案例。 它修改了原数组而不是返回一个打乱的或者排好序的数组,这是完全违背了我们意愿的。

5. 不要在循环里使用查询

在循环中使用数据库查询时最糟糕的。他会给系统带来不必要的压力,并且很有可能,你可以在循环外使用查询而更快的得到相同的结果。当我碰到必须这样用的场景时,我通常会通过分成两个查询来构造一个数组的方式来解决。然后循环数组而无需循环查询。

由于 WordPress 的运行方式,这样做可能会有些例外。 get_post_meta() 将从数据库获取一个元数据,如果您正在循环访问特定文章的元数据,则可以在循环中使用它。这是因为当你第一次使用它的时候,WordPress 实际上取得了所有的元数据并缓存了起来。 之后的调用实际上是调用缓存数据而不是调用数据库。

解决这些问题的最好办法是阅读函数文档并且使用一些类似 查询监听器 的东西。

6. 不要在 SQL 查询中使用 *

好吧,这更像是一个 MySQL 的问题,但我们更倾向于在代码中编写 SQL 语句,所以我说这是个公平的游戏。不管什么情况下,如果你能避免使用通配符,那就不要使用,尤其是当你的数据库有很多字段的时候。

明确指定你需要的字段,并且只检索这些字段。这有助于节省内存,保护数据,并且能让事情变得更加清晰明白。

在 SQL 方面,尽可能的了解你可用的函数并测试速度。 当计算平均数,求和以及计算相似的数字的时候,使用 SQL 内置函数而不是 PHP 的函数。 如果你不确定一个查询的速度快慢,测试一下它并和其他做法进行比较,选出最好的那一种。

7. 不要信任用户的输入

信任用户输入并不明智。对于用户输入,总是需要过滤,杀毒,转义,校验以及使用回退。 用户输入存在三个问题:我们开发者不可能考虑到所有可能性,经常出错,存心的恶意输入。

一个经过深思熟虑的系统可以防止所有的这些问题。 在使用数据库时,确保使用内置的函数,如 filter_var()

2. N'écrivez pas de code inutile

Cela peut sembler une suggestion insensée, mais à mesure que la vitesse de PHP7 augmente, cela masque certains problèmes et le rend de plus en plus important. Ne soyez pas complaisant simplement parce que le passage à PHP7 rend votre site plus rapide.

Pour comprendre l'importance de la vitesse et comment mieux la faire, consultez notre article Guide du débutant sur l'optimisation de l'accélération.

En tant que développeur, vous devez vous assurer que les scripts sont chargés à la demande, combinés lorsque cela est possible, écrire des requêtes de base de données efficaces, utiliser la mise en cache si possible, etc.

3. N'utilisez pas de balises de fermeture PHP à la fin des fichiers🎜🎜Si vous jetez un coup d'œil décontracté, vous constaterez que la plupart des fichiers de code principal de WordPress omettent les balises de fermeture PHP à la fin. En fait, le Zend Framework désactive spécifiquement les balises de fermeture. Il n'est pas requis par PHP, son omission à la fin du fichier garantit l'absence d'espace supplémentaire à la fin. 🎜🎜4. Ne citez pas de paramètres sauf si cela est absolument nécessaire🎜🎜Personnellement, je n'aime pas citer des paramètres. Bien sûr, je sais que cela peut être utile dans certaines situations, mais la plupart du temps, cela rend le code difficile à comprendre, difficile à suivre et difficile à prédire les résultats. 🎜🎜Les gens pensent que les références rendent leur code plus rapide, mais comme le souligne cet article de The Respectable PHP Programmer, ce n'est pas le cas. 🎜🎜La fonction shuffle() ou sort() intégrée de PHP est un mauvais exemple de passage de paramètre par référence. Il modifie le tableau d'origine au lieu de renvoyer un tableau mélangé ou trié, ce qui est totalement contraire à nos souhaits. 🎜🎜5. N'utilisez pas de requêtes en boucles 🎜🎜Le pire est d'utiliser des requêtes de base de données en boucles. Cela exercera une pression inutile sur le système et, très probablement, vous pourrez obtenir les mêmes résultats plus rapidement en utilisant la requête en dehors de la boucle. Lorsque je rencontre une situation où je dois l'utiliser de cette façon, je la résous généralement en la divisant en deux requêtes pour construire un tableau. Ensuite, parcourez le tableau sans boucler la requête. 🎜🎜En raison du fonctionnement de WordPress, il peut y avoir quelques exceptions à cela. get_post_meta() obtiendra des métadonnées de la base de données, que vous pourrez utiliser en boucle si vous parcourez les métadonnées d'une publication spécifique. En effet, WordPress prend toutes les métadonnées et les met en cache lorsque vous l’utilisez pour la première fois. Les appels suivants appellent en fait les données mises en cache plutôt que la base de données. 🎜🎜La meilleure façon de résoudre ces problèmes est de lire la documentation de la fonction et d'utiliser quelque chose comme un écouteur de requêtes. 🎜🎜6. N'utilisez pas * dans les requêtes SQL🎜🎜Eh bien, c'est plutôt une question MySQL, mais nous avons tendance à écrire des instructions SQL dans du code, donc je dis que c'est un jeu équitable. Dans tous les cas, si vous pouvez éviter d'utiliser des caractères génériques, ne les utilisez pas, surtout si votre base de données comporte de nombreux champs. 🎜🎜Spécifiez explicitement les champs dont vous avez besoin et récupérez uniquement ces champs. Cela permet d'économiser de la mémoire, de protéger les données et de rendre les choses plus claires. 🎜🎜En termes de SQL, renseignez-vous le plus possible sur les fonctions qui s'offrent à vous et testez la rapidité. Lors du calcul de moyennes, de sommes et de nombres similaires, utilisez les fonctions SQL intégrées au lieu des fonctions PHP. Si vous n'êtes pas sûr de la rapidité d'une requête, testez-la et comparez-la avec d'autres approches pour choisir la meilleure. 🎜🎜7. Ne faites pas confiance aux entrées des utilisateurs 🎜🎜 Faire confiance aux entrées des utilisateurs n'est pas sage. Pour la saisie de l'utilisateur, il est toujours nécessaire de filtrer, nettoyer, échapper, valider et utiliser des solutions de secours. Il y a trois problèmes avec la saisie utilisateur : il est impossible pour nous, développeurs, d'envisager toutes les possibilités, les erreurs fréquentes et les saisies intentionnellement malveillantes. 🎜🎜Un système bien pensé peut prévenir tous ces problèmes. Lorsque vous utilisez une base de données, assurez-vous d'utiliser des fonctions intégrées telles que filter_var() pour vérifier la validité, échapper et faire tout ce que vous pouvez. 🎜🎜 WordPress dispose de nombreuses fonctions pour vous aider. Jetez un œil à cet article pour en savoir plus sur la validation, l'échappement et la désinfection des données utilisateur. 🎜🎜8. Ne soyez pas intelligent 🎜🎜Votre objectif est d'écrire un code élégant qui exprime clairement vos souhaits. Vous pouvez économiser 0,01 seconde de temps de chargement sur chaque page en raccourcissant les noms de variables, en utilisant des opérations logiques ternaires à plusieurs niveaux et d'autres astuces, mais cela n'en vaut pas la peine par rapport aux conséquences de causer des maux de tête à vous et à votre équipe et des difficultés de maintenance. 🎜🎜Nommez les variables de manière appropriée et rédigez la documentation du code de manière concise et claire. Il est préférable d'utiliser un style de codage orienté objet standardisé et de le documenter plus ou moins, plutôt que d'utiliser de nombreux commentaires de code en ligne. 🎜

9. Ne réinventez pas la roue

PHP existe depuis un certain temps, et le développement de sites Web existe encore plus longtemps. Quoi que vous ayez fait, quelqu’un d’autre l’a déjà fait. N'ayez pas peur de compter sur le soutien des autres. Github, Composer et Packagist sont tous vos mentors.

Des enregistreurs aux processeurs de couleurs, des analyseurs aux frameworks de tests unitaires, des API Mailchimp au Twitter Bootstrap, tout est à portée de clic d'un bouton (ou d'une commande), alors utilisez-les !

10. Ne négligez pas les autres langages

Si vous êtes un PHPer, il est désormais courant de connaître au moins HTML, CSS, Javascript et MySQL. Lorsque vous maîtrisez bien ces langages, il est temps de réapprendre Javascript. Javascript n'est pas jQuery. Vous devez apprendre Javascript pour utiliser jQuery efficacement.

Je recommande également d'apprendre tout ce qui est orienté objet en PHP. C'est une bouée de sauvetage et améliorera votre code de plusieurs ordres de grandeur. Il peut également ouvrir les portes à des langages comme C# et Java, qui peuvent faciliter la compréhension de la programmation orientée objet (POO) une fois que vous en avez l'expérience.

Développez vos connaissances en apprenant la gestion de packages, la création de scripts, Coffeescript, LESS, SASS, YAML, les moteurs de modèles et d'autres outils utiles. Je recommande également de tout cœur de consulter d'autres frameworks, notamment Laravel.

Lorsque vous êtes assez bon dans ces domaines, pensez à Ruby, Ruby on Rails et au développement d'applications pour Android, iPhone et Windows Phone ? Vous pensez peut-être que ces mesures sont inutiles parce qu’elles sortent de votre zone de confort et des exigences de votre travail, mais c’est exactement le but recherché. Chaque langue possède des connaissances pédagogiques utiles et quelques extras inoffensifs. Tous les meilleurs développeurs PHP connaissent d’autres langages de programmation, ce n’est pas un hasard !

Apprentissage recommandé : "Tutoriel PHP7"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer