Maison > Questions et réponses > le corps du texte
Pourquoi la couche contrôleur du framework PHP charge-t-elle un fichier avec un suffixe .tpl que j'ai écrit dans le fichier
<?php
echo $name; //居然能输出正确的值
//Question, pourquoi les fichiers avec le suffixe .tpl peuvent-ils également exécuter des scripts PHP ? N'est-il pas possible d'analyser PHP uniquement en utilisant des fichiers .PH ?
某草草2017-05-16 17:08:08
L'interpréteur PHP ne se soucie que du contenu du fichier, peu importe l'extension
Exiger/inclure d'autres fichiers dans le code en un seul cycle de compilation et d'exécution, au lieu d'ouvrir un nouvel interpréteur à chaque fois que vous ouvrez un nouveau fichier
Afin de le distinguer facilement des autres fichiers, une certaine extension sera configurée sur le serveur Web pour être envoyée à PHP. Il s'agit uniquement d'une restriction sur le fichier d'entrée après l'exécution, ce qui est requis/inclus plus tard n'a rien à voir. avec cette configuration. Si cela n'est pas fait, quel que soit le type de fichier, il sera envoyé à PHP pour examen. Ceci est irréaliste en raison de considérations de performances et de sécurité (en d'autres termes, vous devez traiter PHP et le serveur Web indépendamment)
.Par exemple
Pour nginx, c'est
location ~ .*\.(php|php5)?$
{
fastcgi_pass unix:/var/run/php.socket;
fastcgi_index index.php;
include fastcgi.conf;
}
Pour Apache, c'est
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
En fait, vous pouvez le changer en n'importe quelle extension de votre choix, ou même le faire correspondre complètement (bien sûr, ce n'est pas recommandé de le faire)
淡淡烟草味2017-05-16 17:08:08
Le framework lui-même charge le fichier .tpl et l'analyse en code php. C'est comme si vous chargiez un fichier XML avec php, puis analysiez le XML et le produisiez. Ce que j'ai dit n'est pas tout à fait exact, mais c'est à peu près le même sens.
大家讲道理2017-05-16 17:08:08
Ceci est un fichier modèle
Vous pouvez consulter l'introduction du modèle smarty