Skip to content

Commit

Permalink
Update Pimple to 2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Mike Fisher authored and polyfractal committed Jun 18, 2014
1 parent f3a39a7 commit e1cc94e
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 89 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"require": {
"php": ">=5.3.9",
"monolog/monolog": "~1.5",
"pimple/pimple": "~1.0",
"pimple/pimple": "~2.0",
"guzzle/guzzle": "~3.7",
"psr/log": "~1.0",
"ext-curl": "*"
Expand Down
153 changes: 65 additions & 88 deletions src/Elasticsearch/Common/DICBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ private function setConnectionObj()

private function setConnectionFactoryObj()
{
$this->dic['connectionFactory'] = function($dicParams) {
$this->dic['connectionFactory'] = function ($dicParams) {
return new $dicParams['connectionFactoryClass']($dicParams);
};
}
Expand Down Expand Up @@ -240,64 +240,52 @@ private function setConnectionPoolObj()

private function setTransportObj($hosts)
{
$this->dic['transport'] = $this->dic->share(
function ($dicParams) use ($hosts) {
return new Transport($hosts, $dicParams, $dicParams['logObject']);
}
);
$this->dic['transport'] = function ($dicParams) use ($hosts) {
return new Transport($hosts, $dicParams, $dicParams['logObject']);
};
}


private function setClusterNamespaceObj()
{
$this->dic['clusterNamespace'] = $this->dic->share(
function ($dicParams) {
/** @var Pimple $dicParams */
return new ClusterNamespace($dicParams['transport'], $dicParams['endpoint']);
}
);
$this->dic['clusterNamespace'] = function ($dicParams) {
/** @var Pimple $dicParams */
return new ClusterNamespace($dicParams['transport'], $dicParams['endpoint']);
};
}


private function setIndicesNamespaceObj()
{
$this->dic['indicesNamespace'] = $this->dic->share(
function ($dicParams) {
/** @var Pimple $dicParams */
return new IndicesNamespace($dicParams['transport'], $dicParams['endpoint']);
}
);
$this->dic['indicesNamespace'] = function ($dicParams) {
/** @var Pimple $dicParams */
return new IndicesNamespace($dicParams['transport'], $dicParams['endpoint']);
};
}

private function setNodesNamespaceObj()
{
$this->dic['nodesNamespace'] = $this->dic->share(
function ($dicParams) {
/** @var Pimple $dicParams */
return new NodesNamespace($dicParams['transport'], $dicParams['endpoint']);
}
);
$this->dic['nodesNamespace'] = function ($dicParams) {
/** @var Pimple $dicParams */
return new NodesNamespace($dicParams['transport'], $dicParams['endpoint']);
};
}


private function setSnapshotNamespaceObj()
{
$this->dic['snapshotNamespace'] = $this->dic->share(
function ($dicParams) {
/** @var Pimple $dicParams */
return new SnapshotNamespace($dicParams['transport'], $dicParams['endpoint']);
}
);
$this->dic['snapshotNamespace'] = function ($dicParams) {
/** @var Pimple $dicParams */
return new SnapshotNamespace($dicParams['transport'], $dicParams['endpoint']);
};
}

private function setCatNamespaceObj()
{
$this->dic['catNamespace'] = $this->dic->share(
function ($dicParams) {
/** @var Pimple $dicParams */
return new CatNamespace($dicParams['transport'], $dicParams['endpoint']);
}
);
$this->dic['catNamespace'] = function ($dicParams) {
/** @var Pimple $dicParams */
return new CatNamespace($dicParams['transport'], $dicParams['endpoint']);
};
}


Expand All @@ -306,77 +294,66 @@ private function setSharedConnectionParamsObj()
// This will inject a shared object into all connections.
// Allows users to inject shared resources, similar to the multi-handle
// shared above (but in their own code).
$this->dic['connectionParamsShared'] = $this->dic->share(
function ($dicParams) {

$connectionParams = $dicParams['connectionParams'];

// Multihandle connections need a "static", shared curl multihandle.
if ($dicParams['connectionClass'] === '\Elasticsearch\Connections\CurlMultiConnection') {
$connectionParams = array_merge(
$connectionParams,
array('curlMultiHandle' => $dicParams['curlMultiHandle'])
);
} elseif ($dicParams['connectionClass'] === '\Elasticsearch\Connections\GuzzleConnection') {
$connectionParams = array_merge(
$connectionParams,
array('guzzleClient' => $dicParams['guzzleClient'])
);
}

return $connectionParams;
$this->dic['connectionParamsShared'] = function ($dicParams) {
$connectionParams = $dicParams['connectionParams'];

// Multihandle connections need a "static", shared curl multihandle.
if ($dicParams['connectionClass'] === '\Elasticsearch\Connections\CurlMultiConnection') {
$connectionParams = array_merge(
$connectionParams,
array('curlMultiHandle' => $dicParams['curlMultiHandle'])
);
} elseif ($dicParams['connectionClass'] === '\Elasticsearch\Connections\GuzzleConnection') {
$connectionParams = array_merge(
$connectionParams,
array('guzzleClient' => $dicParams['guzzleClient'])
);
}
);

return $connectionParams;
};
}


private function setCurlMultihandle()
{
// Only used by some connections - won't be instantiated until used.
$this->dic['curlMultiHandle'] = $this->dic->share(
function () {
if (extension_loaded('curl') !== true) {
throw new RuntimeException('Curl library/extension is required for CurlMultiConnection.');
}
return curl_multi_init();
$this->dic['curlMultiHandle'] = function () {
if (extension_loaded('curl') !== true) {
throw new RuntimeException('Curl library/extension is required for CurlMultiConnection.');
}
);
return curl_multi_init();
};
}

private function setGuzzleClient()
{
// Only used by Guzzle connections - won't be instantiated until used.
$this->dic['guzzleClient'] = $this->dic->share(
function ($dicParams) {
$this->dic['guzzleClient'] = function ($dicParams) {
$guzzleOptions = array();
$guzzleOptions['curl.options']['body_as_string'] = true;

$guzzleOptions = array();
$guzzleOptions['curl.options']['body_as_string'] = true;

if (isset($dicParams['connectionParams']['auth']) === true) {
$guzzleOptions['request.options']['auth'] = $dicParams['connectionParams']['auth'];
}
if (isset($dicParams['connectionParams']['auth']) === true) {
$guzzleOptions['request.options']['auth'] = $dicParams['connectionParams']['auth'];
}

$guzzleOptions = array_merge($guzzleOptions, $dicParams['guzzleOptions']);
$guzzle = new \Guzzle\Http\Client(null,$guzzleOptions);
$guzzleOptions = array_merge($guzzleOptions, $dicParams['guzzleOptions']);
$guzzle = new \Guzzle\Http\Client(null, $guzzleOptions);

return $guzzle;
}
);
return $guzzle;
};
}

private function setEndpoint()
{
$this->dic['endpoint'] = function ($dicParams) {
return function($class) use ($dicParams) {
$fullPath = '\\Elasticsearch\\Endpoints\\'.$class;
if ($class === 'Bulk' || $class === 'Msearch' || $class === 'MPercolate') {
return new $fullPath($dicParams['transport'], $dicParams['serializer']);
} else {
return new $fullPath($dicParams['transport']);
}

};
};
$dicParams = $this->dic;
$this->dic['endpoint'] = $this->dic->protect(function ($class) use ($dicParams) {
$fullPath = '\\Elasticsearch\\Endpoints\\'.$class;
if ($class === 'Bulk' || $class === 'Msearch' || $class === 'MPercolate') {
return new $fullPath($dicParams['transport'], $dicParams['serializer']);
} else {
return new $fullPath($dicParams['transport']);
}
});
}

}//end class

0 comments on commit e1cc94e

Please sign in to comment.