neo4j/neo4j-bundle

Symfony integration for Neo4j

Package info

github.com/neo4j-php/neo4j-symfony

Type:symfony-bundle

pkg:composer/neo4j/neo4j-bundle

Statistics

Installs: 72 461

Dependents: 0

Suggesters: 0

Stars: 82

Open Issues: 17

1.3.2 2025-10-03 13:18 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 948be2b92df801c3523342415980217630e0a272

  • Ghlen Nagels <ghlen.woop@nagels.tech>
  • Nabeel Parkar <nabeel.woop@nagels.tech>

databasesymfonybundlegraphneo4jcypher


README

👁 Latest Version
👁 Static Analysis
👁 License
👁 Code Coverage
👁 Quality Score
👁 Total Downloads

Installation

Make sure Composer is installed globally, as explained in the installation chapter of the Composer documentation.

Applications that don't use Symfony Flex

Step 1: Download the Bundle

Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:

$ composer require neo4j/neo4j-bundle

Step 2: Enable the Bundle

Then, enable the bundle by adding it to the list of registered bundles in the config/bundles.php file of your project:

// config/bundles.php

return [
 // ...
 \Neo4j\Neo4jBundle\Neo4jBundle::class => ['all' => true],
];

Documentation

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

  • neo4j.driver
  • neo4j.client

Minimal configuration

neo4j:
 drivers:
 default: ~

With the minimal configuration we have services named:

  • neo4j.driver.default
  • neo4j.client

Full configuration example

This example configures the client to contain two instances.

neo4j:
 profiling: true
 default_driver: high-availability
 drivers:
 - alias: high-availability
 dsn: 'neo4j://core1.mydomain.com:7687'
 authentication:
 type: 'oidc'
 token: '%neo4j.openconnect-id-token%'
 priority: 1
 # Overriding the alias makes it so that there is a backup server to use in case
 # the routing table cannot be fetched through the driver with a higher priority
 # but the same alias.
 # Once the table is fetched it will use that information to auto-route as usual.
 - alias: high-availability
 dsn: 'neo4j://core2.mydomain.com:7687'
 priority: 0
 authentication:
 type: 'oidc'
 token: '%neo4j.openconnect-id-token%'
 - alias: backup-instance
 dsn: 'bolt://localhost:7687'
 authentication:
 type: basic
 username: '%neo4j.backup-user%'
 password: '%neo4j.backup-pass%'

Testing

$ composer test

Example application

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

License

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