关于装载类中的add_package_path方法第二个参数有什么用
本帖最后由 moxuanyuan 于 2012-2-21 01:22 编辑看手册,看到最后的Package view files,实在看不懂,add_package_path方法中的第二个参数有什么用,其中的例子是不是有错啊?
偶也看了Loader.php的原码,大约就是762到775行,代码的意思是,当package中view文件不存在,而$cascade为FALSE时,就退出for循环,究竟有什么用呢?真的看手册,看代码,看到我一头冒水~~~ 暂时还没用过 package 的飘过。。。。。。。 hi,看了下源码得出以下结论
$cascade参数是用来屏蔽递归的
模拟一种目录结构如下
---application
-----controller
-------welcome.php
-----view
-------success.php
------third_party
---------billzhao
-------------view
---------------success.php
/*假设加载目录*/
$this->load->add_package_path ( APPPATH . 'third_party/billzhao/' , FALSE);
/*得到当前的ViewPath为*/
/*因为unshift所以加载的View路径在最上层
=> Array
(
=> /*FALSE*/
=> 1
)
*/
/*配合Load的源码得出*/
foreach ($this->_ci_view_paths as $view_file => $cascade)
{
if (file_exists($view_file.$_ci_file))
{
$_ci_path = $view_file.$_ci_file;
$file_exists = TRUE;
break;
}
if ( ! $cascade)
{
break;
}
}
/*当package/views/不存在success的时候,就会抛出错误,而不去寻找Views/success.php页面*/
页:
[1]