Skip to content

Symfony Bundle for the Neo4j Graph Database

License

Notifications You must be signed in to change notification settings

esynaps/neo4j-symfony

 
 

Repository files navigation

Neo4j Symfony Bundle

Latest Version Build Status Code Coverage Quality Score Total Downloads

Install

Via Composer

$ composer require neo4j/neo4j-bundle

If you want to use the an EntityManager you need to install a GraphAware OGM

$ composer require graphaware/neo4j-php-ogm:@rc

Enable the bundle in your kernel:

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Neo4j\Neo4jBundle\Neo4jBundle(),
    );
}

Documentation

The bundle is a convenient way of registering services. We register Connections, Clients and EntityManagers. You will always have alias for the default services:

  • neo4j.connection
  • neo4j.client
  • neo4j.entity_manager.*

Minimal configuration

neo4j:
  connections:
    default: ~

With the minimal configuration we have services named:

  • neo4j.connection.default
  • neo4j.client.default
  • neo4j.entity_manager.default*

Full configuration

neo4j:
  profiling: 
    enabled: true
  connections:
    default:
      scheme: bolt # default (must be either "http" or "bolt")
      host: localhost # default
      port: 7474 # optional, will be set to the proper driver's default port if not provided
      username: neo4j # default
      password: neo4j # default
    second_connection:
      username: foo
      password: bar
  clients:
    default:
      connections: [default, second_connection]
    other_client:
      connections: [second_connection]
    foobar: ~ # foobar client will have the "default" connection
  entity_managers:
    default: 
      client: other_client # defaults to "default"
      cache_dir: "%kernel.cache_dir%/neo4j" # defaults to system cache

With the configuration above we would have services named:

  • neo4j.connection.default
  • neo4j.connection.second_connection
  • neo4j.client.default
  • neo4j.client.other_client
  • neo4j.client.other_foobar
  • neo4j.entity_manager.default*

* Note: EntityManagers will only be available if graphaware/neo4j-php-ogm is installed.

Testing

$ composer test

Example application

See an example application at https://github.com/neo4j-examples/movies-symfony-php-bolt

License

The MIT License (MIT). Please see License File for more information.

About

Symfony Bundle for the Neo4j Graph Database

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 87.1%
  • HTML 12.8%
  • CSS 0.1%