Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix script file issues and move script classes into namespace #1028

Merged
merged 5 commits into from
Jan 8, 2016
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 3 additions & 20 deletions lib/Elastica/AbstractScript.php
Original file line number Diff line number Diff line change
@@ -1,27 +1,10 @@
<?php
namespace Elastica;

use Elastica\Script\AbstractScript as BaseAbstractScript;
/**
* Base class for Script object.
*
* @author Nicolas Assing <nicolas.assing@gmail.com>
*
* @link https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html
* Kept for BC reasons.
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add a @deprecated message here? Check some other files which are deprecated for some examples.

*/
abstract class AbstractScript extends AbstractUpdateAction
abstract class AbstractScript extends BaseAbstractScript
{
/**
* @param array|null $params
* @param string $id
*/
public function __construct(array $params = null, $id = null)
{
if ($params) {
$this->setParams($params);
}

if ($id) {
$this->setId($id);
}
}
}
4 changes: 1 addition & 3 deletions lib/Elastica/Aggregation/AbstractSimpleAggregation.php
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
<?php
namespace Elastica\Aggregation;

use Elastica\Script;

abstract class AbstractSimpleAggregation extends AbstractAggregation
{
/**
Expand All @@ -20,7 +18,7 @@ public function setField($field)
/**
* Set a script for this aggregation.
*
* @param string|Script $script
* @param string|\Elastica\Script\AbstractScript $script
*
* @return $this
*/
Expand Down
12 changes: 6 additions & 6 deletions lib/Elastica/Aggregation/TopHits.php
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?php
namespace Elastica\Aggregation;

use Elastica\Script;
use Elastica\ScriptFields;
use Elastica\Script\AbstractScript;
use Elastica\Script\ScriptFields;

/**
* Class TopHits.
Expand Down Expand Up @@ -102,7 +102,7 @@ public function setExplain($explain)
/**
* Set script fields.
*
* @param array|\Elastica\ScriptFields $scriptFields
* @param array|\Elastica\Script\ScriptFields $scriptFields
*
* @return $this
*/
Expand All @@ -118,12 +118,12 @@ public function setScriptFields($scriptFields)
/**
* Adds a Script to the aggregation.
*
* @param string $name
* @param \Elastica\Script $script
* @param string $name
* @param \Elastica\Script\AbstractScript $script
*
* @return $this
*/
public function addScriptField($name, Script $script)
public function addScriptField($name, AbstractScript $script)
{
if (!isset($this->_params['script_fields'])) {
$this->_params['script_fields'] = new ScriptFields();
Expand Down
13 changes: 7 additions & 6 deletions lib/Elastica/Bulk.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use Elastica\Bulk\ResponseSet;
use Elastica\Exception\Bulk\ResponseException as BulkResponseException;
use Elastica\Exception\InvalidException;
use Elastica\Script\AbstractScript;

class Bulk
{
Expand Down Expand Up @@ -190,12 +191,12 @@ public function addDocuments(array $documents, $opType = null)
}

/**
* @param \Elastica\Script $script
* @param string $opType
* @param \Elastica\Script\AbstractScript $script
* @param string $opType
*
* @return $this
*/
public function addScript(Script $script, $opType = null)
public function addScript(AbstractScript $script, $opType = null)
{
$action = AbstractDocumentAction::create($script, $opType);

Expand All @@ -218,8 +219,8 @@ public function addScripts(array $scripts, $opType = null)
}

/**
* @param \Elastica\Script|\Elastica\Document|array $data
* @param string $opType
* @param \Elastica\Script\AbstractScript|\Elastica\Document|array $data
* @param string $opType
*
* @return $this
*/
Expand All @@ -230,7 +231,7 @@ public function addData($data, $opType = null)
}

foreach ($data as $actionData) {
if ($actionData instanceof Script) {
if ($actionData instanceof AbstractScript) {
$this->addScript($actionData, $opType);
} elseif ($actionData instanceof Document) {
$this->addDocument($actionData, $opType);
Expand Down
28 changes: 14 additions & 14 deletions lib/Elastica/Bulk/Action/AbstractDocument.php
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
<?php
namespace Elastica\Bulk\Action;

use Elastica\Script\AbstractScript;
use Elastica\AbstractUpdateAction;
use Elastica\Bulk\Action;
use Elastica\Document;
use Elastica\Script;

abstract class AbstractDocument extends Action
{
/**
* @var \Elastica\Document|\Elastica\Script
* @var \Elastica\Document|\Elastica\Script\AbstractScript
*/
protected $_data;

/**
* @param \Elastica\Document|\Elastica\Script $document
* @param \Elastica\Document|\Elastica\Script\AbstractScript $document
*/
public function __construct($document)
{
Expand All @@ -38,11 +38,11 @@ public function setDocument(Document $document)
}

/**
* @param \Elastica\Script $script
* @param \Elastica\Script\AbstractScript $script
*
* @return $this
*/
public function setScript(Script $script)
public function setScript(AbstractScript $script)
{
if (!($this instanceof UpdateDocument)) {
throw new \BadMethodCallException('setScript() can only be used for UpdateDocument');
Expand All @@ -57,15 +57,15 @@ public function setScript(Script $script)
}

/**
* @param \Elastica\Script|\Elastica\Document $data
* @param \Elastica\Script\AbstractScript|\Elastica\Document $data
*
* @throws \InvalidArgumentException
*
* @return $this
*/
public function setData($data)
{
if ($data instanceof Script) {
if ($data instanceof AbstractScript) {
$this->setScript($data);
} elseif ($data instanceof Document) {
$this->setDocument($data);
Expand Down Expand Up @@ -93,19 +93,19 @@ public function getDocument()
/**
* Note: This is for backwards compatibility.
*
* @return \Elastica\Script|null
* @return \Elastica\Script\AbstractScript|null
*/
public function getScript()
{
if ($this->_data instanceof Script) {
if ($this->_data instanceof AbstractScript) {
return $this->_data;
}

return;
}

/**
* @return \Elastica\Document|\Elastica\Script
* @return \Elastica\Document|\Elastica\Script\AbstractScript
*/
public function getData()
{
Expand All @@ -120,15 +120,15 @@ public function getData()
abstract protected function _getMetadata(AbstractUpdateAction $source);

/**
* @param \Elastica\Document|\Elastica\Script $data
* @param string $opType
* @param \Elastica\Document|\Elastica\Script\AbstractScript $data
* @param string $opType
*
* @return static
*/
public static function create($data, $opType = null)
{
//Check type
if (!($data instanceof Document) && !($data instanceof Script)) {
if (!($data instanceof Document) && !($data instanceof AbstractScript)) {
throw new \InvalidArgumentException('The data needs to be a Document or a Script.');
}

Expand All @@ -137,7 +137,7 @@ public static function create($data, $opType = null)
}

//Check that scripts can only be used for updates
if ($data instanceof Script) {
if ($data instanceof AbstractScript) {
if ($opType === null) {
$opType = self::OP_TYPE_UPDATE;
} elseif ($opType != self::OP_TYPE_UPDATE) {
Expand Down
6 changes: 3 additions & 3 deletions lib/Elastica/Bulk/Action/UpdateDocument.php
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?php
namespace Elastica\Bulk\Action;

use Elastica\Script\AbstractScript;
use Elastica\Document;
use Elastica\Script;

class UpdateDocument extends IndexDocument
{
Expand Down Expand Up @@ -40,11 +40,11 @@ public function setDocument(Document $document)
}

/**
* @param \Elastica\Script $script
* @param \Elastica\Script\AbstractScript $script
*
* @return $this
*/
public function setScript(Script $script)
public function setScript(AbstractScript $script)
{
parent::setScript($script);

Expand Down
15 changes: 8 additions & 7 deletions lib/Elastica/Client.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use Elastica\Exception\ConnectionException;
use Elastica\Exception\InvalidException;
use Elastica\Exception\RuntimeException;
use Elastica\Script\AbstractScript;
use Psr\Log\LoggerInterface;

/**
Expand Down Expand Up @@ -319,11 +320,11 @@ public function addDocuments(array $docs)
/**
* Update document, using update script. Requires elasticsearch >= 0.19.0.
*
* @param int $id document id
* @param array|\Elastica\Script|\Elastica\Document $data raw data for request body
* @param string $index index to update
* @param string $type type of index to update
* @param array $options array of query params to use for query. For possible options check es api
* @param int $id document id
* @param array|\Elastica\Script\AbstractScript|\Elastica\Document $data raw data for request body
* @param string $index index to update
* @param string $type type of index to update
* @param array $options array of query params to use for query. For possible options check es api
*
* @return \Elastica\Response
*
Expand All @@ -333,7 +334,7 @@ public function updateDocument($id, $data, $index, $type, array $options = array
{
$path = $index.'/'.$type.'/'.$id.'/_update';

if ($data instanceof Script) {
if ($data instanceof AbstractScript) {
$requestData = $data->toArray();
} elseif ($data instanceof Document) {
$requestData = array('doc' => $data->getData());
Expand Down Expand Up @@ -370,7 +371,7 @@ public function updateDocument($id, $data, $index, $type, array $options = array
}

//If an upsert document exists
if ($data instanceof Script || $data instanceof Document) {
if ($data instanceof AbstractScript || $data instanceof Document) {
if ($data->hasUpsert()) {
$requestData['upsert'] = $data->getUpsert()->getData();
}
Expand Down
2 changes: 1 addition & 1 deletion lib/Elastica/Document.php
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ public function getData()
/**
* @deprecated setScript() is no longer available as of 0.90.2. See http://elastica.io/migration/0.90.2/upsert.html to migrate. This method will be removed in further Elastica releases
*
* @param \Elastica\Script $data
* @param \Elastica\Script\Script $data
*
* @throws NotImplementedException
*/
Expand Down
6 changes: 3 additions & 3 deletions lib/Elastica/Filter/Script.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Script extends AbstractFilter
/**
* Construct script filter.
*
* @param array|string|\Elastica\Script $script OPTIONAL Script
* @param array|string|\Elastica\Script\AbstractScript $script OPTIONAL Script
*/
public function __construct($script = null)
{
Expand All @@ -34,13 +34,13 @@ public function __construct($script = null)
/**
* Sets script object.
*
* @param \Elastica\Script|string|array $script
* @param \Elastica\Script\Script|string|array $script
*
* @return $this
*/
public function setScript($script)
{
return $this->setParam('script', Elastica\Script::create($script));
return $this->setParam('script', Elastica\Script\Script::create($script));
}

/**
Expand Down
8 changes: 5 additions & 3 deletions lib/Elastica/Query.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
use Elastica\Query\AbstractQuery;
use Elastica\Query\MatchAll;
use Elastica\Query\QueryString;
use Elastica\Script\AbstractScript;
use Elastica\Script\ScriptFields;
use Elastica\Suggest\AbstractSuggest;

/**
Expand Down Expand Up @@ -303,7 +305,7 @@ public function setFieldDataFields(array $fieldDataFields)
/**
* Set script fields.
*
* @param array|\Elastica\ScriptFields $scriptFields Script fields
* @param array|\Elastica\Script\ScriptFields $scriptFields Script fields
*
* @return $this
*
Expand All @@ -321,8 +323,8 @@ public function setScriptFields($scriptFields)
/**
* Adds a Script to the query.
*
* @param string $name
* @param \Elastica\AbstractScript $script Script object
* @param string $name
* @param \Elastica\Script\AbstractScript $script Script object
*
* @return $this
*/
Expand Down
10 changes: 5 additions & 5 deletions lib/Elastica/Query/FunctionScore.php
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?php
namespace Elastica\Query;

use Elastica\Script\AbstractScript;
use Elastica\Filter\AbstractFilter;
use Elastica\Script;

/**
* Class FunctionScore.
Expand Down Expand Up @@ -94,13 +94,13 @@ public function addFunction($functionType, $functionParams, AbstractFilter $filt
/**
* Add a script_score function to the query.
*
* @param Script $script a Script object
* @param AbstractFilter $filter an optional filter to apply to the function
* @param float $weight the weight of the function
* @param \Elastica\Script\AbstractScript $script a Script object
* @param AbstractFilter $filter an optional filter to apply to the function
* @param float $weight the weight of the function
*
* @return $this
*/
public function addScriptScoreFunction(Script $script, AbstractFilter $filter = null, $weight = null)
public function addScriptScoreFunction(AbstractScript $script, AbstractFilter $filter = null, $weight = null)
{
return $this->addFunction('script_score', $script, $filter, $weight);
}
Expand Down
Loading