diff --git a/src/classes/API/PlaceholdIt.php b/src/classes/API/PlaceholdIt.php
new file mode 100644
index 0000000..5b7bd08
--- /dev/null
+++ b/src/classes/API/PlaceholdIt.php
@@ -0,0 +1,107 @@
+
+ * @copyright Copyright 2007-2014, Josh Sherman
+ * @license http://www.opensource.org/licenses/mit-license.html
+ * @package PICKLES
+ * @link https://github.com/joshtronic/pickles
+ */
+
+/**
+ * Placehold.it API Interface
+ *
+ * @link http://placehold.it
+ */
+class API_PlaceholdIt extends Object
+{
+ /**
+ * URL
+ *
+ * Generates a Placehold.it URL based on the passed parameters.
+ *
+ * @param integer $width width of the image
+ * @param integer $height optional height of the image
+ * @param string $format optional format of the image
+ * @param string $background optional background color of the image
+ * @param string $foreground optional foreground color of the image
+ * @param string $text optional text to display in the image
+ * @return string Placehold.it URL
+ */
+ public function url($width, $height = null, $format = 'gif', $background = null, $foreground = null, $text = null)
+ {
+ // Checks if the format is valid
+ if (!in_array($format, ['gif', 'jpeg', 'jpg', 'png']))
+ {
+ throw new Exception('Invalid format. Valid formats: gif, jpeg, jpg and png.');
+ }
+ // Checks if foreground is present without background
+ elseif ($foreground && !$background)
+ {
+ throw new Exception('You must specify a background color if you wish to specify a foreground color.');
+ }
+ // Checks the background color's length
+ elseif ($background && strlen($background) < 6)
+ {
+ throw new Exception('The background color must be a 6 character hex code.');
+ }
+ // Checks the foreground color's length
+ elseif ($foreground && strlen($foreground) < 6)
+ {
+ throw new Exception('The foreground color must be a 6 character hex code.');
+ }
+
+ $url = 'http://placehold.it/' . $width;
+
+ if ($height)
+ {
+ $url .= 'x' . $height;
+ }
+
+ $url .= '.' . $format;
+
+ if ($background)
+ {
+ $url .= '/' . $background;
+ }
+
+ if ($foreground)
+ {
+ $url .= '/' . $foreground;
+ }
+
+ if ($text)
+ {
+ $url .= '&text=' . urlencode($text);
+ }
+
+ return $url;
+ }
+
+ /**
+ * URL
+ *
+ * Generates a Placehold.it
tag based on the passed parameters.
+ *
+ * @param integer $width width of the image
+ * @param integer $height optional height of the image
+ * @param string $format optional format of the image
+ * @param string $background optional background color of the image
+ * @param string $foreground optional foreground color of the image
+ * @param string $text optional text to display in the image
+ * @return string
tag with the Placehold.it URL
+ */
+ public function img($width, $height = null, $format = 'gif', $background = null, $foreground = null, $text = null)
+ {
+ return '
';
+ }
+}
+
+?>
diff --git a/tests/classes/API/PlaceholdItTest.php b/tests/classes/API/PlaceholdItTest.php
new file mode 100644
index 0000000..f6732ba
--- /dev/null
+++ b/tests/classes/API/PlaceholdItTest.php
@@ -0,0 +1,68 @@
+placeholdit = new API_PlaceholdIt();
+ }
+
+ public function testInstantiateObject()
+ {
+ $this->assertInstanceOf('API_PlaceholdIt', $this->placeholdit);
+ }
+
+ public function testURL()
+ {
+ $expected = 'http://placehold.it/350x150.png/ffffff/000000&text=PICKLES+Rules%21';
+ $url = $this->placeholdit->url(350, 150, 'png', 'ffffff', '000000', 'PICKLES Rules!');
+ $this->assertEquals($expected, $url);
+ }
+
+ /**
+ * @expectedException Exception
+ * @expectedExceptionMessage Invalid format. Valid formats: gif, jpeg, jpg and png.
+ */
+ public function testInvalidFormat()
+ {
+ $this->placeholdit->url(350, 150, 'invalid');
+ }
+
+ /**
+ * @expectedException Exception
+ * @expectedExceptionMessage You must specify a background color if you wish to specify a foreground color.
+ */
+ public function testForegroundNoBackground()
+ {
+ $this->placeholdit->url(350, 150, 'png', false, '000000');
+ }
+
+ /**
+ * @expectedException Exception
+ * @expectedExceptionMessage The background color must be a 6 character hex code.
+ */
+ public function testInvalidBackground()
+ {
+ $this->placeholdit->url(350, 150, 'png', 'fff');
+ }
+
+ /**
+ * @expectedException Exception
+ * @expectedExceptionMessage The foreground color must be a 6 character hex code.
+ */
+ public function testInvalidForeground()
+ {
+ $this->placeholdit->url(350, 150, 'png', 'ffffff', '000');
+ }
+
+ public function testIMG()
+ {
+ $expected = '
';
+ $url = $this->placeholdit->img(350, 150, 'png', 'ffffff', '000000', 'PICKLES Rules!');
+ $this->assertEquals($expected, $url);
+ }
+}
+
+?>