名称间距问题?或者其他什么


Namespacing issue? or something else?

我正在尝试在php中实现Graphaware''neo4j客户端neo4j php客户端

我运行composer将文件下载到工作目录并尝试使用启动客户端

require_once(BASEPATH.'vendor/autoload.php');
use GraphAware'Neo4j'Client'ClientBuilder;
$client = ClientBuilder::create()->addConnection('default', 'http://neo4j:myPassword@localhost:7474')->build();

我得到这个错误。

<b>Fatal error</b>:  Class 'GraphAware'Neo4j'Client'ClientBuilder' not found in <b>*path_to_my_www_dir'index.php*</b> on line <b>36</b><br />

我为什么看到这个?

我是GraphAware Neo4j客户端的维护人员。

我敢打赌,您在阅读存储库的自述文件时受到了干扰。

当前主分支包含的代码4.0@alpha,因此,如果您在命令行composer require graphaware/neo4j-php-client中运行,composer很有可能在3.X系列中安装了最后一个稳定版本,因此不存在所需的类。

我建议您尝试通过运行来安装alpha7版本的客户端

composer require graphaware/neo4j-php-client:^4.0@alpha

如果您有其他问题,请告诉我

我们遇到了neo4j-php-client也不支持PHP 5.5的问题。虽然"正确"的解决方案是升级到新版本的PHP,但这并不是最方便的——尤其是如果你只是想开始评估这个库的话。需要PHP>=5.6的唯一原因是Neo4j的bolt协议,所以只要你坚持使用http协议,一切都会很好。不过,为了让composer发挥出色,您必须对neo4j-php-clientcomposer.json:进行一些更改

  1. "php": ">= 5.6"更改为"php": ">= 5.5"
  2. "graphaware/neo4j-bolt": "^1.5"替换为"graphaware/neo4j-common": "^3.0"

我们最终在Github上分叉了库,然后更新了composer.json,使用了neo4j-php-client的修改版本。相关部分包括:

{
    ...
    "require": {
        ...
        "graphaware/neo4j-php-client": "dev-OptionalBoltSupport"
    },
    ...
    "repositories": [
        ...
        {
            "type": "vcs",
             "url": "https://github.com/wnielson/neo4j-php-client"
        }
    ]
}

完成此操作后,您可以运行composer update,并且neo4j-php-client应该安装良好。

您只需要像文档中所说的那样要求vendor/autoload.php
所以require_once 'vendor/autoload.php';将解决您的问题
问题是,即使您使用的是use ...,您的php文件也对您试图创建的php类文件一无所知
您需要使用include或require函数来包含该文件。