Maison > titres > Explication détaillée des principes de l'environnement de développement multijoueur PHP

Explication détaillée des principes de l'environnement de développement multijoueur PHP

小云云
Libérer: 2017-12-08 09:12:16
original
2709 Les gens l'ont consulté

En tant que développeur PHP, parfois nous ne pouvons pas réaliser un projet ou une fonction seul, tout comme lorsqu'un développeur d'entrepôt compte plus de 1 ou 20 personnes, chaque personne peut développer différents modules et fonctions, en utilisant des versions de code Des outils de contrôle tels que git ouvrir différentes branches. Le processus consiste probablement à d'abord configurer un environnement complet localement, à le développer et à le déployer dans l'environnement de test, après l'auto-test ou le test du testeur, à le déployer dans l'environnement de pré-version. est fondamentalement le même que la ligne. L'environnement est le même, puis le produit est inspecté une fois l'acceptation terminée, il est mis en ligne. Puisqu'il est développé en parallèle, il doit y avoir des situations où plusieurs fonctions sont acceptées ou testées en même temps. À ce moment-là, quel code est déployé dans l'environnement de pré-version ? Si vous passez à la branche de A, B ne pourra pas l'accepter. Par conséquent, nous espérons qu'il y aura un environnement de développement multi-personnes où le processus de développement de chacun ne s'affecte pas les uns les autres. Dans cet article, nous partagerons avec vous une analyse des principes de l’environnement de développement multijoueur PHP.

Principe de fonctionnement de PHP

Tout d'abord, analysons le principe de fonctionnement de PHP et examinons les caractéristiques du langage de PHP. Lorsque nous lançons une requête depuis le navigateur, notre serveur web (Nginx, Apache, etc.) écoute le port 80 ou 443. Regardons la configuration Nginx la plus simple de vhost :

server {
  listen       80;
  server_name test.com;
 
  root /data/gateway/html;
  index   index.php;

  location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9001; #unix:/Users/run/php-fcgi.sock;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
  }
}
Copier après la connexion
Copier après la connexion

Nginx écoute le port 80 et utilise la configuration test.com correspondante lorsqu'elle correspond au fait que le nom de domaine visité par l'utilisateur est vhost. Sur le serveur, PHP-FPM démarre un service et écoute un port (tel que 9001) ou un unix socket est configuré via fastcgi_pass et transmet la requête à PHP-FPM pour analyser le code PHP. commence à partir de Commencez l'analyse, continuez le traitement en cours de route, effectuez une série de traitements logiques, interrogez la base de données ou le cache, etc., renvoyez un index.php ou d'autres résultats à HTML, puis renvoyez Nginx au navigateur. Le processus est le suivant : Nginx

Explication détaillée des principes de l'environnement de développement multijoueur PHP

  •  : Il s'agit d'un type d'échange de données entre CGI et Nginx protocole. PHP_FPM

  •  : Identique à FastCGI, c'est un protocole de communication, mais il présente quelques optimisations en termes d'efficacité par rapport à CGI. CGI

  •  : C'est le programme d'interface du protocole PHP-CGI fourni par PHP. NginxCGI

  •  : Il s'agit d'un programme d'interface pour le protocole

    fourni par PHP-FPM à PHP, et fournit également une gestion des tâches relativement intelligente. NginxFastCGI

  • Environnement de développement multi-personnes

D'après le principe

, nous pouvons voir que PHP n'est en fait qu'un langage de script interprété, et chaque requête doit commencer à partir de

Après l'avoir analysé une fois, pouvons-nous nommer plusieurs dossiers sur le serveur en fonction des noms de différents développeurs ? Dans chaque dossier, PHP bon référentiel de code, basculer vers sa propre branche. Laissez ensuite index.php gérer l'index dans le répertoire de chaque personne. Par exemple, accédez directement à clone, récupérez Nginx dans http://wulv.test.com/ et définissez Nginx sur le répertoire wulv, afin de pouvoir accéder au code dans le répertoire root. Vous pouvez définir wulv comme ceci : wulvNginx

Nous pouvons laisser
set $who www;
if ($http_who != "") {
   set $who $http_who;
}
root /data/gateway/$who/html;
Copier après la connexion
Copier après la connexion
transporter le répertoire de l'utilisateur, l'intercepter dans

et le transporter aux endroits suivants : URLNginx

  • :

    hosthttp://wulv.test.com

  • :

    pathhttp://www.test.com/wulv

  • :

    queryhttp://www.test.com?http_who=wulv

  • Cela peut généralement répondre aux exigences, mais il reste encore quelques problèmes. Par exemple, certains liens sur la page sont codés en dur et n'utilisent pas de chemins relatifs une fois que vous cliquez dessus. , ils s'exécuteront à nouveau
Allez-y, ou certaines applications tierces telles que

doivent vérifier le nom de domaine. Si le nom de domaine n'est pas cohérent avec le nom de domaine en ligne, vous ne pouvez pas vous connecter du tout. D'autres moyens sont donc nécessaires pour y parvenir, tels que : www.test.comOAuth

  • http request header

  • cookie

  • Nous pouvons utiliser le plug-in de navigateur Modify Headers pour modifier les informations d'en-tête
, définir un paramètre

sur http request, puis l'obtenir dans http_who. wulvNginxExtension

Si les conditions le permettent, vous pouvez réellement créer un serveur de passerelle, créer une page de configuration et configurer les répertoires auxquels il faut accéder dans la page de configuration lors de votre prochaine visite. la passerelle vous aidera directement à définir

comme proxy vers le serveur correspondant. De cette façon, vous n’avez même pas besoin d’installer des plug-ins de navigateur, ce qui est plus convivial pour les opérations et la conception des produits.

