我安装了一个名为Homestead的流浪汉盒子,并试图运行我的应用程序。
在本地,我在windows机器上使用PHP 7.0.9
在linux (Ubuntu)机器上使用PHP 7.0.8
问题:
我使用Codeigniter,与HMVC,它这样做:application/controllers/../modules
这在我的机器上转换为application/modules
,但在流浪盒中保持这样。
是否有一个设置,我可以改变它的工作在流浪汉框?
解决方案:
- 简单:创建一个文件夹
- 硬(和一个坏的解决方案):在CI核心,大约第400行,添加以下代码:(解析路径并删除
../
)
application/controllers
,其中有一个文件,所以git会保存它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');