4

[編集] : OK、テスト中にこの投稿を数回更新しましたが、現在は機能しています...以下に正しいコードを記載します... [/編集]

今朝から、「Neoxygen/Neoclient」を ServiceProvider および Facade として、Laravel 5.1 の新規インストールに使用しようとしています。

このために、composer.json に "neoxygen/neoclient": "^3.0" が必要です。

次に、「NeoClientServiceProvider」という新しい ServiceProvider を「app/Providers」に作成しました。

その登録方法で。接続をインスタンス化しました:

public function register()
{
    $this->app->singleton('neoclient', function ($app) {
        return ClientBuilder::create()
            ->addConnection('default', 'http', env('NEO4J_HOST'), intval(env('NEO4J_PORT')), true, env('NEO4J_USER'), env('NEO4J_PASSWORD'))
            ->setDefaultTimeout( intval(env('NEO4J_TIMEOUT')) )
            ->setAutoFormatResponse(true)
            ->build();
    });
}

次に、プロバイダーにフル クラスを含め、エイリアスを設定して、「config/app.php」に ServiceProvider を登録しました。

'providers' => [ 
...
App\Providers\NeoClientServiceProvider::class
...
],
'aliases' => [
...
'NeoClient' => App\NeoClient::class
...
]

また、Facade を次のように拡張する NeoClient クラスも作成しました。

<?php namespace App;

use \Illuminate\Support\Facades\Facade;

class NeoClient extends Facade
{
/**
 * Get the registered name of the component.
 *
 * @return string
 */
protected static function getFacadeAccessor() { return 'neoclient'; }
}

そして最後に、次のようなコントローラーがあります。

<?php namespace App\Http\Controllers;

use NeoClient;

class GenreController extends Controller
{

public function __construct()
{
    // needed authentication
    //$this->middleware('oauth');
}


public function create()
{
    $data = NeoClient::sendCypherQuery("MATCH (g:Genre) RETURN COUNT(g) AS total")->getRows();
    return response()->json($data);
}

}

PS : 「NeoEloquent」が存在することは知っていますが、これは使いたくありません...

++

フレッド。

4

1 に答える 1

0

もちろんできます!クライアントのリンクは次のとおりです。

https://github.com/graphaware/neo4j-php-client

++

于 2015-10-03T09:38:46.070 に答える