【TP5源码】获取项目的genm

星图妙赏 2019-10-10 17:34:54

实现代码

步骤详解

(1)分析    if ('cli' == PHP_SAPI) {

先来看这一行代码,这里有个常量是PHP_SAPI,然后进行打印出来是cgi-fcgi,所以会走else

(2)执行$scriptName = $_SERVER['SCRIPT_FILENAME'];

$_SERVER['SCRIPT_FILENAME']是访问的是哪个文件,它就获取这个文件的绝对路径

打印出来的是:

C:/phpStudy/PHPTutorial/WWW/tp5.1learn/public/index.php

(3)执行$path = realpath(dirname($scriptName));

这行进行了两个操作:

dirname()函数返回路径中的目录部分。

realpath() 函数返回绝对路径。

打印结果:

dirname($scriptName):C:/phpStudy/PHPTutorial/WWW/tp5.1learn/public

realpath(dirname($scriptName)):C:\phpStudy\PHPTutorial\WWW\tp5.1learn\public

(4)执行is_file($path . DIRECTORY_SEPARATOR . 'think',

打印结果:C:\phpStudy\PHPTutorial\WWW\tp5.1learn\public\think

这一步不会执行,因为在public的目录下没有think这个目录

这里需要注意一个点就是define ('DIRECTORY_SEPARATOR', "/"),在PHP这个是定义斜杠的常量

(5)执行$path . DIRECTORY_SEPARATOR;

执行结果:C:\phpStudy\PHPTutorial\WWW\tp5.1learn\

(6)完结:这个也就是tp5.1获取项目根目录的一个完整过程

1 阅读:7