1: <?php
2:
3: namespace Loco\Http;
4:
5: use Guzzle\Common\Collection;
6: use Guzzle\Service\Client;
7: use Guzzle\Service\Description\ServiceDescription;
8:
9: 10: 11: 12: 13:
14: class ApiClient extends Client {
15:
16:
17: 18: 19: 20: 21:
22: public static function factory( $config = array() ){
23:
24:
25: $default = array (
26: 'base_url' => 'https://localise.biz/api',
27: 'key' => '',
28: );
29:
30:
31: $required = array ();
32:
33:
34: $config = Collection::fromConfig( $config, $default, $required );
35:
36:
37: $config->add( Client::COMMAND_PARAMS, array (
38: 'key' => $config->get('key'),
39: ) );
40:
41:
42: $client = new self( $config->get('base_url'), $config );
43:
44:
45: $service = ServiceDescription::factory( __DIR__.'/Resources/service.php');
46:
47:
48: $client->setUserAgent( $service->getName().'/'.$service->getApiVersion(), true );
49:
50: return $client->setDescription( $service );
51:
52: }
53:
54:
55: 56: 57: 58:
59: public function getVersion(){
60: return $this->getDescription()->getApiVersion();
61: }
62:
63: }
64:
65: