


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 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 !
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. . .
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键,不要打一堆空格做缩进。
类名首字母大写驼峰命名,需要见名知其意,注释说明这个类的功能。例如:
- 方法名驼峰命名,方法行数尽量控制在80行左右,注释说明函数干嘛用的。
- 花括号独占一行,例如:
- foreach慎用引用,例如以下代码会有问题:
预期结果是输出: 2 4 6
,实际结果是2 4 4
, 至于为什么可
以看我之前的文章: PHP中
&符号你真的了解吗?。 可以使用
array_walk`方法避免这个问题, 示例:
- 避免
if
,elese
嵌套过深,很多嵌套可以通过提前终止来消除, 举个简单的例子:
建议使用第二种方式,不符合条件的直接返回,剩下的就是符号条件的,那么避免了在if里面写很多代码。
多个
if/else
使用switch来替代,PHP8.0版本可以使用match
更为简洁。phpstorm
中安装SonarLint
插件。如果你写的代码出现虚线,说明不太理想,那么可以根据提示修改,相信有强迫症的同学一定会改,久而久之代码就很规范了。例如:
方法未使用,方法名不规范已经告诉你了,可以快捷修改,也可以自己修改。
框架规范
前面说得都是比较基础的东西,接下来才是主要的内容。
相信很多同学都用过常用的
thinkphp
丶laravel
丶yii
- 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 :

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.
- pour chaque utilisation, utilisez les guillemets avec prudence. Par exemple, le code suivant aura des problèmes :

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 :

if
, elese
trop profondément. De nombreuses imbrications peuvent être éliminées par une résiliation anticipée. exemple Exemple simple : 🎜🎜🎜
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 : 🎜🎜🎜🎜🎜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 thinkphp
丶laravel
丶yii
. 🎜🎜🎜🎜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
类:
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
类:比如登录需要参数验证再建立一个LoginRequest
类继承这个BaseRequest
。
- 使用的时候只要在Controller的方法中注入这个请求类即可。
这里获取请求参数的时候会对表单进行验证,否则参数验证失败会调用刚刚Request积累定义的方法抛Json异常,返回信息给客户端。
控制器
控制器的主要工作负载获取请求数据和返回内容,不应做更多的事情,那么可以定义一个Service层来处理业务逻辑。 所以我的控制器的代码只有一行。
- 在Laravel的app目录下建立一个Services文件夹用于存放Service类,建立一个BaseService类:
然后建立一个UserService来处理用户相关的业务逻辑。
在UserController中注入这个UserService使用:
Model
Model不建议写业务逻辑。Model主要是用来定义一些内容,不应该操纵数据。
Model的数据操纵应该放在Repository中,在Laravel的app目录下建立一个文件夹Repositories
Par exemple, la connexion nécessite une vérification des paramètres, puis crée une classe LoginRequest
pour hériter de cette BaseRequest
.
Lorsque vous l'utilisez, injectez simplement cette classe de requête dans la méthode Controller.
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 :
à Injectez ce UserService dans UserController et utilisez :
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.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