http header

PHP est le meilleur langage au monde, représentant environ 80 % du Web. Les petites et moyennes entreprises utilisent essentiellement l'architecture lnmp. Lorsqu'il y a plus de 1 ou 20 développeurs dans un entrepôt, chaque personne peut développer différents modules et fonctions, et utiliser des outils de contrôle de version de code tels que git pour ouvrir différentes branches. Le processus consiste probablement à d'abord mettre en place un environnement complet localement. Après le développement, il est déployé dans l'environnement de test. Après l'auto-test ou le test du testeur, il est déployé dans l'environnement de pré-version. La pré-version est fondamentalement la même que l'environnement en ligne, puis le produit est accepté. Une fois l’acceptation terminée, il est publié et lancé en ligne.

En raison du développement parallèle, il doit y avoir des situations où plusieurs fonctions sont acceptées ou testées en même temps. À ce moment-là, quel code sera déployé dans l'environnement de pré-version ? Si vous passez à la branche de A, B ne pourra pas l'accepter. Par conséquent, nous espérons qu'il y aura un environnement de développement multi-personnes où le processus de développement de chacun ne s'affecte pas les uns les autres.

Principe de fonctionnement de PHP

Tout d'abord, analysons le principe de fonctionnement de PHP et examinons les caractéristiques du langage de PHP. Lorsque nous lançons une requête depuis le navigateur, notre serveur web (Nginx, Apache, etc.) écoute le port 80 ou 443. Regardons la configuration Nginx la plus simple de vhost :

server {
  listen       80;
  server_name test.com;
 
  root /data/gateway/html;
  index   index.php;

  location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9001; #unix:/Users/run/php-fcgi.sock;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
  }
}
Copier après la connexion
Copier après la connexion

Nginx écoute le port 80 et utilise la configuration test.com correspondante lorsqu'elle correspond au fait que le nom de domaine visité par l'utilisateur est vhost. PHP-FPM démarre un service sur le serveur et écoute un port (tel que 9001) ou un unix socket est configuré via fastcgi_pass et transmet la requête à PHP-FPM pour analyser le code PHP. à partir de Commencez l'analyse, continuez le traitement, effectuez une série de traitements logiques, interrogez la base de données ou le cache, etc., renvoyez un index.php ou d'autres résultats à HTML, puis renvoyez Nginx au navigateur. Le processus est le suivant : Nginx

Explication détaillée des principes de l'environnement de développement multijoueur PHP

  •  : Il s'agit d'un type d'échange de données entre CGI et Nginx protocole. PHP_FPM

  •  : Identique à FastCGI, c'est un protocole de communication, mais il présente quelques optimisations en efficacité par rapport à CGI. CGI

  •  : C'est le programme d'interface du protocole PHP-CGI fourni par PHP. NginxCGI

  •  : Il s'agit d'un programme d'interface pour le protocole

    fourni par PHP-FPM à PHP, et fournit également une gestion des tâches relativement intelligente. NginxFastCGI

  • Environnement de développement multi-personnes

D'après le principe

, nous pouvons voir que PHP n'est en fait qu'un langage de script interprété, et chaque requête doit commencer à partir de

Après l'avoir analysé une fois, pouvons-nous nommer plusieurs dossiers sur le serveur en fonction des noms de différents développeurs ? Dans chaque dossier, PHP basculer vers le référentiel de code et basculer vers sa propre branche. Laissez ensuite index.php gérer l'index dans le répertoire de chaque personne. Par exemple, accédez directement à clone, récupérez Nginx dans http://wulv.test.com/ et définissez Nginx sur le répertoire wulv, afin de pouvoir accéder au code dans le répertoire root. Vous pouvez définir wulv comme ceci : wulvNginx

Nous pouvons laisser
set $who www;
if ($http_who != "") {
   set $who $http_who;
}
root /data/gateway/$who/html;
Copier après la connexion
Copier après la connexion
transporter le répertoire de l'utilisateur, l'intercepter dans

et le transporter aux endroits suivants : URLNginx

  • :

    hosthttp://wulv.test.com

  • :

    pathhttp://www.test.com/wulv

  • :

    queryhttp://www.test.com?http_who=wulv

  • Cela peut généralement répondre aux exigences, mais il reste encore quelques problèmes. Par exemple, certains liens sur la page sont codés en dur et n'utilisent pas de chemins relatifs une fois que vous cliquez dessus. , ils s'exécuteront à nouveau
Allez-y, ou certaines applications tierces telles que

doivent vérifier le nom de domaine. Si le nom de domaine n'est pas cohérent avec le nom de domaine en ligne, vous ne pouvez pas vous connecter du tout. D'autres moyens sont donc nécessaires pour y parvenir, tels que : www.test.comOAuth

  • http request header

  • cookie

  • Nous pouvons utiliser le plug-in de navigateur Modify Headers pour modifier les informations d'en-tête
, définir un paramètre

sur http request, puis l'obtenir dans http_who. wulvNginxExtension

Si les conditions le permettent, vous pouvez réellement créer un serveur de passerelle, créer une page de configuration et configurer les répertoires auxquels il faut accéder dans la page de configuration lors de votre prochaine visite. la passerelle vous aidera directement à définir

comme proxy vers le serveur correspondant. De cette façon, vous n’avez même pas besoin d’installer des plug-ins de navigateur, ce qui est plus convivial pour les opérations et la conception des produits.

http headerRecommandations associées :

Révélation de l'acquisition de l'environnement de développement intégré phpstudy avec le plus grand nombre d'utilisateurs du pays par le site Web chinois php

Encyclopédie de l'environnement de développement intégré PHP

Comment créer un environnement de développement JSP


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal