Contribuer au projet open source: un cas pratique
Cet article expliquera en détail comment contribuer le code aux projets open source à travers un cas pratique. Nous prendrons la bibliothèque Gatekeeper à titre d'exemple pour ajouter une fonction de comptage et démontrer progressivement l'intégralité du processus, y compris la communication avec le propriétaire du projet, la mise en œuvre du code, les tests et la soumission de la demande de traction.
Introduction à la bibliothèque Gatekeeper
Gatekeeper est une bibliothèque PHP pour l'enregistrement des utilisateurs, l'authentification et l'autorisation. Cela le rend complètement découplé à partir de l'application principale, ce qui facilite l'échelle et la modification.
Ajouter une fonction de comptage
À l'heure actuelle, pour obtenir le nombre total d'utilisateurs dans la base de données, Gatekeeper doit d'abord obtenir tous les enregistrements d'utilisateurs, puis compter ou écrire manuellement les requêtes SQL. Pour améliorer cela, nous ajouterons une fonction de comptage à l'interface de l'adaptateur pour le rendre natif et nous préparer à ajouter d'autres moteurs de base de données à l'avenir.
Étape 1: Communiquez avec le propriétaire du projet
Avant de commencer à contribuer, communiquez d'abord avec le propriétaire du projet pour confirmer si la fonctionnalité a été planifiée et si elle est nécessaire. Habituellement, il n'est possible que de le proposer dans la question du projet.
Étape 2: fourche, clone et test
Tout d'abord, Fork Project vers votre propre référentiel GitHub. Ensuite, le clone va localement, installez les dépendances et exécutez le test:
git clone <你的fork地址> cd gatekeeper composer install vendor/bin/phpunit
Tous les tests doivent être passés. Après cela, créez une nouvelle branche à développer:
git checkout -b "feature-count"
Étape 3: Plan d'action
Gatekeeper ne prend actuellement en charge que les bases de données MySQL. Nous devons modifier la section suivante:
-
Gatekeeper/DataSource
: Résumé Classe de données de données -
DataSource/MySQL
: source de données MySQL contenant des méthodes réelles -
DataSource/Stub
: Mettez à jour le stub pour que les autres contributeurs sachent qu'ils doivent ajouter la méthode du nombre
Un nouveau processeur Count est également nécessaire, car Gatekeeper utilise des appels statiques magiques pour créer, trouver, mettre à jour et supprimer des entités.
Étape 4: implémentation du code
-
Déléguer l'appel statique: Ajouter un bloc
Gatekeeper::__callStatic
danselseif
déléguer l'appel statique au nouveau processeur Count. En même temps, mettez à jour les propriétés statiques$actions
. -
Créer un processeur Count: Créer
Psecio/Gatekeeper/Handler/Count.php
Fichier, écrivez la logique du processeur Count, qui est similaire au processeur Create, mais effectue une opération de comptage. -
Modifier la source de données et le stub: Ajouter
Psecio/Gatekeeper/DataSource/Stub.php
Signature de la méthode danscount
et les classes abstraites. -
Implémentez la méthode de nombre de la source de données MySQL: Implémentez la méthode
DataSource/MySQL.php
danscount
, qui utilise la fonctionCOUNT(*)
de MySQL pour compter.
Étape 5: Tester
Créez un nouveau projet, installez la bibliothèque Gatekeeper modifiée à l'aide de Composer et effectuez des tests. Le test doit couvrir divers scénarios, tels que compter tous les utilisateurs, compter les utilisateurs en fonction des conditions, etc.
Étape 6: Soumettre la demande de traction
Soumettez le code à votre propre référentiel de fourche et créez une demande Pull pour soumettre des avis de code au propriétaire du projet.
Résumé
Cet article présente en détail le processus de contribution du code aux projets open source via un cas spécifique. Bien que ce cas soit relativement simple, il couvre la plupart des étapes qui contribuent à des projets open source et fournit une bonne référence aux développeurs qui souhaitent participer à des projets open source. N'oubliez pas que les tests et la communication claire sont essentiels aux contributions réussies.
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!

PhpSessionsStrackUserDataacrossMultiplepageRequestSusingauniqueIdStoredInacookie.Here'showtomanageThememeChectively: 1) startAsessionwithSession_start () etstoredatain $ _session.2) RegenerateTheSessionidaFterloginWithSession_Regenereate_id (true) TopReventiSi

En PHP, l'itération des données de session peut être obtenue via les étapes suivantes: 1. Démarrez la session à l'aide de session_start (). 2. Ilaster à travers la boucle FOREACH à travers toutes les paires de valeurs clés dans le tableau $ _SESSION. 3. Lors du traitement des structures de données complexes, utilisez des fonctions is_array () ou is_object () et utilisez print_r () pour produire des informations détaillées. 4. Lors de l'optimisation de la traversée, la pagination peut être utilisée pour éviter de traiter de grandes quantités de données en même temps. Cela vous aidera à gérer et à utiliser les données de session PHP plus efficacement dans votre projet réel.

La session réalise l'authentification des utilisateurs via le mécanisme de gestion de l'état côté serveur. 1) Création de session et génération d'ID unique, 2) Les ID sont passés par des cookies, 3) les magasins de serveurs et accèdent aux données de session via IDS, 4) l'authentification des utilisateurs et la gestion de l'état sont réalisées, améliorant la sécurité des applications et l'expérience utilisateur.

Tostoreauser'snameinaphpSession, startTheSessionwithSession_start (), thenSsignTheNameto $ _session ['username']. 1) usayession_start () toinitizethesession.2) attheuser'snameto $ _session ['username'].

Les raisons de la défaillance de la phpsession comprennent les erreurs de configuration, les problèmes de cookies et l'expiration de session. 1. Erreur de configuration: vérifiez et définissez la session correcte.save_path. 2.Cookie Problème: assurez-vous que le cookie est correctement réglé. 3.Session Expire: Ajustez la valeur de session.gc_maxlifetime pour prolonger le temps de session.

Les méthodes pour déboguer les problèmes de session en PHP incluent: 1. Vérifiez si la session est démarrée correctement; 2. Vérifiez la livraison de l'ID de session; 3. Vérifiez le stockage et la lecture des données de session; 4. Vérifiez la configuration du serveur. En sortissant l'ID de session et les données, en affichant le contenu du fichier de session, etc., vous pouvez diagnostiquer et résoudre efficacement les problèmes liés à la session.

Plusieurs appels vers session_start () se traduiront par des messages d'avertissement et d'éventuels remplacements de données. 1) PHP émettra un avertissement, ce qui incite la session à démarrer. 2) Il peut provoquer un écrasement inattendu des données de session. 3) Utilisez session_status () pour vérifier l'état de la session pour éviter les appels répétés.

La configuration du cycle de vie de session dans PHP peut être réalisée en définissant session.gc_maxlifetime et session.cookie_lifetime. 1) Session.gc_maxlifetime contrôle le temps de survie des données de session côté serveur, 2) Session.cookie_lifetime contrôle le cycle de vie des cookies des clients. Lorsqu'il est réglé sur 0, le cookie expire lorsque le navigateur est fermé.


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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Version Mac de WebStorm
Outils de développement JavaScript utiles

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.
