2013-05-30 2 views
0

Я общительный с ООП в Java или .Net мире, теперь меня просят работать с OOP на PHP в моей компании, но, похоже, это совсем другое, поскольку в PHP мы не делаем имеют сильные переменные типа, и я никогда не делал OOP раньше в PHP. Задача состояла в том, чтобы интегрировать API (Qlikview), написанный в .NET, и выполнять те же функции на PHP, что и в этом API. Документация может быть найдена: http://community.qlikview.com/docs/DOC-2606OOP с PHP (Webservices)

И для подключения к услугам я создаю новый класс, который будет связан с ('http: //: 4799/QMS'). Пока все работает. Но у меня проблема с изменением свойств в моей СМК. СМК устанавливается на самом сервере.

Допустим, я следующий код:

List<DocumentFolder> DocFolders = BackendClient.GetUserDocumentFolders(QvsGuid, DocumentFolderScope.All); 

Я написал бы это на самом деле, как и в Buttom код для того, чтобы получить те сведения, которые мне нужны (QvsGuid и DocumentFolderScope.All):

$DocFolders=(object)array(); 
$DocFolders=$this->client->GetUserDocumentFolders(array('qvsID' => getQlikviewServerInfo()->ServiceInfo->ID, 'scope' => 'General'))->GetUserDocumentFoldersResult->DocumentFolder; 

Но на исполнение, я:

Call to a member function GetUserDocumentFolders() on a non-object 

Так я думал, я мог бы создать класс для $ DocFolders типа DocumentFolder.

Я знаю, что это может быть только целенаправленная группа людей, которые могут ответить в отношении API, но я надеюсь, что кто-то может открыть новый путь перспективы.

+1

Прежде всего, вы должны спросить, что '$ this->' в этом контексте? –

ответ

1

Call to a member function GetUserDocumentFolders() on a non-object

Эта ошибка означает, что $ this-> клиент не является объектом, более чем вероятно, его утратившим еще не установлен.

Вы должны установить $this->client к экземпляру какого класса имеет GetUserDocumentFolders функцию

+0

Да, я действительно отсутствовал в классе, я только что создал, и все получилось отлично. Хороший совет. – mike27015