Set the image identifier
public setImageIdentifier ( string $imageIdentifier ) : |
||
$imageIdentifier | string | The image identifier |
Результат |
/** * Handle GET and HEAD requests * * @param EventInterface */ public function getImage(EventInterface $event) { $request = $event->getRequest(); $response = $event->getResponse(); $eventManager = $event->getManager(); $publicKey = $request->getPublicKey(); $imageIdentifier = $request->getImageIdentifier(); $image = new Model\Image(); $image->setImageIdentifier($imageIdentifier)->setPublicKey($publicKey); $response->setModel($image); // Load image details from database $eventManager->trigger('db.image.load'); // Set a long max age as the image itself won't change $response->setMaxAge(31536000); // Custom Imbo headers, based on original $response->headers->add(['X-Imbo-OriginalMimeType' => $image->getMimeType(), 'X-Imbo-OriginalWidth' => $image->getWidth(), 'X-Imbo-OriginalHeight' => $image->getHeight(), 'X-Imbo-OriginalFileSize' => $image->getFilesize(), 'X-Imbo-OriginalExtension' => $image->getExtension()]); // Trigger loading of the image $eventManager->trigger('storage.image.load'); // Trigger possible image transformations $eventManager->trigger('image.transform'); }
/** * @covers Imbo\Model\Image::setImageIdentifier * @covers Imbo\Model\Image::getImageIdentifier */ public function testCanSetAndGetTheImageIdentifier() { $this->assertNull($this->image->getImageIdentifier()); $this->assertSame($this->image, $this->image->setImageIdentifier('identifier')); $this->assertSame('identifier', $this->image->getImageIdentifier()); }
/** * @covers Imbo\EventListener\ExifMetadata::__construct * @covers Imbo\EventListener\ExifMetadata::populate * @covers Imbo\EventListener\ExifMetadata::save */ public function testCanGetAndSaveProperties() { $listener = new ExifMetadata(); $user = '******'; $imageIdentifier = 'imageId'; $image = new Image(); $image->setBlob(file_get_contents(FIXTURES_DIR . '/exif-logo.jpg')); $image->setImageIdentifier($imageIdentifier); $request = $this->getMock('Imbo\\Http\\Request\\Request'); $request->expects($this->exactly(2))->method('getImage')->will($this->returnValue($image)); $request->expects($this->once())->method('getUser')->will($this->returnValue($user)); $database = $this->getMock('Imbo\\Database\\DatabaseInterface'); $database->expects($this->once())->method('updateMetadata')->with($this->equalTo($user), $this->equalTo($imageIdentifier), $this->arrayHasKey('gps:location')); $event = $this->getMock('Imbo\\EventManager\\Event'); $event->expects($this->exactly(2))->method('getRequest')->will($this->returnValue($request)); $event->expects($this->once())->method('getDatabase')->will($this->returnValue($database)); $properties = $listener->populate($event); $this->assertSame('SAMSUNG', $properties['exif:Make']); $this->assertSame('GT-I9100', $properties['exif:Model']); $listener->save($event); }