artdarek/neo4j-4-laravel

Neo4j for Laravel 4.

1.0.0 2013-10-07 14:36 UTC

This package is not auto-updated.

Last update: 2024-12-21 16:20:38 UTC


README

Neo4j-4-laravel is a simple Neo4j service provider for Laravel 4. It is based on Neo4jPHP witch is a PHP library wrapping the Neo4j graph database. The goal of Neo4jPHP is to provide you with access to all the functionality of the Neo4j REST API via PHP. The goal of Neo4j-4-laravel is to ensure you Neo4jPHP easy integration with Laravel 4.

Installation

Use composer to install this package.

$ composer require artdarek/neo4j-4-laravel

Registering the Package

Add the Neo4j-4-laravel Service Provider to your config in app/config/app.php:

'providers' => array(
	'Artdarek\Neo4j\Neo4jServiceProvider'
),

Configuration

There are two ways to configure neo4j-4-laravel. You can choose the most convenient way for you. You can put your Neo4j credentials into app/config/database.php (option 1) file or use package config file which you can be generated through command line by artisan (option 2).

Option 1: Configure neo4j using app/config/database.php file

Simply add this code at the end of your app/config/database.php file:

	/*
	|--------------------------------------------------------------------------
	| Neo4j Databases
	|--------------------------------------------------------------------------
	*/

	'neo4j' => [
		'default' => [
			'host'     => 'localhost',
			'port'     => 7474,
			'username' => null,
			'password' => null,
		],
	],

Option 2: Configure neo4j using package config file

Run on the command line from the root of your project:

$ php artisan config:publish artdarek/neo4j-4-laravel

Set your neo4j-4-laravel credentials in app/config/packages/artdarek/neo4j-4-laravel/config.php

return array( 

	/*
	|--------------------------------------------------------------------------
	| Neo4j Config
	|--------------------------------------------------------------------------
	*/
	'default' => array(

		/**
		 * Host
		 */
		'host' => 'localhost',

		/**
		 * Port
		 */	
		'port' => 7474, 

		/**
		 * Credentials
		 */
		'username' => null,
		'password' => null 

	),
);

Usage

Nodes are the first of the two major entity types in a graph database. A node is a collection of zero or more key-value pairs. Neo4jPHP makes it very easy to create and work with nodes.

Creating new node

The following code snippet creates some nodes, sets some properties on each, and saves the nodes to the server.

$arthur = Neo4j::makeNode();
$arthur->setProperty('name', 'Arthur Dent')
    ->setProperty('mood', 'nervous')
    ->setProperty('home', 'small cottage')
    ->save();

$ford = Neo4j::makeNode();
$ford->setProperty('name', 'Ford Prefect')
    ->setProperty('occupation', 'travel writer')
    ->save();

$arthurId = $arthur->getId();

Retrieve a Node by ID and Update

Now that the node has been created, the node's id can be used to retrieve the node from the server later. The following code retrieves the node and prints its properties:

$character = Neo4j::getNode($arthurId);

foreach ($character->getProperties() as $key => $value) {
    echo "$key: $value\n";
}

// prints:
// name: Arthur Dent
// mood: nervous
// home: small cottage

$character->removeProperty('mood')
    ->setProperty('home', 'demolished')
    ->save();

foreach ($character->getProperties() as $key => $value) {
    echo "$key: $value\n";
}

// prints:
// name: Arthur Dent
// home: demolished

Delete a Node

A node can be deleted as long as its ID has been set. Also note that a node cannot be deleted if it is the start or end point of any relationship.

$earth = Neo4j::getNode(123);
$earth->delete();

More usage examples

Go to Neo4jPHP Wiki to find more usage examples.