Maileon PHP client  1.5.0
Easily integrate your PHP application with Maileon.
MaileonApiClient.php
1 <?php
14 // Set our classloader for com_maileon_... classes
15 spl_autoload_register('classloader', true, true);
16 
17 function test_classloader($className)
18 {
19  if (strpos($className, "com_maileon") === 0) {
20  return classloader($className);
21  }
22 }
23 
24 if (defined('RUNNING_IN_PHPUNIT') && RUNNING_IN_PHPUNIT) {
25  spl_autoload_register('test_classloader');
26 }
27 
28 $debug = false;
29 
30 initializeStaticClasses();
31 
36 function initializeStaticClasses()
37 {
40  com_maileon_api_contacts_StandardContactField::init();
41  com_maileon_api_contactevents_DataType::init();
42  com_maileon_api_transactions_DataType::init();
43 }
44 
58 function setupLogging($logDirectory, $logLevel)
59 {
60 
61 }
62 
69 function apiError($message)
70 {
71 
72 }
73 
79 function isDebug()
80 {
81  return XQDebug::isDebug();
82 }
83 
89 class XQDebug
90 {
91 
92  private static $debug = false;
93 
98  public static function setDebug($isDebug)
99  {
100  XQDebug::$debug = $isDebug;
101  }
102 
103  public static function isDebug()
104  {
105  return XQDebug::$debug;
106  }
107 }
108 
115 function classloader($className)
116 {
117  $base = dirname(__FILE__);
118  $path = explode('_', $className);
119  $last = array_pop($path);
120 
121  $class = strtolower(implode('/', $path)) . "/" . $last;
122  $file = $base . "/" . $class . ".php";
123 
124  // The namespace uses \ as separators. As the namespace itself is part of the directory structure, replace those by /
125  $file = str_replace('\\', '/', $file);
126 
127  if (XQDebug::isDebug() == true) echo '[Classloader] Loading class <b>' . $className . '</b> from file: ' . $file . '<br />';
128 
129  if (file_exists($file)) {
130  require_once $file;
131  } else {
132  apiError('Class "' . $className . '" could not be loaded from: "' . $file . '". Make sure the file exists in the given path.');
133  }
134 }
static setDebug($isDebug)