/lib/Braintree.php

https://github.com/jeremykendall/braintree_php · PHP · 153 lines · 105 code · 11 blank · 37 comment · 6 complexity · fbfaefeb8158205c22386f91305b1c4d MD5 · raw file

  1. <?php
  2. /**
  3. * Braintree base class and initialization
  4. *
  5. * PHP version 5
  6. *
  7. * @copyright 2010 Braintree Payment Solutions
  8. */
  9. set_include_path(get_include_path() . PATH_SEPARATOR . realpath(dirname(__FILE__)));
  10. /**
  11. * Braintree PHP Library
  12. *
  13. * Provides methods to child classes. This class cannot be instantiated.
  14. *
  15. * @copyright 2010 Braintree Payment Solutions
  16. */
  17. abstract class Braintree
  18. {
  19. /**
  20. * @ignore
  21. * don't permit an explicit call of the constructor!
  22. * (like $t = new Braintree_Transaction())
  23. */
  24. protected function __construct()
  25. {
  26. }
  27. /**
  28. * @ignore
  29. * don't permit cloning the instances (like $x = clone $v)
  30. */
  31. protected function __clone()
  32. {
  33. }
  34. /**
  35. * returns private/nonexistent instance properties
  36. * @ignore
  37. * @access public
  38. * @param string $name property name
  39. * @return mixed contents of instance properties
  40. */
  41. public function __get($name)
  42. {
  43. if (array_key_exists($name, $this->_attributes)) {
  44. return $this->_attributes[$name];
  45. }
  46. else {
  47. trigger_error('Undefined property on ' . get_class($this) . ': ' . $name, E_USER_NOTICE);
  48. return null;
  49. }
  50. }
  51. public function _set($key, $value)
  52. {
  53. $this->_attributes[$key] = $value;
  54. }
  55. /**
  56. *
  57. * @param string $className
  58. * @param object $resultObj
  59. * @return object returns the passed object if successful
  60. * @throws Braintree_Exception_ValidationsFailed
  61. */
  62. public static function returnObjectOrThrowException($className, $resultObj)
  63. {
  64. $resultObjName = Braintree_Util::cleanClassName($className);
  65. if ($resultObj->success) {
  66. return $resultObj->$resultObjName;
  67. } else {
  68. throw new Braintree_Exception_ValidationsFailed();
  69. }
  70. }
  71. }
  72. require_once('Braintree/Modification.php');
  73. require_once('Braintree/Instance.php');
  74. require_once('Braintree/Address.php');
  75. require_once('Braintree/AddOn.php');
  76. require_once('Braintree/Collection.php');
  77. require_once('Braintree/Configuration.php');
  78. require_once('Braintree/CreditCard.php');
  79. require_once('Braintree/Customer.php');
  80. require_once('Braintree/CustomerSearch.php');
  81. require_once('Braintree/Descriptor.php');
  82. require_once('Braintree/Digest.php');
  83. require_once('Braintree/Discount.php');
  84. require_once('Braintree/EqualityNode.php');
  85. require_once('Braintree/Exception.php');
  86. require_once('Braintree/Http.php');
  87. require_once('Braintree/KeyValueNode.php');
  88. require_once('Braintree/MultipleValueNode.php');
  89. require_once('Braintree/MultipleValueOrTextNode.php');
  90. require_once('Braintree/PartialMatchNode.php');
  91. require_once('Braintree/RangeNode.php');
  92. require_once('Braintree/ResourceCollection.php');
  93. require_once('Braintree/SettlementBatchSummary.php');
  94. require_once('Braintree/Subscription.php');
  95. require_once('Braintree/SubscriptionSearch.php');
  96. require_once('Braintree/SubscriptionStatus.php');
  97. require_once('Braintree/TextNode.php');
  98. require_once('Braintree/Transaction.php');
  99. require_once('Braintree/TransactionSearch.php');
  100. require_once('Braintree/TransparentRedirect.php');
  101. require_once('Braintree/Util.php');
  102. require_once('Braintree/Version.php');
  103. require_once('Braintree/Xml.php');
  104. require_once('Braintree/Error/Codes.php');
  105. require_once('Braintree/Error/ErrorCollection.php');
  106. require_once('Braintree/Error/Validation.php');
  107. require_once('Braintree/Error/ValidationErrorCollection.php');
  108. require_once('Braintree/Exception/Authentication.php');
  109. require_once('Braintree/Exception/Authorization.php');
  110. require_once('Braintree/Exception/Configuration.php');
  111. require_once('Braintree/Exception/DownForMaintenance.php');
  112. require_once('Braintree/Exception/ForgedQueryString.php');
  113. require_once('Braintree/Exception/NotFound.php');
  114. require_once('Braintree/Exception/ServerError.php');
  115. require_once('Braintree/Exception/SSLCertificate.php');
  116. require_once('Braintree/Exception/Unexpected.php');
  117. require_once('Braintree/Exception/UpgradeRequired.php');
  118. require_once('Braintree/Exception/ValidationsFailed.php');
  119. require_once('Braintree/Result/CreditCardVerification.php');
  120. require_once('Braintree/Result/Error.php');
  121. require_once('Braintree/Result/Successful.php');
  122. require_once('Braintree/Test/CreditCardNumbers.php');
  123. require_once('Braintree/Test/TransactionAmounts.php');
  124. require_once('Braintree/Transaction/AddressDetails.php');
  125. require_once('Braintree/Transaction/CreditCardDetails.php');
  126. require_once('Braintree/Transaction/CustomerDetails.php');
  127. require_once('Braintree/Transaction/StatusDetails.php');
  128. require_once('Braintree/Transaction/SubscriptionDetails.php');
  129. require_once('Braintree/Xml/Generator.php');
  130. require_once('Braintree/Xml/Parser.php');
  131. if (version_compare(PHP_VERSION, '5.2.1', '<')) {
  132. throw new Braintree_Exception('PHP version >= 5.2.1 required');
  133. }
  134. function requireDependencies() {
  135. $requiredExtensions = array('xmlwriter', 'SimpleXML', 'openssl', 'dom', 'hash', 'curl');
  136. foreach ($requiredExtensions AS $ext) {
  137. if (!extension_loaded($ext)) {
  138. throw new Braintree_Exception('The Braintree library requires the ' . $ext . ' extension.');
  139. }
  140. }
  141. }
  142. requireDependencies();