Как выполнить запрос с помощью клиента PHP CMIS?

Я хочу выполнить простой запрос, используя клиент PHP CMIS, который я получил со страницы Apache Chemistry. В качестве доказательства концепции я решил, что следующий код должен работать так, как ожидалось:

    <?php
    require_once 'cmis_repository_wrapper.php';

    $repo_url     = 'http://localhost:8080/alfresco/s/cmis';
    $repo_username= 'admin';
    $repo_password= 'admin';
    $query        = 'SELECT * FROM cm:document';

    $client = new CMISService($repo_url, $repo_username, $repo_password);        
    $objs   = $client->query($query);

    foreach($objs->objectList as $obj)
    {
       print_r($obj);
    }
    ?>

Однако, когда я пытаюсь запустить это, я получаю следующую ошибку:

Предупреждение: DOMDocument::loadXML(): Entity 'nbsp' не определен в Entity, строка: 22 в cmis_repository_wrapper.php в строке 392

Я что-то упустил в своей реализации? Или что-то не так с оболочкой, предоставленной страницей проекта Chemistry?


person Kross    schedule 17.06.2014    source источник
comment
Вы используете устаревшую конечную точку CMIS. См. stackoverflow.com/questions/22218781/ .   -  person Florian Müller    schedule 17.06.2014
comment
Я попытался изменить конечную точку на ту, что указана в ответе, а также на другую (alfresco/cmisatom). Я не получаю ошибку, которую я получал раньше, но массив возвращается пустым. Я знаю, что у меня есть документы в репозитории. И я запросил как с помощью curl, так и с помощью workbench, и я могу их увидеть, но когда я запрашиваю здесь, я не могу.   -  person Kross    schedule 18.06.2014


Ответы (2)


Если вы используете Alfresco 4.2.f, URL-адрес должен быть таким:

http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.0/atom

Кроме того, возможно, вы просто опечатались, когда включали свой фрагмент, но такого понятия, как «cm:document», не существует. Я думаю, вы имели в виду "cmis:document".

person Jeff Potts    schedule 18.06.2014
comment
Да, но этот, кажется, вызывает у меня проблему, когда я его вызываю... Я не получаю никаких данных обратно в PHP, хотя он отлично работает в рабочей среде. Используя это: http://localhost:8080/alfresco/s/cmis. Кажется, на данный момент он работает, хотя и дает мне массу уведомлений. - person Kross; 18.06.2014

У меня самого возникла проблема. Для меня работает следующее:

$query = <<<CMIS
  SELECT *
  FROM cmis:document
  WHERE ( CONTAINS('cmis:name:\'$query*\'')
  OR CONTAINS('\'$query\''))
  CMIS;

В вашем случае вы можете попробовать:

$query = <<<CMIS
  SELECT *
  FROM cmis:document
  CMIS;

Я все еще ищу разные способы получить запрос, но не добился большого успеха. Дайте мне знать, если это работает для вас, и если у вас есть другой способ сделать это.

person Emir Memic    schedule 13.10.2014