2011-04-12 56 views
1

我在CMS上使用第三方文件管理器插件,我想包含来自我正在使用的PHP框架的身份验证检查。验证部分工作正常,只是一个简单的包括然后验证检查,然而那里似乎有包含的类和文件管理器之间的一些冲突。例如,我得到一个“Class Kohana not found”错误,其中属于文件管理器的类正试图实例化属于该框架的类。可能删除包含的类吗?

在我的文件管理器主入口文件的顶部,我有以下几点:

//load Kohana framework for Authorisation 
include('../../../../../admin/index.php'); 

// If not a valid authenticated user, kill page 
if (! Auth::instance()->logged_in()) 
{ 
    die('Unauthorized'); 
} 

已经完成了身份验证,我不再需要包含的文件和类,因为这些都是与文件看似矛盾经理。有没有办法可以做到这一点,或者我误解了这里发生的事情?

被抛出的错误是在文件管理器类 - 的public_html /媒体/ JS/tiny_mce /插件/ ajaxfilemanager/INC/class.file.php [67]

function file($path=null) 
{ 
    $this->__construct($path); 
} 

回答

3

Class xyz not found不是的标志冲突 - 它可能不会被加载的Kohana引导程序。

没有办法在PHP脚本中“卸载”类。如果两个软件包共享一个类名称,则必须将它们加载到单独的脚本中,或将其中一个移动到单独的namespace(需要PHP 5.3+)。但正如所说的,就你而言,你可能只需要加载正确的引导文件来包含所需的类。

+0

谢谢。我已经测试了引导程序被加载(尽管我故意压制正常的路由发生) - 我需要的所有Kohana实际上工作正常,例如包括前端控制器index.php,然后使用Auth类进行简单的身份验证检查。我很困惑,为什么在一个文件管理器类中的函数抛出Kohana未找到错误。我在原始文章中添加了一些额外信息 – djonz 2011-04-12 13:30:02

+0

@djonz发生这种情况的最常见原因是,当使用“http://”路径包含文件时 - 在这种情况下,脚本将在单独的PHP实例中运行,类没有加载。除此之外,在脚本中间发现“类未找到”消息是没有意义的,如果该类先前已成功加载 – 2011-04-12 13:32:34

+0

有趣的重新包含的文件与http://,我会研究,看看是否是这个问题这里。谢谢 – djonz 2011-04-12 13:40:34