[EDIT]: Хорошо, я обновил этот пост несколько раз во время моих тестов, и теперь он работает … Я даю правильный код ниже … [/ EDIT]
С сегодняшнего утра я пытаюсь использовать «Neoxygen / Neoclient» как ServiceProvider и Facade в новую новую установку Laravel 5.1
Для этого мне нужен «неоксиген / неоклиент»: «^ 3.0» в моем composer.json
Затем я создал новый ServiceProvider в «app / Providers» под названием «NeoClientServiceProvider».
В своем методе регистрации; Я создал экземпляр соединения:
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(); }); }
Затем я зарегистрировал ServiceProvider в «config / app.php», включив полный класс в моих провайдеров и установив псевдоним:
'providers' => [ ... App\Providers\NeoClientServiceProvider::class ... ], 'aliases' => [ ... 'NeoClient' => App\NeoClient::class ... ]
Я также создал класс NeoClient, который расширяет Facade следующим образом:
<?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» существует, но я не хочу использовать этот …
++
Фред.