The easiest way to install the client is to use Packagist and Composer, the brand new package manager for PHP >= 5.3.
Clone this repository wherever you want
git clone [email protected]:robowhois/robowhois-php-client.git
download composer in the cloned directory
wget http://getcomposer.org/composer.phar
and install the needed packages
php composer.phar install
then you can use RoboWhois in your code: bare in mind that the autoloading follows the PSR-0 standard: there is an auto-generated autoloader that you can use:
require 'vendor/autoload.php';
We try to provide an efficient way to document the features of this client, but bare in mind that, given RoboWhois API can change, this doc may be updated (last revision: 08/16/2012): we strongly recommend to take a look at the tests provided by this library as they are the simplest way to get in touch with the working code.
RoboWhois objects extend the class RoboWhois\ArrayObject, used to provide
a set of convenient methods for accessing data returned by the API.
Thanks to this class you are able to access objects' properties as arrays' ones:
$account = $robowhois->account();
// $account is an instance of RoboWhois\Account
echo $account['credits_remaining'];
and you can also rely on magic methods to convert those indexes in getters:
echo $account->getCreditsRemaining();
The account API is supposed to return informations about the account which is making requests to the RoboWhois webservice:
<?php
use RoboWhois\RoboWhois;
use RoboWhois\Exception;
require 'vendor/autoload.php';
$robowhois = new RoboWhois('INSERT-YOUR-API-KEY-HERE');
try {
$account = $robowhois->account();
echo $account->getCreditsRemaining();
} catch (Exception $e) {
echo "The following error occurred: " . $e->getMessage();
}Take a look at the RoboWhois\Account class to understand which attributes
are available from the API.
You can take a look at the sample/account.php script provided inside this
repository, or run it
php sample/account.php
The index API is supposed to return raw text/plain WHOIS records:
<?php
use RoboWhois\RoboWhois;
use RoboWhois\Exception;
require 'vendor/autoload.php';
$robowhois = new RoboWhois('INSERT-YOUR-API-KEY-HERE');
try {
echo $robowhois->whois('robowhois.com');
} catch (Exception $e) {
echo "The following error occurred: " . $e->getMessage();
}You can take a look at the sample/index.php script provided inside this
repository, or run it
php sample/index.php
The record API is supposed to return a JSON representation of the index one:
<?php
use RoboWhois\RoboWhois;
use RoboWhois\Exception;
require 'vendor/autoload.php';
$robowhois = new RoboWhois('INSERT-YOUR-API-KEY-HERE');
try {
$whois = $robowhois->whoisRecord('robowhois.com');
echo $whois['daystamp'] . "\n";
echo $whois->getRecord();
} catch (Exception $e) {
echo "The following error occurred: " . $e->getMessage();
}You can take a look at the sample/record.php script provided inside this
repository, or run it
php sample/record.php
The properties API is supposed to return the parsed WHOIS record for a domain:
<?php
use RoboWhois\RoboWhois;
use RoboWhois\Exception;
require 'vendor/autoload.php';
$robowhois = new RoboWhois('INSERT-YOUR-API-KEY-HERE');
try {
$domain = $robowhois->whoisProperties('robowhois.com');
echo $domain['properties']['created_on'] . "\n";
} catch (Exception $e) {
echo "The following error occurred: " . $e->getMessage();
}You can take a look at the sample/properties.php script provided inside this
repository, or run it
php sample/properties.php
The parts API is supposed to return the WHOIS record for a domain without merging the one or more responses returned by the contacted WHOIS server(s):
<?php
use RoboWhois\RoboWhois;
use RoboWhois\Exception;
require 'vendor/autoload.php';
$robowhois = new RoboWhois('INSERT-YOUR-API-KEY-HERE');
try {
$domain = $robowhois->whoisParts('robowhois.com');
echo $domain['parts'][0]['body'] . "\n";
} catch (Exception $e) {
echo "The following error occurred: " . $e->getMessage();
}You can take a look at the sample/parts.php script provided inside this
repository, or run it
php sample/parts.php
The availability API is supposed to give a feedback about the registration of a particular domain:
<?php
use RoboWhois\RoboWhois;
use RoboWhois\Exception;
require 'vendor/autoload.php';
$robowhois = new RoboWhois('INSERT-YOUR-API-KEY-HERE');
try {
$domains = array(
'google.com', 'mycustomabsurddomainnamenooneeverregistered.ch'
);
foreach ($domains as $domain) {
$availability = $robowhois->whoisAvailability($domain);
if ($availability['available']) {
echo sprintf("%s is available!", $domain) . "\n";
} else {
echo sprintf("%s is registered!", $domain) . "\n";
}
}
} catch (Exception $e) {
echo "The following error occurred: " . $e->getMessage();
}There are a couple convenient methods to quickly check a domain's availability:
you can use $robowhois->whoisAvailability($domain) and
$robowhois->isRegistered($domain).
You can take a look at the sample/availability.php script provided inside this
repository, or run it
php sample/availability.php
You can generate PHP documentation with doxygen:
doxygen docs/.dox
The client is tested with phpunit; you can run the tests, from the repository's root, by doing:
phpunit
Some tests require internet connection (to test against a real API response),
so they are disabled by default; to run them add a .token file under the test
directory containing your RoboWhois API key and run
phpunit test/