如何使用PHP CMIS客户端执行查询?

时间:2014-06-17 14:00:13

标签: php alfresco cmis ecm apache-chemistry

我想使用我从Apache Chemistry页面获得的PHP CMIS客户端执行一个简单的查询。作为概念证明,我认为以下代码应该按预期工作:

    <?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中定义,第39行cmis_repository_wrapper.php中的第22行

我在实施中遗漏了什么?或者化学项目页面提供的包装器有问题吗?

2 个答案:

答案 0 :(得分:1)

如果您使用的是Alfresco 4.2.f,则网址应为:

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

另外,也许你只是在包含你的代码片段时输错了它,但是没有“cm:document”这样的东西。我认为你的意思是“cmis:document”。

答案 1 :(得分:0)

我自己也遇到过一些问题。以下适用于我:

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

在您的情况下,您可以尝试:

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

我仍然在寻找不同的方法来获取查询,但还没有取得多大成功。 让我知道这是否适合你,如果你有另一种方式。