Maison  >  Article  >  développement back-end  >  Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

青灯夜游
青灯夜游avant
2021-08-24 16:16:073658parcourir

Comment écrire du code PHP élégant et durable ? Cet article vous présentera les spécifications d'écriture de base et les spécifications du framework du code PHP. Les comprendre rendra votre code PHP plus élégant !

Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

Introduction

Lao Wang m'a dit aujourd'hui que son code est si mauvais que c'est comme un gâchis. Demandez-moi comment

améliorer la qualité de mon code et rendre mon code plus agréable à regarder et plus confortable, tout comme la façon

vos yeux s'illuminent lorsque vous voyez une fille aux longues jambes.

Alors moi : Vous faites ceci d'abord, puis ceci, et puis cela. . . . . .

Camarade de classe Lao Wang : Arrêtez de créer des ennuis, que se passe-t-il ?

D'accord, je vais commencer à faire semblant d'avoir 13 ans. . .

Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

Spécifications de base

Parlons d'abord des choses les plus élémentaires :

  • Utilisez la dénomination en casse chameau pour les noms de variables. N'utilisez pas le pinyin pour les mots que vous ne comprenez pas, recherchez plutôt dans le dictionnaire le mot correspondant.

  • Utilisez des traits de soulignement majuscules lorsque vous nommez des constantes. Par exemple : SYSTEM_EROOR = 50 000. SYSTEM_EROOR = 50000

  • 缩进使用Tab键,不要打一堆空格做缩进。

  • 类名首字母大写驼峰命名,需要见名知其意,注释说明这个类的功能。例如:

Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

  • 方法名驼峰命名,方法行数尽量控制在80行左右,注释说明函数干嘛用的。

Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

  • 花括号独占一行,例如:

Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

  • foreach慎用引用,例如以下代码会有问题:

Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

预期结果是输出: 2 4 6,实际结果是2 4 4, 至于为什么可 以看我之前的文章: PHP中&符号你真的了解吗?。 可以使用array_walk`方法避免这个问题, 示例:

Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

  • 避免if, elese嵌套过深,很多嵌套可以通过提前终止来消除, 举个简单的例子:

Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

建议使用第二种方式,不符合条件的直接返回,剩下的就是符号条件的,那么避免了在if里面写很多代码。

  • 多个if/else使用switch来替代,PHP8.0版本可以使用match更为简洁。

  • phpstorm中安装SonarLint插件。如果你写的代码出现虚线,说明不太理想,那么可以根据提示修改,相信有强迫症的同学一定会改,久而久之代码就很规范了。例如:

Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

方法未使用,方法名不规范已经告诉你了,可以快捷修改,也可以自己修改。

框架规范

  • 前面说得都是比较基础的东西,接下来才是主要的内容。

  • 相信很多同学都用过常用的thinkphplaravelyii

  • Utilisez la touche Tab pour l'indentation, ne tapez pas beaucoup d'espaces pour l'indentation.

  • La première lettre du nom de la classe est en casse chameau. Vous devez connaître la signification en voyant le nom. Les commentaires expliquent les fonctions de cette classe. Par exemple :

Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

Nommez les noms de méthodes en cas de chameau. Essayez de contrôler le nombre de lignes de méthode à environ 80 lignes. Les commentaires expliquent à quoi sert la fonction.

  • Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

  • Les accolades occupent une ligne à elles seules, par exemple :

Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

  • pour chaque utilisation, utilisez les guillemets avec prudence. Par exemple, le code suivant aura des problèmes :

  • Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

Le résultat attendu est la sortie : 2 4 6, le résultat réel le résultat est 2 4 4 , expliquant pourquoi Jetez un oeil à mon article précédent : Comprenez-vous vraiment le symbole & en PHP ?. Vous pouvez utiliser la méthode array_walk` pour éviter ce problème, exemple : Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes🎜🎜🎜Évitez l'imbrication if, elese trop profondément. De nombreuses imbrications peuvent être éliminées par une résiliation anticipée. exemple Exemple simple : 🎜🎜🎜Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes🎜🎜Il est recommandé d'utiliser la deuxième méthode, qui renvoie directement si elle ne remplit pas les conditions, et le reste est une condition symbolique, vous évitez donc d'écrire beaucoup de code dans le if. 🎜🎜🎜🎜Utilisez switch pour remplacer plusieurs if/else. La version PHP8.0 peut utiliser match pour être plus concise. 🎜🎜🎜🎜Installez le plugin SonarLint dans phpstorm. S'il y a des lignes pointillées dans le code que vous écrivez, cela signifie qu'il n'est pas idéal, alors vous pouvez le modifier en fonction des invites. Je pense que les étudiants souffrant de trouble obsessionnel-compulsif le changeront certainement et qu'avec le temps, le code deviendra très standardisé. . Par exemple : 🎜🎜🎜🎜Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes🎜🎜La méthode n'est pas utilisée. Je vous ai dit que le nom de la méthode n'est pas standardisé. Vous pouvez le modifier rapidement ou le modifier vous-même. 🎜

