当前位置: 首页>>代码示例>>PHP>>正文


PHP Document::addFile方法代码示例

本文整理汇总了PHP中Elastica\Document::addFile方法的典型用法代码示例。如果您正苦于以下问题:PHP Document::addFile方法的具体用法?PHP Document::addFile怎么用?PHP Document::addFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Elastica\Document的用法示例。


在下文中一共展示了Document::addFile方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: transform

 /**
  * Transforms an object into an elastica object having the required keys
  *
  * @param object $object the object to convert
  * @param array  $fields the keys we want to have in the returned array
  *
  * @return Document
  **/
 public function transform($object, array $fields)
 {
     $identifier = $this->propertyAccessor->getValue($object, $this->options['identifier']);
     $document = new Document($identifier);
     foreach ($fields as $key => $mapping) {
         if ($key == '_parent') {
             $property = null !== $mapping['property'] ? $mapping['property'] : $mapping['type'];
             $value = $this->propertyAccessor->getValue($object, $property);
             $document->setParent($this->propertyAccessor->getValue($value, $mapping['identifier']));
             continue;
         }
         $value = $this->propertyAccessor->getValue($object, $key);
         if (isset($mapping['type']) && in_array($mapping['type'], array('nested', 'object')) && isset($mapping['properties']) && !empty($mapping['properties'])) {
             /* $value is a nested document or object. Transform $value into
              * an array of documents, respective the mapped properties.
              */
             $document->set($key, $this->transformNested($value, $mapping['properties']));
             continue;
         }
         if (isset($mapping['type']) && $mapping['type'] == 'attachment') {
             // $value is an attachment. Add it to the document.
             if ($value instanceof \SplFileInfo) {
                 $document->addFile($key, $value->getPathName());
             } else {
                 $document->addFileContent($key, $value);
             }
             continue;
         }
         $document->set($key, $this->normalizeValue($value));
     }
     return $document;
 }
开发者ID:benstinton,项目名称:FOSElasticaBundle,代码行数:40,代码来源:ModelToElasticaAutoTransformer.php

示例2: testAddFile

 /**
  * @group unit
  */
 public function testAddFile()
 {
     $fileName = '/dev/null';
     if (!file_exists($fileName)) {
         $this->markTestSkipped("File {$fileName} does not exist.");
     }
     $doc = new Document();
     $returnValue = $doc->addFile('key', $fileName);
     $this->assertInstanceOf('Elastica\\Document', $returnValue);
 }
开发者ID:MediaWiki-stable,项目名称:1.26.1,代码行数:13,代码来源:DocumentTest.php

示例3: testExcludeFileSource

 public function testExcludeFileSource()
 {
     $indexMapping = array('file' => array('type' => 'attachment', 'store' => 'yes'), 'text' => array('type' => 'string', 'store' => 'yes'), 'title' => array('type' => 'string', 'store' => 'yes'));
     $indexParams = array('index' => array('number_of_shards' => 1, 'number_of_replicas' => 0));
     $index = $this->_createIndex();
     $type = new Type($index, 'content');
     $mapping = Mapping::create($indexMapping);
     $mapping->setSource(array('excludes' => array('file')));
     $mapping->setType($type);
     $index->create($indexParams, true);
     $type->setMapping($mapping);
     $docId = 1;
     $text = 'Basel World';
     $title = 'No Title';
     $doc1 = new Document($docId);
     $doc1->addFile('file', BASE_PATH . '/data/test.docx');
     $doc1->set('text', $text);
     $doc1->set('title', $title);
     $type->addDocument($doc1);
     // Optimization necessary, as otherwise source still in realtime get
     $index->optimize();
     $data = $type->getDocument($docId)->getData();
     $this->assertEquals($data['title'], $title);
     $this->assertEquals($data['text'], $text);
     $this->assertFalse(isset($data['file']));
 }
开发者ID:kskod,项目名称:Elastica,代码行数:26,代码来源:IndexTest.php

示例4: testAddFile

 public function testAddFile()
 {
     $doc = new Document();
     $returnValue = $doc->addFile('key', '/dev/null');
     $this->assertInstanceOf('Elastica\\Document', $returnValue);
 }
开发者ID:kskod,项目名称:Elastica,代码行数:6,代码来源:DocumentTest.php

示例5: transformObjectToDocument

 /**
  * Transforms the given object to an elastica document
  *
  * @param object $object the object to convert
  * @param array  $fields the keys we want to have in the returned array
  * @param string $identifier the identifier for the new document
  * @return Document
  */
 protected function transformObjectToDocument($object, array $fields, $identifier = '')
 {
     $document = new Document($identifier);
     foreach ($fields as $key => $mapping) {
         if ($key == '_parent') {
             $property = null !== $mapping['property'] ? $mapping['property'] : $mapping['type'];
             $value = $this->propertyAccessor->getValue($object, $property);
             $document->setParent($this->propertyAccessor->getValue($value, $mapping['identifier']));
             continue;
         }
         $path = isset($mapping['property_path']) ? $mapping['property_path'] : $key;
         if (false === $path) {
             continue;
         }
         $value = $this->propertyAccessor->getValue($object, $path);
         if (isset($mapping['type']) && in_array($mapping['type'], array('nested', 'object')) && isset($mapping['properties']) && !empty($mapping['properties'])) {
             /* $value is a nested document or object. Transform $value into
              * an array of documents, respective the mapped properties.
              */
             $document->set($key, $this->transformNested($value, $mapping['properties']));
             continue;
         }
         if (isset($mapping['type']) && $mapping['type'] == 'attachment') {
             // $value is an attachment. Add it to the document.
             if ($value instanceof \SplFileInfo) {
                 $document->addFile($key, $value->getPathName());
             } else {
                 $document->addFileContent($key, $value);
             }
             continue;
         }
         $document->set($key, $this->normalizeValue($value));
     }
     if ($this->dispatcher) {
         $event = new TransformEvent($document, $fields, $object);
         $this->dispatcher->dispatch(TransformEvent::POST_TRANSFORM, $event);
         $document = $event->getDocument();
     }
     return $document;
 }
开发者ID:anteros,项目名称:FOSElasticaBundle,代码行数:48,代码来源:ModelToElasticaAutoTransformer.php


注:本文中的Elastica\Document::addFile方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。