在迁移到新的PHP服务器时存在文件夹路径问题.文件夹/./ folder2


Having a folder path issue migrating to a new PHP server. folder/../folder2

我安装了一个名为Homestead的流浪汉盒子,并试图运行我的应用程序。

在本地,我在windows机器上使用PHP 7.0.9

在linux (Ubuntu)机器上使用PHP 7.0.8

问题:

我使用Codeigniter,与HMVC,它这样做:application/controllers/../modules

这在我的机器上转换为application/modules,但在流浪盒中保持这样。

是否有一个设置,我可以改变它的工作在流浪汉框?

解决方案:

    简单:创建一个文件夹application/controllers,其中有一个文件,所以git会保存它
  • 硬(和一个坏的解决方案):在CI核心,大约第400行,添加以下代码:(解析路径并删除../)

function resolve_path($path) {
    $stack = [];
    foreach (explode('/', $path) as $segment)
        if ($segment == "..")
            array_pop($stack); else
            $stack[] = $segment;
    return implode('/', $stack);
}
$controller_path = resolve_path(APPPATH . 'controllers/' . $RTR->directory . $class . '.php');