如何在PHPunit中使用./
?我尝试了几种这样的方法:
mkdir('./foo)
它总是失败但它通过浏览器工作。
但如果我使用:
mkdir('../../../foo')
通过PHPUnit工作但是通过浏览器出错。
但如果我使用:
mkdir(dirname(__FILE__).'../../../foo');
根本不工作。
答案 0 :(得分:1)
dirname( FILE )会为您提供文件所在位置的绝对路径。这可能与命令行和浏览器不同。让我们假设一个基本安装,其中网页位于文件系统上的/ apps / website(或Windows上的C:\ apps \ website)。
您的网络服务器像网站一样提供默认设置(简单配置),所以
http://localhost/
是网址。所以现在Web服务器和命令行都有不同的源代码文件路径。
如果index.php在网站目录中,则dirname( FILE )会给您不同的结果:
浏览器:/index.php,
命令行:/apps/website/index.php
考虑到这一点,.. / foo.php也将根据您运行它的位置在不同的相对目录中。
浏览器:无效,因为你无法超越/ 命令行:/apps/foo.php(/ apps / website /../ foo.php)
编写测试时,您需要知道结构中的位置以及相对路径与位置的位置,然后相应路径相应地更改。假设你有一个lib子目录到网站(/ apps / website / lib)并且PHPUnit测试在那个目录中,并且你想要来自父目录的foo.php,那么你可以使用
dirname(__FILE__) . '/../foo.php'); //Assuming __FILE__ is /apps/website/lib/file.php
dirname()通常没有尾部斜杠,因此在组合剩余的相对路径时需要添加它。
答案 1 :(得分:0)
试试这个,
MKDIR(目录名(文件强>)' /../../../ FOO&#39);