🎜Spécification du cadre🎜🎜🎜🎜🎜Les éléments mentionnés ci-dessus sont relativement basiques, et le suivant est le contenu principal. 🎜🎜🎜🎜Je pense que de nombreux étudiants ont utilisé l'un des frameworks populaires tels que thinkphplaravelyii. 🎜🎜🎜🎜Ces frameworks sont tous basés sur l'architecture MVC. J'ai vu les codes de nombreuses personnes et écrire une logique métier dans le contrôleur ou dans le modèle est relativement mieux que d'écrire dans le contrôleur. En fait, ce n’est pas très favorable aux projets à grande échelle. 🎜🎜🎜🎜Ce qui suit utilise le framework Laravel comme exemple. 🎜🎜🎜🎜🎜Vérification des paramètres🎜🎜🎜🎜🎜L'API nécessite une vérification des paramètres, mais où est la manière la plus élégante d'écrire la vérification des paramètres ? De nombreuses personnes peuvent définir des règles dans le contrôleur, puis appeler la méthode de vérification. Ensuite, le code de vérification apparaîtra dans chaque API, comme ce que mon collègue a écrit. 🎜🎜🎜🎜🎜🎜🎜🎜🎜Ce code apparaîtra une fois dans chaque API N'est-il pas très verbeux Alors comment le résoudre ? 🎜🎜🎜🎜🎜🎜
  • Créez un répertoire Requsts dans le répertoire http de Laravel pour stocker la classe de vérification des paramètres demandée. Créez une classe BaseRequest : Requsts目录,用于存放请求的参数验证类。建立一个BaseRequest类:

1Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

比如登录需要参数验证再建立一个LoginRequest类继承这个BaseRequest

1Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

  • 使用的时候只要在Controller的方法中注入这个请求类即可。

1Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

这里获取请求参数的时候会对表单进行验证,否则参数验证失败会调用刚刚Request积累定义的方法抛Json异常,返回信息给客户端。

控制器

控制器的主要工作负载获取请求数据和返回内容,不应做更多的事情,那么可以定义一个Service层来处理业务逻辑。 所以我的控制器的代码只有一行。

  • 在Laravel的app目录下建立一个Services文件夹用于存放Service类,建立一个BaseService类:

1Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

然后建立一个UserService来处理用户相关的业务逻辑。

1Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

在UserController中注入这个UserService使用:

1Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

Model

Model不建议写业务逻辑。Model主要是用来定义一些内容,不应该操纵数据。

Model的数据操纵应该放在Repository中,在Laravel的app目录下建立一个文件夹Repositories

1Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

Par exemple, la connexion nécessite une vérification des paramètres, puis crée une classe LoginRequest pour hériter de cette BaseRequest. 1Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

1Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

Lorsque vous l'utilisez, injectez simplement cette classe de requête dans la méthode Controller. 1Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

1Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes Lorsque les paramètres de la requête sont obtenus ici, le formulaire sera vérifié. Sinon, si la vérification des paramètres échoue, la méthode qui vient d'être définie par l'accumulation de requêtes sera appelée pour lever une exception Json et renvoyer des informations au client.

Contrôleur

La charge de travail principale du contrôleur est d'obtenir les données de la demande et de renvoyer le contenu. Il ne devrait pas faire plus de choses, vous pouvez alors définir une couche de service à gérer. la logique métier. Mon contrôleur n'a donc qu'une seule ligne de code.

    Créez un dossier Services dans le répertoire d'applications de Laravel pour stocker la classe Service et créez une classe BaseService :
  • 1Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes
Créez ensuite un UserService pour gérer la logique métier liée à l'utilisateur.

1Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes1Comment écrire du code PHP élégant et attractif ? Une brève discussion sur la rédaction de normes

à Injectez ce UserService dans UserController et utilisez :


16 . png

Model

Le modèle n'est pas recommandé pour écrire une logique métier. Le modèle est principalement utilisé pour définir du contenu et ne doit pas manipuler les données. La manipulation des données du modèle doit être placée dans le référentiel et créer un dossier Repositories dans le répertoire des applications de Laravel.

🎜Définir BaseRepository :🎜🎜🎜🎜🎜Définir UserRepository pour les opérations liées aux données utilisateur, injecter UserModel dans la méthode de construction :🎜🎜🎜🎜🎜🎜Constants🎜🎜🎜Comment définir de nombreuses constantes dans le projet ? 🎜🎜Créez un répertoire Constant dans le répertoire de l'application, puis créez une classe Constant pour enregistrer ces constantes personnalisées. 🎜🎜L'avantage est : 🎜🎜🎜Les constantes personnalisées peuvent être gérées de manière centralisée. 🎜🎜Lors de la modification de la valeur constante, vous n'avez besoin de trouver la modification qu'une seule fois dans cette classe, et la mise à jour du code est facile à maintenir. 🎜🎜🎜🎜🎜🎜🎜Adresse originale : https://juejin.cn/post/6957290009682509854🎜🎜🎜Auteur : ClassmateLin🎜🎜🎜Apprentissage recommandé : "🎜Tutoriel vidéo PHP🎜"🎜

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