1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118:
<?php
/**
* Omnipay class
*/
namespace Omnipay;
use Omnipay\Common\GatewayFactory;
/**
* Omnipay class
*
* Provides static access to the gateway factory methods. This is the
* recommended route for creation and establishment of payment gateway
* objects via the standard GatewayFactory.
*
* Example:
*
* <code>
* // Create a gateway for the PayPal ExpressGateway
* // (routes to GatewayFactory::create)
* $gateway = Omnipay::create('ExpressGateway');
*
* // Initialise the gateway
* $gateway->initialize(...);
*
* // Get the gateway parameters.
* $parameters = $gateway->getParameters();
*
* // Create a credit card object
* $card = new CreditCard(...);
*
* // Do an authorisation transaction on the gateway
* if ($gateway->supportsAuthorize()) {
* $gateway->authorize(...);
* } else {
* throw new \Exception('Gateway does not support authorize()');
* }
* </code>
*
* For further code examples see the *omnipay-example* repository on github.
*
* @method static array all()
* @method static array replace(array $gateways)
* @method static string register(string $className)
* @method static array find()
* @method static array getSupportedGateways()
* @codingStandardsIgnoreStart
* @method static \Omnipay\Common\GatewayInterface create(string $class, \Guzzle\Http\ClientInterface $httpClient = null, \Symfony\Component\HttpFoundation\Request $httpRequest = null)
* @codingStandardsIgnoreEnd
*
* @see Omnipay\Common\GatewayFactory
*/
class Omnipay
{
/**
* Internal factory storage
*
* @var GatewayFactory
*/
private static $factory;
/**
* Get the gateway factory
*
* Creates a new empty GatewayFactory if none has been set previously.
*
* @return GatewayFactory A GatewayFactory instance
*/
public static function getFactory()
{
if (is_null(static::$factory)) {
static::$factory = new GatewayFactory;
}
return static::$factory;
}
/**
* Set the gateway factory
*
* @param GatewayFactory $factory A GatewayFactory instance
*/
public static function setFactory(GatewayFactory $factory = null)
{
static::$factory = $factory;
}
/**
* Static function call router.
*
* All other function calls to the Omnipay class are routed to the
* factory. e.g. Omnipay::getSupportedGateways(1, 2, 3, 4) is routed to the
* factory's getSupportedGateways method and passed the parameters 1, 2, 3, 4.
*
* Example:
*
* <code>
* // Create a gateway for the PayPal ExpressGateway
* $gateway = Omnipay::create('ExpressGateway');
* </code>
*
* @see GatewayFactory
*
* @param string $method The factory method to invoke.
* @param array $parameters Parameters passed to the factory method.
*
* @return mixed
*/
public static function __callStatic($method, $parameters)
{
$factory = static::getFactory();
return call_user_func_array(array($factory, $method), $parameters);
}
}