PHP wrapper of the Neo4j REST interface
Pull request Compare This branch is 148 commits behind jadell:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Author: Josh Adell
Copyright (c) 2011-2012

PHP Wrapper for the Neo4j graph database REST interface

In-depth documentation and examples:

API documentation:


  1. Download latest PHAR from
  2. require("phar://neo4jphp.phar");

Connection Test

From the command line, execute the following:

> php neo4jphp.phar localhost

Change localhost to the host name of your Neo4j instance. Port defaults to 7474, or can be specified as the second parameter after the host name.

Execute the following to see more command line options:

> php neo4jphp.phar




  • Retrieve reference node in one operation
  • Find and return only the first matching relationship
  • Optionally use HTTPS and basic authentication
  • Keep index configuration when retrieved from server
  • Add Memcache caching plugin
  • Do not allow use if cUrl is not detected
  • PHAR is uncompressed by default


  • Create full-text indexes; easier instantiation of common index types
  • Client can be initialized with a string and port instead of a Transport object
  • Setting a null property has the same effect as removing the property
  • Handle scalar values from Gremlin scripts properly
  • Cypher and Gremlin queries can take an array of named parameters
  • Cypher no longer uses positional parameters
  • Use server info to determine Cypher plugin endpoint


  • Open a batch on the client to apply to all subsequent data manipulation calls
  • Batch operations correctly set and update locally cached entities
  • Method chaining on node and relationship save, load and delete
  • Instantiate new nodes and relationships from the client
  • Change to cache initialization; new EntityCache object


  • Client::getServerInfo() retrieves server information and connection test
  • Add to index brought up to Neo4j server 1.5 specification
  • Return paths from Cypher queries
  • Properly encode URL entities
  • Connection and transport errors throw exceptions
  • Fix "unable to connect" bug from returning false positive