Cet article vous présente le mécanisme de fonctionnement et le principe de fonctionnement de PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Modèle multi-processus : Puisque PHP est un modèle multi-processus, les différentes requêtes n'interfèrent pas les unes avec les autres. Cela garantit que l'échec d'une requête n'affectera pas l'ensemble du service. PHP prend également en charge le modèle multi-thread depuis longtemps. temps.
Langage faiblement typé : Le type d'une variable n'est pas déterminé au début. Il est déterminé lors du fonctionnement et une conversion de type implicite ou explicite peut se produire.
Le modèle moteur (Zend) + composant (ext) réduit le couplage interne.
La couche intermédiaire (sapi) isole le serveur web et PHP.
La syntaxe est simple et flexible, sans trop de spécifications. Les inconvénients conduisent à un mélange de styles.
PHP fournit un système à quatre couches de bas en haut :
1. Le moteur Zend
Zend est implémenté en C pur et est la partie centrale de PHP. Sa fonction principale est de traduire le code PHP en opcode exécutable. implémentez les méthodes de traitement associées, implémentez les structures de données de base (telles que la table de hachage), les mécanismes et la gestion d'allocation de mémoire, et fournissez les méthodes API associées pour les appels externes.
2. Extensions
tourne autour du moteur Zend et fournit divers services de base via la modularisation, tels que les fonctions intégrées PHP courantes (array(), etc.), ainsi qu'une série de bibliothèques standard. Personnalisez et implémentez également les applications étendues que vous souhaitez
3. Sapi
Le nom complet de Sapi est Server Application Programming Interface, qui est l'interface de programmation d'applications serveur qui permet à PHP d'interagir avec les données périphériques via une série de fonctions de hook. C'est PHP qui a un design très élégant et réussi. Grâce à sapi, il réussit à découpler et à isoler PHP lui-même des applications de couche supérieure. PHP ne peut plus réfléchir à la manière d'être compatible avec différentes applications, et l'application elle-même peut également implémenter différentes méthodes de traitement. selon ses propres caractéristiques.
4. Application de couche supérieure
Les programmes PHP écrits dans la vie quotidienne peuvent obtenir différents modes d'application via différentes méthodes spai, comment implémenter des applications Web via un serveur Web, les exécuter en mode script sur la ligne de commande, etc.
Sapi utilise des méthodes de traitement spéciales pour permettre aux applications externes d'échanger des données avec PHP. CLI commun, fastcgi, etc.
Processus d'exécution du langage dynamique PHP :
Après avoir obtenu un morceau de code, après analyse lexicale, analyse syntaxique et autres étapes, le programme source sera traduit en instructions (opcodes), puis la machine virtuelle ZEND exécutera ces instructions dans l'ordre pour terminer l'opération. PHP lui-même est implémenté en C, donc les fonctions qui sont finalement appelées sont également des fonctions C. En fait, on peut considérer PHP comme un logiciel développé en C.
La figure ci-dessous montre les quatre étapes suivies par PHP lors de l'exécution d'un morceau de code.
Les quatre étapes sont :
1.Scanning (Lexing), convertir le code PHP en fragments de langage (Tokens)
2.Parsing, convertir les Tokens en expressions simples et significatives
3.Compilation, compiler l'expression en Opcodes
4.Exécution, exécutez les Opcodes séquentiellement, un à la fois, réalisant ainsi la fonction du script PHP.
Pour faire simple, les quatre étapes ci-dessus effectuent d'abord une analyse lexicale sur le code PHP, puis obtiennent chaque 词
. Ensuite, lors de l'étape d'analyse, les mots inutiles dans les mots précédemment obtenus sont supprimés, laissant des expressions significatives, puis. compilez l'expression significative de l'étape précédente dans les opcodes, et enfin exécutez les champs opcodes dans l'ordre pour implémenter le script PHP.
Remarque :
Certains caches, comme APC, peuvent permettre à PHP de mettre en cache les Opcodes. De cette façon, chaque fois qu'une requête arrive, il n'est pas nécessaire de répéter les trois premières étapes, ce qui peut grandement améliorer la vitesse d'exécution de PHP.
Recommandations associées :
Parlons brièvement de la façon d'utiliser le générateur PHP
Analyse du calendrier des tâches planifiées Laravel de 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!