2011-04-12 70 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