


Le dernier résumé des questions conceptuelles pour les questions d'entretien PHP
Recommandations associées : "Dernier résumé des questions de candidature pour les questions d'entretien PHP"
1. status La signification du code de statut
- 302 : Le transfert temporaire est réussi et le contenu demandé a été transféré vers le nouvel emplacement.
- 401 : Non autorisé.
- 403 : Accès interdit.
- 500 : Erreur interne du serveur
2 Passage par valeur et passage par référence
- Passage par valeur : le réel. les paramètres sont transmis. Les valeurs sont attribuées aux paramètres formels et les modifications apportées aux paramètres formels n'affecteront pas les valeurs des paramètres réels.
- Passez par référence : transmettez l'adresse du paramètre réel au paramètre formel. Le paramètre réel et le paramètre formel pointent vers le même espace de stockage. Les modifications apportées aux paramètres de ligne affecteront la valeur du paramètre réel.
3. Modèle de conception
Type de création : les employés agissent comme des matières premières (prototype, usine, singleton, générateur, usine abstraite) Type structurel : consiste à démonter l'assemblage (adaptateur, pont, masselotte, apparence, agent, combinaison, décoration) Type comportemental : ordonné d'installer le modèle dans la parabole pour éviter toute observation (mémo, chaîne de responsabilité, commande, itérateur, médiateur, état, méthode modèle, visiteur, observateur, stratégie)4. Gestion du code
Habituellement, un projet est composé de L'équipe développe. , et chacun soumet le code qu'il a écrit au serveur de versions, et le chef de projet le gère en fonction de la version, ce qui facilite le contrôle de version, améliore l'efficacité du développement et garantit que l'ancienne version peut être renvoyée en cas de besoin.5. Attaque XSS
L'essence de XSS (cross-site scripting Attack) est que l'attaquant insère du code malveillant dans la page Web et l'intègre lorsque l'utilisateur parcourt la page. Le code sera exécuté pour atteindre l’objectif d’attaquer les utilisateurs de manière malveillante.Comment le prévenir ? Réponse : utilisez la fonction htmlspecialchars() pour filtrer le contenu soumis et matérialiser les symboles spéciaux dans la chaîne.
6. Diagramme de relation CGI, FastCGI, PHP-FPM
Dans toute l'architecture du site Web, le serveur Web (comme Apache) n'est que le distributeur. de contenu. Par exemple, si le client demande index.html, le serveur Web trouvera ce fichier dans le système de fichiers et l'enverra au navigateur. Ce qui est distribué ici, ce sont des données statiques.- Serveur Web : Désigne généralement des serveurs tels qu'Apache, Nginx, IIS, Lighttpd, Tomcat, etc.
- Application Web : Fait généralement référence à PHP, Java, Asp.net et d'autres applications.
- CGI : est un protocole d'échange de données entre le serveur Web et l'application Web.
- FastCGI : Identique à CGI, c'est un protocole de communication, mais il présente quelques optimisations en termes d'efficacité par rapport à CGI. De même, le protocole SCGI est similaire à FastCGI.
- PHP-CGI : est le programme d'interface de PHP (Web Application) au protocole CGI fourni par Web Server.
- PHP-FPM : est un programme d'interface pour le protocole FastCGI fourni par PHP (Web Application) au Serveur Web Il permet également une gestion des tâches relativement intelligente.
7. MVC
MVC est un modèle de développement, qui est principalement divisé en trois parties :- m (modèle), qui est le modèle, est responsable du fonctionnement des données ;
- v (vue), qui est la vue, est responsable de l'affichage du premier plan c (contrôleur), c'est-à-dire le contrôleur responsable de la logique métier
8 Le mécanisme de collecte des ordures de PHP
PHP peut automatiquement. gérer la mémoire et effacer les objets qui ne sont plus nécessaires. PHP utilise un mécanisme de comptage de références (garbage collection). Chaque objet contient un compteur de référence Lorsqu'une référence est connectée à l'objet, le compteur est incrémenté de 1. Lorsque la référence quitte l'espace de vie ou est définie sur NULL, le compteur est décrémenté de 1. Lorsque le compteur de référence d'un objet atteint zéro, PHP libère l'espace mémoire qu'il occupe.9. Cycle de vie du mode CLI
10. Mécanisme d'exploitation php-fpm
FastCGI est un protocole de communication entre les serveurs Web (tels que Nginx, Apache) et les programmes de traitement (tels que PHP). protocole de communication de la couche application. php-fpm est un gestionnaire de processus de modèle monothread bloquant en mode de fonctionnement PHP FastCGI. Il a une structure maître unique et multi-travailleurs. Le même processus de travail ne peut gérer qu'une seule requête à la fois. Une fois que PHP a traité la requête, il transmet le résultat analysé au serveur Web via le protocole FastCGI, et le serveur Web le renvoie à l'utilisateur.
Implémentation de base
PHP-FPM est une implémentation de fast-cgi, qui fournit des fonctions de gestion de processus, y compris les processus maîtres et de travail :
- Le maître crée et surveille les sockets, lance plusieurs processus de travail, obtient le statut de travailleur via la mémoire partagée, puis contrôle les processus de travail via des signaux
- le travailleur accepte librement les demandes
travailleur —Traitement des demandes
Le processus de travail accepte en permanence les demandes lorsqu'une demande arrive, il lira et analysera les données du protocole FastCGI. Une fois l'analyse terminée, le script PHP sera exécuté et. la demande sera clôturée une fois l'exécution terminée. Les étapes permettant à chaque travailleur de traiter les demandes sont les suivantes :
- En attente des demandes : le processus de travail est bloqué dans fcgi_accept_request() en attente de demandes.
- Analyser la demande : une fois la demande fastcgi arrivée, elle est reçue par le travailleur, puis commence à recevoir et à analyser les données de la demande jusqu'à ce que les données de la demande arrivent complètement.
- Initialisation de la requête : exécutez php_request_startup().
- Exécutez le script PHP.
- Fermer la demande.
Il existe un paramètre dans la structure du processus de travail pour enregistrer l'étape fpm_scoreboard_proc_s->request_stage dans laquelle se trouve actuellement le travailleur. Lors d'une requête, cette valeur sera définie sur les valeurs suivantes :
- FPM_REQUEST_ACCEPTING : Attente de la phase de demande.
- FPM_REQUEST_READING_HEADERS : Lire l'étape d'en-tête de la requête fastcgi.
- FPM_REQUEST_INFO : phase d'obtention des informations sur la demande. Cette phase enregistre la méthode demandée, la chaîne de requête, l'URI de la demande et d'autres informations dans la structure fpm_scoreboard_proc_s de chaque processus de travail. Cette opération nécessite un verrouillage car le processus maître l'exécutera également. cette structure.
- FPM_REQUEST_EXECUTING : Exécuter la phase de script PHP.
- FPM_REQUEST_END : Non utilisé.
- FPM_REQUEST_FINISHED : Traitement de la demande terminé.
master – gestion des processus
master ne reviendra plus après avoir appelé fpm_run(), mais entrera dans une boucle d'événement à partir de ce moment-là, master reviendra toujours. tourne autour de Plusieurs événements sont traités.Avant d'analyser ces événements en détail, nous présentons d'abord les trois différentes méthodes de gestion de processus de Fpm. Le mode spécifique à utiliser peut être spécifié via pm dans la configuration de conf, par exemple pm=dynamic.
- Mode statique (static) : Cette méthode est relativement simple. Au démarrage, le maître débourse un nombre correspondant de processus de travail en fonction de la configuration pm.max_children, c'est-à-dire le nombre de processus de travail. est fixe.
- Mode dynamique (dynamic) : Ce mode est plus couramment utilisé au démarrage de Fpm, un certain nombre de Workers seront initialisés selon la configuration pm.start_servers. Pendant le fonctionnement, si le maître constate que le nombre de travailleurs inactifs est inférieur au nombre configuré de pm.min_spare_servers (ce qui indique qu'il y a trop de demandes et que les travailleurs ne peuvent pas les gérer), il bifurquera le processus de travail, mais le nombre total des travailleurs ne peut pas dépasser pm.max_children. Si le maître constate que le nombre de travailleurs inactifs dépasse pm.max_spare_servers (indiquant qu'il y a trop de travailleurs inactifs), il tuera certains travailleurs pour éviter d'occuper trop de ressources. Le maître utilise ces quatre valeurs pour contrôler dynamiquement le nombre. des travailleurs.
- Mode Ondemand (ondemand) : ce mode est très similaire au cgi traditionnel. Il n'alloue pas de processus de travail au démarrage. Après une demande, il informe le processus maître de créer le processus de travail. après la demande, lancez ensuite le processus enfant pour le traitement. Le nombre total de travailleurs ne dépasse pas pm.max_children. Le processus de travail ne se terminera pas immédiatement une fois le traitement terminé. Il se terminera lorsque le temps d'inactivité dépasse pm.process_idle_timeout.
Le processus maître entre dans la boucle d'événements fpm_event_loop(). Dans cette méthode, le maître traitera cycliquement plusieurs événements IO et timer enregistrés par le maître. Lorsqu'un événement est déclenché, le gestionnaire spécifique sera. rappelé pour traitement.
11. Processus d'allocation de mémoire
Pré-demandez un morceau de mémoire et gérez-le en interne lorsque l'application demande de la mémoire, elle le fera à partir de là. partie, et elle sera publiée en premier lors de sa sortie. Retour à la gestion de la mémoire. Cette conception peut éviter la consommation de performances supplémentaire du système d'exploitation causée par l'application et la libération d'une petite mémoire.
12. Implémentation du tableau PHP
L'implémentation sous-jacente du tableau PHP est une table de hachage (également appelée hashTable), qui accède directement au stockage mémoire en fonction de la clé ( Clé) Dans la structure des données de position, il existe une fonction de mappage entre sa clé et sa valeur. La valeur de hachage obtenue par la clé via la fonction de mappage peut être directement indexée sur la valeur correspondante sans avoir besoin d'une comparaison de mots clés. , la valeur de hachage n'est pas prise en compte. Les conflits de colonnes, l'efficacité de recherche des tables de hachage est très élevée et la complexité temporelle est O (1).
13. Injection de dépendances
Concept : fait référence à la manière dont les autres services dont dépend le service ne sont pas créés par le service lui-même, mais sont transmis de l'extérieur.
Comment y parvient-on ? Réponse : De manière générale, elle est mise en œuvre par réflexion.
Quel problèmepeut-il résoudre ? Réponse : Réduisez le couplage entre les modules de service. Lors de l'écriture du code, vous n'avez pas besoin de prendre en compte l'implémentation spécifique des services externes. Il vous suffit d'utiliser le service basé sur l'interface.
14. Orienté objet
Concept : L'orientation objet est une méthode de conception de programmes, qui contribue à améliorer la réutilisabilité des programmes et rend la structure du programme plus claire.
Caractéristiques principales : encapsulation, héritage, polymorphisme.
Cinq principes de base : Principe de responsabilité unique ; Principe de remplacement ; Principe de séparation des interfaces ;
Cet article est apparu pour la première fois sur le site Web LearnKu.com.
Recommandations associées : "Résumé des questions d'entretien PHP en 2021 (Collection) "
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

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

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)

Sujets chauds





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.

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.

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

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,

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

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.
