2012-03-01 51 views
1
的apiClient實例傳遞到另一個類

我試圖加載它自帶PHP中的谷歌日曆API,但首先加載API,我需要將apiClient類實例傳遞到另一個類,我因爲我使用Codeigniter加載apiClient庫,但沒有成功,但無法加載第二個類。不能與笨

我所做的:

$this->load->library('google/apiClient', NULL, 'apiClient'); 

echo gettype($this->apiClient); // object 

// This class needs the `apiClient` class to be passed to this, but fails 
$this->load->library('google/contrib/apiCalendarService', $this->apiClient); 

獲取引發的錯誤是這樣的:傳遞給apiCalendarService :: __結構()必須apiClient的一個實例,但沒有給出

參數1

但是,如果我這樣做:

$this->load->library('google/contrib/apiCalendarService', array($this->apiClient)); 

它會拋出這個錯誤(通過$this->apiClient在數組):傳遞給apiCalendarService

參數1 :: __構造()必須apiClient的一個實例,數組給定

是什麼這裏的問題?我怎樣才能將apiClient專門通過apiCalendarService課程?

回答

1

這裏的問題是,笨期望的陣列作爲傳遞給所有庫的第一個參數,所以並非所有的類適合於由默認爲CI庫(特別地,該期望的構造參數的)。

在這裏我看到兩個選項:

  1. 裝入該死的事「老辦法」:include類和實例new apiCalendarService($this->apiClient)
  2. 創建一個包裝類爲「縮小差距」兩個不兼容的框架之間

選項#1是兩行代碼,順便。