我正在尝试加载PHP中的Google日历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 :: __ construct()的参数1必须是apiClient的一个实例,没有给出
但是,如果我这样做:
$this->load->library('google/contrib/apiCalendarService', array($this->apiClient));
它将抛出此错误(在数组中传递$this->apiClient
):
传递给apiCalendarService :: __ construct()的参数1必须是apiClient的一个实例,给定数组
这是什么问题?如何将apiClient
专门传递给apiCalendarService
类?
答案 0 :(得分:1)
这里的问题是CodeIgniter期望一个数组作为传递给所有库的第一个参数,因此并非所有类都默认适合作为CI库(特别是那些期望构造函数参数的类)。
我在这里看到两个选项:
include
该类并实例化new apiCalendarService($this->apiClient)
顺便提一下,选项#1是两行代码。