[編集] : 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」が存在することは知っていますが、これは使いたくありません...
++
フレッド。