我需要从与默认文件夹不同的文件夹加载控制器和模型。我正在使用Linux系统。
我正在为某些人构建一个简单的 CI 应用程序,用于我拥有的共享主机。但我只想让他们访问 /views 文件夹和一些 /config 文件。这就是为什么我需要将控制器和模型存储在与 /public_html 文件夹相同级别的不同文件夹中,或者可能在 linux 系统中的某个位置。
我认为这将是比编码文件更好的解决方案
我需要从与默认文件夹不同的文件夹加载控制器和模型。我正在使用Linux系统。
我正在为某些人构建一个简单的 CI 应用程序,用于我拥有的共享主机。但我只想让他们访问 /views 文件夹和一些 /config 文件。这就是为什么我需要将控制器和模型存储在与 /public_html 文件夹相同级别的不同文件夹中,或者可能在 linux 系统中的某个位置。
我认为这将是比编码文件更好的解决方案
CodeIgniter 允许您将控制器、视图和配置文件组织到子文件夹中。据我所知,它不允许模型使用(至少文档没有提到它,我自己没有尝试过)。
由于您在 Linux 系统中,您可以创建一个符号链接来引用文件系统中的另一个目录。
因此,您可以创建目录:
application/config/public
application/controllers/public
application/views/public
然后在您的 /public_html 中创建指向这些目录的符号链接:
/public_html/config -> application/config/public
/public_html/controllers -> application/controllers/public
/public_html/views ->application/views/public
当您的客户将文件上传到 /public_html/config 时,它们也将在 application/config/public 中可用。这同样适用于 /public_html/controllers 和 /public_html/views。
创建符号链接的命令语法是
# ln -s target name
IE:
# ln -s application/config/public /public_html/config
如果您没有对主机的控制台访问权限,您可以使用 PHP 函数symlink()创建链接。
要从子文件夹加载视图/配置/控制器,您只需在 $this->load->...() 函数调用中添加目录名称。IE:
$this->load->view('public/my_view);
查看 CI 文档以获取有关将文件组织到子文件夹中的更多信息。