1. Go to this page and download the library: Download andsalves/doctrine-elastic library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
andsalves / doctrine-elastic example snippets
namespace DoctrineElastic\Entity;
use Doctrine\ORM\Mapping as ORM;
use DoctrineElastic\Mapping as ElasticORM;
/**
* @author Ands
*
* @ElasticORM\Type(name="foo_type", index="foo_index")
* @ORM\Entity
*/
class FooType {
/**
* @var string
*
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
* @ElasticORM\MetaField(name="_id")
* @ORM\Column(name="_id", type="integer")
*/
public $_id;
/**
* @var int
*
* @ElasticORM\Field(name="custom_numeric_field", type="integer")
*/
private $customNumericField;
/**
* @var string
*
* Below: Use 'string' for elasticsearch 2.x and 'keyword' for elasticsearch 5.x+
* @ElasticORM\Field(name="custom_field", type="string")
*/
private $customField;
/**
* @var array
*
* @ElasticORM\Field(name="custom_nested_field", type="nested")
*/
private $customNestedField = [];
/**
* @return int
*/
public function getCustomNumericField() {
return $this->customNumericField;
}
/**
* @param int $customNumericField
* @return FooType
*/
public function setCustomNumericField($customNumericField) {
$this->customNumericField = $customNumericField;
return $this;
}
/**
* @return string
*/
public function getCustomField() {
return $this->customField;
}
/**
* @param string $customField
* @return FooType
*/
public function setCustomField($customField) {
$this->customField = $customField;
return $this;
}
/**
* @return array
*/
public function getCustomNestedField() {
return $this->customNestedField;
}
/**
* @param array $customNestedField
* @return FooType
*/
public function setCustomNestedField($customNestedField) {
$this->customNestedField = $customNestedField;
return $this;
}
}
$newFoo = new DoctrineElastic\Entity\FooType(); // Or wherever be your entity
$newFoo->setCustomNumericField(1234);
$newFoo->setCustomField('Test Value');
$newFoo->setCustomNestedField(['some_value' => 'Some Value', 'whatever' => 'Whatever']);
$elasticEntityManager->persist($newFoo); // Persisting entity...
$elasticEntityManager->flush(); // And flushing... Oh God, just like Doctrine!
$myFoo = $elasticEntityManager->getRepository(DoctrineElastic\Entity\FooType::class)->findOneBy(['customNumericField' => 1234]);
if (!is_null($myFoo)) {
print 'Yes, I found it!';
} else {
print 'Nothing here';
}
$myFoo = $elasticEntityManager->getRepository(DoctrineElastic\Entity\FooType::class)->findOneBy(['customNumericField' => 1234]);
if (!is_null($myFoo)) {
// Let's delete this one
$elasticEntityManager->remove($myFoo);
$elasticEntityManager->flush(); // Deleted :)
} else {
print 'Nothing to remove';
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.