This is a basic 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 them with:
sudo apt-get install php5-curl
<?php require_once ('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)); ?>
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 ('ActiveResource.php'); class Song extends ActiveResource { var $site = 'http://localhost:3000/'; var $element_name = 'songs'; var $extra_params = '?key=123456789'; }