EPP-DRS API Manual

EPP-DRS exposes mature and robust APIs for developers who wish to

  • develop their own modules,
  • integrate EPP-DRS with other application and services,
  • add custom handlers to various EPP-DRS events

Currently, you are able to create two types of custom modules: Payment and Registry.

API Reference

The latest EPP-DRS API reference, generated with PHPDoc is available here

Payment module API (PAPI)

Payment module is a bridge between EPP-DRS and payment proccessing service.
See EPP-DRS Payment Modules API for more information.

Registry Module API (RAPI)

Registry module communicate with a registry or SRS to register, renew domains, create contacts and hosts etc.
See EPP-DRS Registry Modules API for more information.

Event Handlers

To help you integrate EPP-DRS with your existing environment, we created event handlers. Event handlers allow you to react to different EPP-DRS internal events. For example, you can execute your own PHP code when new client is created or before domain is created or when new invoice is issued.

See Event Handlers for more information.

Object model and common techniques

Sections below describe object model and programming techniques that are common to all EPP-DRS APIs.

Logging and debugging

To log a message to system log, use the following code:

Log::Log($message, $severity);

Possible values for $severity are E_ERROR, E_WARNING, E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE.
Depending on severity, log entries are displayed differently in log viewer.
In case of E_ERROR, log entry will also contain execution backtrace.

Throwing Exceptions

You can either throw Exception or CustomException. These are actually equal, because CustomException is thrown on all uncaught exceptions via set_exception_handler().

Exception will add a record to log with severity E_USER_ERROR and draw templates/exception.tpl template.
When thrown in Control panels (CONTEXTS::$APPCONTEXT = APPCONTEXT::REGISTRANT_CP or CONTEXTS::$APPCONTEXT = APPCONTEXT::REGISTRAR_CP), it will draw templates/exception_cp.tpl template.

if (false == true)
 throw new CustomException("This will appear inside grey box surrounded by red border.");

Accessing global constants and objects

CONFIG

System configuration parameters are taken from database, config.ini. Some parameters are hard-coded.
You can access most of them via global CONFIG enumerator.

Here is a sample:

// $currency will be assigned a value of current currency symbol.
$currency = CONFIG::$CURRENCY;

CONTEXTS:APPCONTEXT

You can use CONTEXTS::APPCONTEXT constant to retreive current application context in your code.
The value is one of http://epp-drs.com/docs/phpdoc/Common/APPCONTEXT.html members.

Here is a sample:

switch (CONTEXTS:APPCONTEXT)
{
  case APPCONTEXT::ORDERWIZARD :
   echo("We are in order wizard");
  break;
  case APPCONTEXT::REGISTRANT_CP :
   echo ("We are in /client");
  break;
  case APPCONTEXT::REGISTRAR_CP :
   echo ("We are in /admin");
  break;
  default: 
    echo ("Context not defined yet");
  break;
}

Limitations

The following functions are not allowed in module code:

  • apd_*()
  • xdebug_*()
  • eval()
  • var_dump()
  • print_r()
  • classkit_*()
  • create_function()
  • call_user_func()

The following class names are not allowed in module code:

  • Reflection*()
 
epp-drs-api-docs.txt · Last modified: 2009/06/18 14:24 (external edit)