Analyse du noyau PHP7
原创内容,转载请注明出处~
代码版本:php-7.0.12
retour
Communiquer et se plaindre des retours d'erreurs
Version papier
Jingdong Dangdang
Table des matières:
- Chapitre 1 Architecture de base de PHP
- 1.1 Introduction à PHP
- 1.2 Améliorations de PHP7
- 1,3 pi/min
- 1.3.1 Aperçu
- 1.3.2 Implémentation de base
- 1.3.3 Initialisation du FPM
- 1.3.4 Traitement des demandes
- 1.3.5 Gestion des processus
- 1.4 Plusieurs étapes d'exécution de PHP
- Chapitre 2 Variables
- 2.1 Implémentation interne des variables
- 2.2 Tableau
- 2.3 Variables statiques
- 2.4 Variables globales
- 2.5 Constantes
- Chapitre 3 Machine virtuelle Zend
- 3.1 Compilation du code PHP
- 3.1.1 Analyse lexicale et analyse syntaxique
- 3.1.2 Processus de compilation de l'arbre de syntaxe abstraite
- 3.2 Implémentation des fonctions
- 3.2.1 Fonctions internes
- 3.2.2 Implémentation des fonctions utilisateur
- 3.3 Processus d'exécution du moteur Zend
- 3.3.1 Structure de base
- 3.3.2 Processus d'exécution
- 3.3.3 Flux d'exécution des fonctions
- 3.3.4 Exécute_data et opline globaux
- 3.4 Implémentation orientée objet
- 3.4.1 Classe
- 3.4.2 Objets
- 3.4.3 Héritage
- 3.4.4 Propriétés dynamiques
- 3.4.5 Méthodes magiques
- 3.4.6 Chargement automatique des classes
- 3.5 Mise en cache d'exécution
- 3.6 Cache Optique
- 3.6.1 Cache d'opcodes
- 3.6.2 Optimisation de l'opcode
- 3.6.3 JIT
- Chapitre 4 Implémentation de la syntaxe de base PHP
- 4.1 Conversion de types
- 4.2 Sélectionner la structure
- 4.3 Structure de boucle
- 4.4 Interruptions et sauts
- 4.5 inclure/exiger
- 4.6 Gestion des exceptions
- Chapitre 5 Gestion de la mémoire
- 5.1 Pool de mémoire Zend
- 5.2 Collecte des déchets
- Chapitre 6 Sécurité des threads
- 6.1 Qu'est-ce que la sécurité des threads ?
- 6.2 Gestionnaire de ressources thread-safe
- Chapitre 7 Développement étendu
- 7.1 Aperçu
- 7.2 Principe de mise en œuvre de l'extension
- 7.3 Composition et compilation des extensions
- 7.3.1 Composition des extensions
- 7.3.2 Outils de compilation
- 7.3.3 Étapes de base pour l'écriture d'extensions
- 7.3.4 config.m4
- 7.4 Fonction crochet
- 7.5 Configuration d'exécution
- 7.5.1 Variables globales
- 7.5.2 configuration ini
- 7.6 Fonctions
- 7.6.1 Enregistrement des fonctions internes
- 7.6.2 Analyse des paramètres de fonction
- 7.6.3 Passage de paramètre par référence
- 7.6.4 Valeur de retour de la fonction
- 7.6.5 Appel de fonction
- 7.7 Fonctionnement de zval
- 7.7.1 Nouvelle génération de différents types de zval
- 7.7.2 Obtenir la valeur et le type de zval
- 7.7.3 Conversion de types
- 7.7.4 Comptage de références
- 7.7.5 Opérations sur les chaînes
- 7.7.6 Opérations sur les tableaux
- 7.8 Constantes
- 7.9 Orienté objet
- 7.9.1 Inscription interne aux classes
- 7.9.2 Définir les attributs des membres
- 7.9.3 Définition des méthodes membres
- 7.9.4 Définir des constantes
- 7.9.5 Instanciation des classes
- 7.10 Types de ressources
- 7.11 Analyse d'extension classique
- Chapitre 8 Espaces de noms
- 8.1 Aperçu
- 8.2 Définition de l'espace de noms
- 8.2.1 Syntaxe de définition
- 8.2.2 Mise en œuvre interne
- 8.3 Utilisation des espaces de noms
- 8.3.1 Utilisation de base
- 8.3.2 Utiliser l'importation
- 8.3.3 Utilisation dynamique
Implémenter de nouvelles fonctionnalités PHP
- 1. Break/continue est implémenté selon la syntaxe d'interruption d'étiquette
- 2. différer la syntaxe
- 3. Coroutine
- 3.1 Principe de la coroutine
- 3.2 Changement de contexte