Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A PHP client library for easily accessing Ruby on Rails-based REST services
PHP
tree: 7c976f5008

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
examples
lib
tests
.travis.yml
LICENSE
README.textile
composer.json
phpunit.xml.dist

README.textile

PHP ActiveResource

Click here to lend your support to: phpactiveresource and make a donation at www.pledgie.com !

This is a PHP class for accessing Ruby on Rails REST APIs in an ActiveResource style of coding. The benefit is easier use of RoR-based REST services without having to roll your own CURL-based client each time. Hopefully this class saves a few people some time coding in PHP against RoR-based REST services. It’s by no means an exhaustive port, and some methods are missing, but it does try to cover all the basics.

Note: You will need the php curl extension installed on your system. On Ubuntu, you can install it via:

sudo apt-get install php5-curl

Usage

With Composer

Create a composer.json file with the following:

{
	"require": {
		"phpactiveresource/phpactiveresource": "dev-master"
	}
}

Now load the script via Composer’s autoloader:

<?php

require_once 'vendor/autoload.php';

use ActiveResource\ActiveResource;

class Song extends ActiveResource {
	public $site = 'http://localhost:3000/';
	public $element_name = 'songs';
}

// etc.

?>

Without Composer

<?php

require_once ('lib/ActiveResource.php');

class Song extends ActiveResource {
    var $site = 'http://localhost:3000/';
    var $element_name = 'songs';
}

// create a new item
$song = new Song (array ('artist' => 'Joe Cocker', 'title' => 'A Little Help From My Friends'));
$song->save ();

// fetch and update an item, chaining statements
$song->find (44)->set ('title', 'The River')->save ();

// fetch and update, line by line
$song->find (44);
$song->title = 'The River';
$song->save ();

// get all songs
$songs = $song->find ('all');

// delete a song
$song->find (44);
$song->destroy ();

// custom method
$songs = $song->get ('by_year', array ('year' => 1999));

?>

Extra URL params

If you want to add extra params to the end of the url eg: an API key, you can set $extra_params

<?php

require_once ('lib/ActiveResource.php');

class Song extends ActiveResource {
    var $site = 'http://localhost:3000/';
    var $element_name = 'songs';
    var $extra_params = '?key=123456789';
}

Extra Http Headers

If you need to add extra http request headers you can set $request_headers

<?php

require_once ('lib/ActiveResource.php');

class Song extends ActiveResource {
    var $site = 'http://localhost:3000/';
    var $element_name = 'songs';
    var $request_headers = array("x-api-key: some-api-key-here");
}

See the Github Wiki pages for more examples and documentation.

Something went wrong with that request. Please try again.