Jak na autoload neo4j Clienta v nette 2.4
- JindraK
- Člen | 2
Ahoj všem,
hraju si s Nette 2.4 a potřebuji do Mapperu dostat závislost na Neo4j
Clienta. Hraju si s tím celý den a nemůžu na to příjít…
Client pro Neo4j: https://github.com/…j-php-client
Moje třída:
<?php
namespace App\Model
use \GraphAware\Neo4j\Client\ClientInterface;
class BoardMapper
{
public function __construct(ClientInterface $neo4j) {
}
}
?>
Databáze se vytváří pomocí create:
<?php
ClientBuilder::create()
->addConnection('default', 'http://neo4j:password@localhost:7474')
->build();
?>
Co jsem zkoušel:
1. přidat třídu co config.neon
services:
neo4j:
class: \GraphAware\Neo4j\Client\ClientInterface
create: \GraphAware\Neo4j\Client\ClientBuilder::create()
setup:
– addConnection(‚default‘,
'http://neo4j:password@localhost:7474')
– build()
jenže to nejde, protože návratová třída z metody create() není ClientInterface. Pokud to změním na ClientBuilder, tak to projde, ale ClientInterface není nikde definovaný, takže tu metodu Nette ani nezavolá.
Pak jsem zkoušel zaregistrovat přímo do DI v bootstrapu:
<?php
$container->addService('neo4j', function ($container) {
return ClientBuilder::create()
->addConnection('default', 'http://neo4j:password@localhost:7474')
->build();
});
?>
Což sice také projde, ale stejně to pak hlásí chybu v mé třídě, že
není definována závislost ClientInterface.
Čiže je super, že si můžu registrovat přímo vlastní služby do
containeru, ale jak je pak volat?
Pročetl jsem dokumentaci několikrát a nikde jsem nenašel jak na to.
Díky za pomoc
Jindra
Editoval JindraK (12. 2. 2017 20:18)