suchen

Heim  >  Fragen und Antworten  >  Hauptteil

view – Zweifel an der einfachen MVC-Implementierung in PHP

Warum lädt die PHP-Framework-Controller-Ebene eine Datei mit dem Suffix .tpl, das ich in die Datei geschrieben habe
<?php

echo $name; //居然能输出正确的值

//Frage: Warum können Dateien mit dem Suffix .tpl auch PHP-Skripte ausführen? Ist es nicht möglich, PHP nur mit .PH-Dateien zu analysieren?

怪我咯怪我咯2739 Tage vor491

Antworte allen(3)Ich werde antworten

  • 某草草

    某草草2017-05-16 17:08:08

    1. PHP解释器只关心文件内容,扩展名是什么它并不关心

    2. 在代码里面require/include其它的文件,是在一次编译运行的周期里面的,而不是每次开一个新文件新开一个解释器

    3. 为了方便和其它文件区分,在web服务器上面会配置某种扩展名发送给PHP,这只是对入口文件有约束,运行起来之后后面require/include了什么和这个配置早已无关,不这么做的话,变成什么文件类型都会送到PHP里面过一遍,出于性能和安全性考虑这都是不现实的(换句话说,你需要独立看待PHP和Web服务器)

    举个例子
    对于nginx来说,是

        location ~ .*\.(php|php5)?$
        {
            fastcgi_pass   unix:/var/run/php.socket;
            fastcgi_index  index.php;
            include        fastcgi.conf;
        }

    对于apache来说,也就是

     <FilesMatch \.php$>
        SetHandler application/x-httpd-php
     </FilesMatch>

    其实你都可以改,改成任意自己希望的扩展名,或者甚至全匹配(当然不建议真的这么干)

    Antwort
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 17:08:08

    框架本身加载.tpl文件后解析为php代码了。就好像你用php加载一个xml文件然后解析xml然后输出一样。我说的也不算很准确,但是差不多这个意思吧。

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-05-16 17:08:08

    这是模板文件

    可以看看smarty模板的介绍

    Antwort
    0
  • StornierenAntwort