本文整理汇总了PHP中Guzzle\Service\Description\ServiceDescription类的典型用法代码示例。如果您正苦于以下问题:PHP ServiceDescription类的具体用法?PHP ServiceDescription怎么用?PHP ServiceDescription使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ServiceDescription类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: testConstructor
/**
* @covers Guzzle\Service\Description\ServiceDescription
* @covers Guzzle\Service\Description\ServiceDescription::__construct
* @covers Guzzle\Service\Description\ServiceDescription::getCommands
* @covers Guzzle\Service\Description\ServiceDescription::getCommand
*/
public function testConstructor()
{
$service = new ServiceDescription($this->serviceData);
$this->assertEquals(1, count($service->getCommands()));
$this->assertFalse($service->hasCommand('foobar'));
$this->assertTrue($service->hasCommand('test_command'));
}
开发者ID:MicroSDHC,项目名称:justinribeiro.com-examples,代码行数:13,代码来源:ServiceDescriptionTest.php
示例2: testAllowsRawResponses
public function testAllowsRawResponses()
{
$description = new ServiceDescription(array('operations' => array('foo' => array('responseClass' => 'bar', 'responseType' => 'model')), 'models' => array('bar' => array())));
$op = new OperationCommand(array(OperationCommand::RESPONSE_PROCESSING => OperationCommand::TYPE_RAW), $description->getOperation('foo'));
$op->setClient(new Client());
$request = $op->prepare();
$response = new Response(200, array('Content-Type' => 'application/xml'), '<Foo><Baz>Bar</Baz></Foo>');
$request->setResponse($response, true);
$this->assertSame($response, $op->execute());
}
开发者ID:jorjoh,项目名称:Varden,代码行数:10,代码来源:OperationCommandTest.php
示例3: getMockedClient
protected function getMockedClient(Response $response)
{
$operation = new Operation(array('httpMethod' => 'GET', 'name' => 'Mock'));
$service = new ServiceDescription();
$service->addOperation($operation);
$plugin = new MockPlugin();
$plugin->addResponse($response);
$client = new Client();
$client->setDescription($service);
$client->addSubscriber($plugin);
return $client;
}
开发者ID:teaandcode,项目名称:behat-guzzle-extension,代码行数:12,代码来源:GuzzleContextSpec.php
示例4: factory
public static function factory($config = array())
{
if (isset($config['developer_mode']) && is_bool($config['developer_mode'])) {
$developerMode = $config['developer_mode'];
} else {
$developerMode = false;
}
$baseUrl = array('https://api.auspost.com.au', 'https://devcentre.auspost.com.au/myapi');
// Ignore unnecessary user-specified configuration values
if ($developerMode) {
unset($config['email_address']);
unset($config['password']);
}
unset($config['base_url']);
$default = array('developer_mode' => $developerMode, 'base_url' => $baseUrl[$developerMode], 'email_address' => '[email protected]', 'password' => 'password');
$required = array('developer_mode', 'base_url', 'email_address', "password");
$config = Collection::fromConfig($config, $default, $required);
$client = new self($config->get('base_url'), $config);
$client->getConfig()->setPath('request.options/headers/Authorization', 'Basic ' . base64_encode($config->get('email_address') . ':' . $config->get('password')));
$client->setDescription(ServiceDescription::factory(__DIR__ . '/service.json'));
$client->setSslVerification(false);
$client->getEventDispatcher()->addListener('request.before_send', function (Event $event) {
$request = $event['request'];
$request->addCookie('OBBasicAuth', 'fromDialog');
});
return $client;
}
开发者ID:bencorlett,项目名称:auspost-api-php,代码行数:27,代码来源:DeliveryChoiceClient.php
示例5: getClient
protected function getClient()
{
$service = ServiceDescription::factory(__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'TestData' . DIRECTORY_SEPARATOR . 'test_service.xml');
$client = new Client('http://www.google.com/');
$client->setDescription($service);
return $client;
}
开发者ID:MicroSDHC,项目名称:justinribeiro.com-examples,代码行数:7,代码来源:AbstractCommandTest.php
示例6: factory
/**
* Factory method to create a new TogglClient
*
* The following array keys and values are available options:
* - base_url: Base URL of web service
* - username: username or API key
* - password: password (if empty, then username is a API key)
*
* See https://www.toggl.com/public/api#api_token for more information on the api token
*
* @param array|Collection $config Configuration data
*
* @return self
*/
public static function factory($config = array())
{
$default = array('base_url' => 'https://www.toggl.com/api/{apiVersion}', 'debug' => false, 'apiVersion' => 'v8', 'api_key' => '', 'username' => '', 'password' => '');
$required = array('api_key', 'username', 'password', 'base_url', 'apiVersion');
$config = Collection::fromConfig($config, $default, $required);
$client = new self($config->get('base_url'), $config);
// Attach a service description to the client
if ($config->get('apiVersion') == 'v8') {
$description = ServiceDescription::factory(__DIR__ . '/services_v8.json');
} else {
die('Only v8 is supported at this time');
}
$client->setDescription($description);
$client->setDefaultHeaders(array("Content-type" => "application/json"));
if (!empty($config->get('api_key'))) {
$config->set('username', $config->get('api_key'));
$config->set('password', 'api_token');
}
if (empty($config->get('password'))) {
$config->set('password', 'api_token');
}
$authPlugin = new CurlAuthPlugin($config->get('username'), $config->get('password'));
$client->addSubscriber($authPlugin);
if ($config->get('debug')) {
$client->addSubscriber(LogPlugin::getDebugPlugin());
}
return $client;
}
开发者ID:SirLamer,项目名称:guzzle-toggl,代码行数:42,代码来源:TogglClient.php
示例7: factory
/**
* @param array $config
* @return \Guzzle\Service\Client|ImageRelayClient
* @throws \Guzzle\Common\Exception\InvalidArgumentException
*/
public static function factory($config = array())
{
$default = array('base_url' => 'https://{imagerelay_url}/api/v2/', 'imagerelay_url' => 'subdomain.imagerelay.com');
$config = Collection::fromConfig($config, $default);
$client = new self($config->get('base_url'), $config);
if ($config['auth'] === 'http') {
if (!isset($config['username'], $config['password'])) {
throw new InvalidArgumentException("Username and password required when using http auth.");
}
$authorization = 'Basic ' . base64_encode($config['username'] . ':' . $config['password']);
}
if ($config['auth'] === 'oauth') {
if (!isset($config['token'])) {
throw new InvalidArgumentException("Access token required when using oauth.");
}
$authorization = sprintf('Bearer %s', $config['token']);
}
if (!isset($authorization)) {
throw new InvalidArgumentException("Must use either http or oauth authentication method.");
}
// Attach a service description to the client
$description = ServiceDescription::factory(__DIR__ . '/Resources/api.php');
$client->setDescription($description);
// Set required User-Agent
$client->setUserAgent(sprintf('%s (%s)', $config['app_name'], $config['app_contact']));
$client->getEventDispatcher()->addListener('request.before_send', function (Event $event) use($authorization) {
$event['request']->addHeader('Authorization', $authorization);
});
return $client;
}
开发者ID:imagerelay,项目名称:imagerelay-php,代码行数:35,代码来源:ImageRelayClient.php
示例8: factory
/**
* {@inheritdoc}
*/
public static function factory($config = array())
{
$default = array('url' => false, 'munchkin_id' => false, 'version' => 1, 'bulk' => false);
$required = array('client_id', 'client_secret', 'version');
$config = Collection::fromConfig($config, $default, $required);
$url = $config->get('url');
if (!$url) {
$munchkin = $config->get('munchkin_id');
if (!$munchkin) {
throw new \Exception('Must provide either a URL or Munchkin code.');
}
$url = sprintf('https://%s.mktorest.com', $munchkin);
}
$grantType = new Credentials($url, $config->get('client_id'), $config->get('client_secret'));
$auth = new Oauth2Plugin($grantType);
if ($config->get('bulk') === true) {
$restUrl = sprintf('%s/bulk/v%d', rtrim($url, '/'), $config->get('version'));
} else {
$restUrl = sprintf('%s/rest/v%d', rtrim($url, '/'), $config->get('version'));
}
$client = new self($restUrl, $config);
$client->addSubscriber($auth);
$client->setDescription(ServiceDescription::factory(__DIR__ . '/service.json'));
$client->setDefaultOption('headers/Content-Type', 'application/json');
return $client;
}
开发者ID:arkadedigital,项目名称:marketo-rest-api,代码行数:29,代码来源:Client.php
示例9: factory
/**
* @param array $config
* @return \Guzzle\Service\Client|BasecampClient
* @throws \Guzzle\Common\Exception\InvalidArgumentException
*/
public static function factory($config = array())
{
$default = array('base_url' => 'https://basecamp.com/', 'version' => 'v1', 'token' => null, 'user_agent' => null, 'auth_method' => 'oauth');
$required = [];
$config = Collection::fromConfig($config, $default, $required);
$client = new self($config->get('base_url'), $config);
if (empty($config['token'])) {
throw new InvalidArgumentException("Config must contain token when using oath");
}
$authorization = sprintf('Bearer %s', $config['token']);
if (!isset($authorization)) {
throw new InvalidArgumentException("Config must contain valid authentication method");
}
// Attach a service description to the client
$description = ServiceDescription::factory(__DIR__ . '/Resources/service.php');
$client->setDescription($description);
// Set required User-Agent
$client->setUserAgent($config['user_agent']);
$client->getEventDispatcher()->addListener('request.before_send', function (Event $event) use($authorization) {
$event['request']->addHeader('Authorization', $authorization);
});
// Add cache plugin
$cachePlugin = new CachePlugin(['storage' => new DefaultCacheStorage(new DoctrineCacheAdapter(new ApcCache()))]);
$client->addSubscriber($cachePlugin);
return $client;
}
开发者ID:bigset1,项目名称:blueridge,代码行数:31,代码来源:BasecampClient.php
示例10: factory
public static function factory($config = array(), $required = array())
{
if (!defined('static::ENDPOINT')) {
throw new Exception\ServiceEndpointException('A client must have an endpoint');
}
$default = array('base_url' => '{scheme}://{domain}/' . static::ENDPOINT);
$required = array_merge(array('scheme', 'domain', 'base_url'), $required);
$config = Collection::fromConfig($config, $default, $required);
$client = new static($config->get('base_url'), $config);
$refClass = new \ReflectionClass(get_called_class());
$serviceDefinitionPath = dirname($refClass->getFileName());
$classNamePieces = explode('\\', get_called_class());
$serviceDefinitionFile = array_pop($classNamePieces) . '.json';
switch (true) {
case is_readable(dirname($serviceDefinitionPath) . DIRECTORY_SEPARATOR . 'Resources' . DIRECTORY_SEPARATOR . $serviceDefinitionFile):
$serviceDefinition = $serviceDefinitionPath . DIRECTORY_SEPARATOR . 'Resources' . DIRECTORY_SEPARATOR . $serviceDefinitionFile;
break;
case is_readable($serviceDefinitionPath . DIRECTORY_SEPARATOR . $serviceDefinitionFile):
$serviceDefinition = $serviceDefinitionPath . DIRECTORY_SEPARATOR . $serviceDefinitionFile;
break;
default:
throw new Exception\ClientConfigurationException('A client must have a service definition. Could not read the file "' . $serviceDefinition . '"');
}
$description = ServiceDescription::factory($serviceDefinition);
$client->setDescription($description);
return $client;
}
开发者ID:fancyguy,项目名称:guzzle-client,代码行数:27,代码来源:GuzzleClient.php
示例11: getServiceDescriptionFromFile
/**
* Loads the service description from the service description file
*
* @param string $description_file The service description file
* @return ServiceDescription
* @throws InvalidArgumentException If the description file doesn't exist or cannot be read
*/
public function getServiceDescriptionFromFile($description_file)
{
if (!file_exists($description_file) || !is_readable($description_file)) {
throw new InvalidArgumentException('Unable to read API definition schema');
}
return ServiceDescription::factory($description_file);
}
开发者ID:scup,项目名称:intercom-php,代码行数:14,代码来源:IntercomAbstractClient.php
示例12: setUp
public function setUp()
{
$mockError = 'Guzzle\\Tests\\Mock\\ErrorResponseMock';
$description = ServiceDescription::factory(array('operations' => array('works' => array('httpMethod' => 'GET', 'errorResponses' => array(array('code' => 500, 'class' => $mockError), array('code' => 503, 'reason' => 'foo', 'class' => $mockError), array('code' => 200, 'reason' => 'Error!', 'class' => $mockError))), 'bad_class' => array('httpMethod' => 'GET', 'errorResponses' => array(array('code' => 500, 'class' => 'Does\\Not\\Exist'))), 'does_not_implement' => array('httpMethod' => 'GET', 'errorResponses' => array(array('code' => 500, 'class' => __CLASS__))), 'no_errors' => array('httpMethod' => 'GET'), 'no_class' => array('httpMethod' => 'GET', 'errorResponses' => array(array('code' => 500))))));
$this->client = new Client($this->getServer()->getUrl());
$this->client->setDescription($description);
}
开发者ID:jorjoh,项目名称:Varden,代码行数:7,代码来源:ErrorResponsePluginTest.php
示例13: factory
/**
* @param array $config
* @return \Guzzle\Service\Client|BasecampClient
* @throws \Guzzle\Common\Exception\InvalidArgumentException
*/
public static function factory($config = array())
{
$default = array('base_url' => 'https://basecamp.com/{user_id}/api/{version}/', 'version' => 'v1', 'auth' => 'http', 'token' => null, 'username' => null, 'password' => null);
$required = array('user_id', 'app_name', 'app_contact');
$config = Collection::fromConfig($config, $default, $required);
$client = new self($config->get('base_url'), $config);
if ($config['auth'] === 'http') {
if (!isset($config['username'], $config['password'])) {
throw new InvalidArgumentException("Config must contain username and password when using http auth");
}
$authorization = 'Basic ' . base64_encode($config['username'] . ':' . $config['password']);
}
if ($config['auth'] === 'oauth') {
if (!isset($config['token'])) {
throw new InvalidArgumentException("Config must contain token when using oauth");
}
$authorization = sprintf('Bearer %s', $config['token']);
}
if (!isset($authorization)) {
throw new InvalidArgumentException("Config must contain valid authentication method");
}
// Attach a service description to the client
$description = ServiceDescription::factory(__DIR__ . '/Resources/service.php');
$client->setDescription($description);
// Set required User-Agent
$client->setUserAgent(sprintf('%s (%s)', $config['app_name'], $config['app_contact']));
$client->getEventDispatcher()->addListener('request.before_send', function (Event $event) use($authorization) {
$event['request']->addHeader('Authorization', $authorization);
});
return $client;
}
开发者ID:netvlies,项目名称:basecamp-php,代码行数:36,代码来源:BasecampClient.php
示例14: build
/**
* {@inheritdoc}
*/
public function build($config, array $options = null)
{
if (!$this->loader) {
$this->loader = new JsonLoader();
}
return ServiceDescription::factory($this->loader->parseJsonFile($config));
}
开发者ID:jsnshrmn,项目名称:Suma,代码行数:10,代码来源:JsonDescriptionBuilder.php
示例15: __construct
/**
* Class constructor
*
* Call parent constructor and attach an event listener that in turn will attach listeners to
* the request based on the command being called.
*
* @param string $baseUrl The base URL to Imbo
* @param array|Collection $config Client configuration
*/
public function __construct($baseUrl, $config)
{
parent::__construct($baseUrl, $config);
if (empty($config['serverUrls'])) {
$config['serverUrls'] = array($baseUrl);
}
$this->setServerUrls($config['serverUrls']);
$this->setDescription(ServiceDescription::factory(__DIR__ . '/service.php'));
$this->setUserAgent('ImboClient/' . Version::VERSION, true);
// Attach event listeners that handles the signing of write operations and the appending of
// access tokens to requests that require this
$dispatcher = $this->getEventDispatcher();
$dispatcher->addSubscriber(new EventSubscriber\AccessToken());
$dispatcher->addSubscriber(new EventSubscriber\Authenticate());
$dispatcher->addSubscriber(new EventSubscriber\PublicKey());
$client = $this;
$dispatcher->addListener('command.before_send', function ($event) use($client) {
$client->currentCommand = $event['command']->getName();
});
$dispatcher->addListener('request.error', function ($event) use($client) {
if ($client->currentCommand === 'GetServerStatus') {
// Stop propagation of the event when there is an error with the server status
$event->stopPropagation();
$client->currentCommand = null;
}
});
}
开发者ID:sgulseth,项目名称:imboclient-php,代码行数:36,代码来源:ImboClient.php
示例16: factory
public static function factory($config = array())
{
// The following values are required when creating the client
$required = array('base_url', 'username', 'password');
// Merge in default settings and validate the config
$config = Collection::fromConfig($config, array(), $required);
// Create a new sData client
$client = new self($config->get('base_url'), $config);
// JSON by default
$client->setDefaultOption('query/format', 'json');
// Authentication
$client->setDefaultOption('auth', array($config->get('username'), $config->get('password'), 'Basic'));
// Strip the BOM from results
$client->addSubscriber(new StripBomPlugin());
// Optional logging
if ($config->get('log')) {
$client->getEventDispatcher()->addListener('request.before_send', function (Event $event) {
$req = $event['request'];
\Log::info('sData', ['request' => $req->getMethod() . ' ' . $req->getResource()]);
});
}
// Set the service description
$services = \Config::get('sdata::services');
if (!empty($services)) {
$client->setDescription(ServiceDescription::factory($services));
}
// Done
return $client;
}
开发者ID:cviebrock,项目名称:sdata-laravel,代码行数:29,代码来源:Sdata.php
示例17: factory
/**
* @param string $serviceDescription
* @param array $config
* @return \Guzzle\Service\Client
*/
public static function factory($config = array())
{
if (!isset($config['serviceDescription'])) {
throw new \Exception("Cannot create a twuzzle client without a service description");
}
$oauthConfig = array();
if (!isset($config['consumerKey'])) {
throw new \Exception("Cannot create an twuzzle client without a consumer key");
} else {
$oauthConfig['consumer_key'] = $config['consumerKey'];
}
if (!isset($config['consumerSecret'])) {
throw new \Exception("Cannot create an twuzzle client without a consumer secret");
} else {
$oauthConfig['consumer_secret'] = $config['consumerSecret'];
}
if (isset($config['token']) && !empty($config['token'])) {
$oauthConfig['token'] = $config['token'];
}
if (isset($config['tokenSecret']) && !empty($config['tokenSecret'])) {
$oauthConfig['token_secret'] = $config['tokenSecret'];
}
$client = new self();
$client->setDescription(ServiceDescription::factory($config['serviceDescription']));
$oauth = new OauthPlugin($oauthConfig);
$client->addSubscriber($oauth);
return $client;
}
开发者ID:parkji,项目名称:twuzzle,代码行数:33,代码来源:TwuzzleClient.php
示例18: setServiceDescription
/**
* Set Guzzle Securepass services description file
*/
protected function setServiceDescription()
{
// load service description file
$serviceDescriptionFile = __DIR__ . '/Resources/services.json';
// set service description
$descriptions = ServiceDescription::factory($serviceDescriptionFile);
$this->client->setDescription($descriptions);
}
开发者ID:garlsecurity,项目名称:securepass-php,代码行数:11,代码来源:AbstractSecurepass.php
示例19: factory
/**
* {@inheritDoc}
*/
public static function factory($config = array())
{
$config = self::prepareConfig($config);
$client = new static($config->get('base_url'), $config->get('api_key'), $config->get('version'));
$description = ServiceDescription::factory(__DIR__ . DIRECTORY_SEPARATOR . 'service.json');
$client->setDescription($description);
return $client;
}
开发者ID:rfink,项目名称:edmunds-php-api,代码行数:11,代码来源:Client.php
示例20: getServiceDescription
/**
* @param string|array $config File to build or array of operation information
* @param array $options Service description factory options
*
* @return GuzzleServiceDescription
*/
protected function getServiceDescription($config, array $options = array())
{
// Adds support for YML
if (is_string($config) && pathinfo($config, PATHINFO_EXTENSION) === 'yml') {
$config = static::readYaml($config);
}
return GuzzleServiceDescription::factory($config, $options);
}
开发者ID:uniplaces,项目名称:fastc,代码行数:14,代码来源:Client.php
注:本文中的Guzzle\Service\Description\ServiceDescription类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论