|
发表于 2012-2-21 13:21:33
|
显示全部楼层
hi,看了下源码得出以下结论
$cascade参数是用来屏蔽递归的
模拟一种目录结构如下
---application
-----controller
-------welcome.php
-----view
-------success.php
------third_party
---------billzhao
-------------view
---------------success.php
PHP复制代码
/*假设加载目录*/
$this->load->add_package_path ( APPPATH . 'third_party/billzhao/' , FALSE);
/*得到当前的ViewPath为*/
/*因为unshift所以加载的View路径在最上层
[_ci_view_paths:protected] => Array
(
[application/third_party/billzhao/views/] => /*FALSE*/
[application /views /] => 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页面*/
复制代码 |
|