Goals If you are a PHP developer, this guide provides an overview of options for connecting to Neo4j. While this guide is not comprehensive it will introduce the different drivers and link to the relevant resources. Prerequisites You should be… Learn More →

Goals
If you are a PHP developer, this guide provides an overview of options for connecting to Neo4j. While this guide is not comprehensive it will introduce the different drivers and link to the relevant resources.
Prerequisites
You should be familiar with graph database concepts and the property graph model. You should have installed Neo4j and made yourself familiar with our Cypher Query language.
Intermediate


Neo4j for PHP Developers

php logo

You’re a PHP developer and want to start with Neo4j? Here you go.

Whether you’re using frameworks like Symfony and Laravel or you’re developing without frameworks, you’ll find an adequate library for your use case.

If you have any questions, you can always find a community member around on Twitter or StackOverflow by tagging your subjects with #neo4j-php.

Members of the PHP community have invested a lot of time and love to develop all these drivers, so please if you use them, provide feedback to the authors.

The Example Project

The Neo4j example project is a small, one page webapp for the movies database built into the Neo4j tutorial. The front-end page is the same for all drivers: movie search, movie details, and a graph visualization of actors and movies. Each backend implementation shows you how to connect to Neo4j from each of the different languages and drivers.

You can learn more about our small, consistent example project across many different language drivers here. You will find the implementations for all drivers as individual GitHub repositories, which you can clone and deploy directly.

Using Neo4j in a standalone PHP environment

If you prefer to develop without frameworks, these libraries are made for you:

Neo4j Community Drivers

The drivers below have been thankfully contributed by the Neo4j community. Many of these are fully featured and well maintained. But we don’t take any reponsibility for their fitness for use with the most recent Versions of Neo4j.

GraphAware PHP Client

GraphAware PHP Client is a powerful and flexible PHP Client for Neo4j with MultiDB support, full High-Availability support for Neo4j Enterprise, and a convenient object formatter for handling graph results. The 4.0 release contains the following features:

  • Support for the Bolt binary protocol
  • Full-fledged Response Graph format
  • Full High-Availability support, with master re-election detection, slaves fallback built-in mechanism, and convenience methods for directing write and read queries to different databases.
  • Enterprise support by GraphAware
<?php



require_once 'vendor/autoload.php';



use GraphAware\Neo4j\Client\ClientBuilder;



$client = ClientBuilder::create()

    ->addConnection('bolt', 'bolt://neo4j:password@localhost:7687')

    ->build();

$query = "MATCH (n:Person)-[:FOLLOWS]->(friend) RETURN n.name, collect(friend) as friends";

$result = $client->run($query);



foreach ($result->getRecords() as $record) {

    echo sprintf('Person name is : %s and has %d number of friends', $record->value('name'), count($record->value('friends'));

}

Author

Christophe Willemsen

Example

https://github.com/neo4j-examples/movies-bolt-php

Package

composer require graphaware/neo4j-php-client:^4.0

Source

https://github.com/graphaware/neo4j-php-client

Docs

http://graphaware.com/resources

NeoEloquent for Laravel

Neo4j Graph Eloquent Driver for Laravel 4

Author

Abed Halawi

Source

https://github.com/Vinelab/NeoEloquent

Neo4jPHP

Neo4jPHP provides an API that is both intuitive and flexible, and it takes advantage of ‘under-the-hood’ performance enhancements, such as caching and lazy-loading.

Author

Josh Adell

Example Project

https://github.com/neo4j-examples/movies-php-neo4jphp

Package

composer require "everyman/neo4jphp"

Source

http://github.com/jadell/neo4jphp

Docs

http://github.com/jadell/neo4jphp/wiki/Introduction

Neo4j-OGM-PHP

This library provides a basic object-graph-mapping system and is built on top of Doctrine and the Neo4jPHP library.

Author

Louis-Philippe Huberdeau

Source

https://github.com/lphuberdeau/Neo4j-PHP-OGM

Neo4jOGMBundle

This bundle is wraps the Neo4j-PHP-OGM library mentioned above for the Symfony framework.

Author

Klaus Silveira

Source

https://github.com/klaussilveira/neo4j-ogm-bundle

Neo4Laravel

A Neo4j Laravel 4.1 OGM Provider based on Neo4j-OGM-PHP.

Author

Lukas Rezek

Source

https://github.com/lrezek/Neo4Laravel

Applications built with PHP and Neo4j

Omnomhub

Like for Github, but for recipes!

Author

Michelle Sanver

Source

https://github.com/Omnomhub/omnomhub

Thesaurus Manager

If you want to built your own thesaurus, this app is made for you

Author

Hasan Tayyar

Example

http://hasantayyar.github.io/thesaurus-manager

Source

https://github.com/okulbilisim/thesaurus-manager

Graphgen

Graph generation engine based on a Cypher DSL

Author

Christophe Willemsen

Source

https://github.com/graphaware/graphgen

Docs

http://graphgen.graphaware.com