Qu'est-ce que le phtml et quand dois-je utiliser une extension .phtml plutôt que .php?

233

Je me demande quelle est la différence entre les fichiers .phtml et .php et quand les utiliser l'un par rapport à l'autre.

fvgs
la source

Réponses:

316

Il n'y a généralement aucune différence en ce qui concerne le rendu des pages. C'est une énorme installation pour les développeurs, cependant, lorsque votre projet Web grandit.

J'utilise les deux de cette façon:

  • La page .PHP ne contient pas de code lié à la vue
  • La page .PHTML contient peu (voire pas) de logique de données et la plus grande partie est liée à la présentation
Alex
la source
74
Très bien, donc utiliser l'extension .phtml plutôt que .php ne serait qu'une formalité utilisée pour désigner un fichier plus dense en html que php.
fvgs
12
Précisément. Tirer parti du fait qu'une extension de fichier différente peut être associée à une icône différente, vous pouvez également les différencier sans effort (travailler avec des dizaines ou des centaines de fichiers, simplement les organiser dans un dossier ne le coupe pas toujours).
Alex
Il y a aussi le fichier source PHP .phps.
CMCDragonkai
fonctionne .PHTMLtoujours. j'ai écrit le morceau de code suivant et l'ai enregistré avec .phtml et il n'a pas exécuté la partie php <html> <body> <?php echo "hiiii"; ?> <div> <strong> everybody </strong> </div> </body> </html>
dhpratik
1
@dhpratik Vérifiez la configuration de votre serveur, l'extension n'est probablement pas gérée correctement. Si la configuration semble correcte, il vaut mieux en tant que question SO en soi
Alex
101

.phtmlétait l'extension de fichier standard pour les programmes PHP 2. .php3a pris le relais pour PHP 3. Lorsque PHP 4 est sorti, ils sont passés à une ligne droite .php.

Les anciennes extensions de fichiers sont encore parfois utilisées, mais ne sont pas si courantes.

Quentin
la source
31

C'est un fichier ext que certains ont utilisé pendant un certain temps pour indiquer qu'il s'agissait d'un code HTML généré par PHP. Comme les serveurs comme Apache ne se soucient pas de ce que vous utilisez comme extension de fichier tant qu'il est mappé à quelque chose, vous pouvez continuer et appeler tous vos fichiers PHP .jimyBobSmith et il les exécuterait avec plaisir. PHTML s'est avéré justement être une tendance qui s'est propagée pendant un certain temps.

Fluffeh
la source
24
+1 pour .jimmybobsmith Je pourrais le faire une fois pour dérouter beaucoup de gens de l'équipe qui ne le savent pas.
o_O
Vous devez cependant enregistrer l'extension dans votre apache.conf / httpd.conf ... une autre astuce consiste à utiliser includele fichier avec n'importe quelle extension de php, il fonctionnera de toute façon comme php.
SparK
17

Pour donner un exemple à ce qu'Alex a dit, si vous utilisez Magento, par exemple, les fichiers .phtml ne se trouvent que dans la zone / design en tant que fichiers modèles et contiennent à la fois des lignes HTML et PHP. Pendant ce temps, les fichiers PHP sont du code pur et ne contiennent aucune ligne HTML.

CommaToast
la source
6

Les fichiers .phtml indiquent au serveur Web qu'il s'agit de fichiers html avec un contenu dynamique généré par le serveur ... tout comme les fichiers .php dans un navigateur se comportent. Ainsi, dans une utilisation productive, vous ne devriez rencontrer aucune différence entre les fichiers .phtml et .php.

Soundz
la source
5
phtmln'étaient généralement pas directement accessibles. De plus, il phtmln'est généralement pas configuré comme une extension PHP valide dans la plupart des serveurs Web.
KingCrunch
0

Vous pouvez choisir n'importe quelle extension dans le monde si vous configurez correctement Apache. Vous pouvez utiliser .html pour faire PHP si vous configurez dans votre configuration Apache.

En conclusion, l'extension n'a rien à voir avec l'application ou le site Web lui-même. Vous pouvez utiliser celui que vous voulez, mais normalement, utilisez .php (pour ne pas réinventer la roue)

Mais en 2019, vous devriez utiliser le routage et oublier l'extension à la fin.

Je vous recommande d'utiliser Laravel.

En réponse à @KingCrunch: Vrai, Apache ne l'utilise pas par défaut mais vous pouvez facilement l'utiliser si vous changez de configuration. Mais ce n'est pas recommandé car tout le monde sait que ce n'est pas vraiment une option.

J'ai déjà vu des fichiers .html qui exécutaient PHP en utilisant l'extension html.

WtrndMOB
la source