Imbo\Model\Error::createFromException PHP Method

createFromException() public static method

Create an error based on an exception instance
public static createFromException ( Imbo\Exception $exception, Request $request ) : Error
$exception Imbo\Exception An Imbo\Exception instance
$request Imbo\Http\Request\Request
return Error
    public static function createFromException(Exception $exception, Request $request)
    {
        $date = new DateTime('now', new DateTimeZone('UTC'));
        $model = new self();
        $model->setHttpCode($exception->getCode())->setErrorMessage($exception->getMessage())->setDate($date)->setImboErrorCode($exception->getImboErrorCode() ?: Exception::ERR_UNSPECIFIED);
        if ($image = $request->getImage()) {
            $model->setImageIdentifier($image->getImageIdentifier());
        } else {
            if ($identifier = $request->getImageIdentifier()) {
                $model->setImageIdentifier($identifier);
            }
        }
        return $model;
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * @covers Imbo\Model\Error::createFromException
  */
 public function testWillUseImageChecksumAsImageIdentifierIfRequestHasAnImageWhenCreatingError()
 {
     $exception = new RuntimeException('You wronged', 400);
     $exception->setImboErrorCode(123);
     $request = $this->getMock('Imbo\\Http\\Request\\Request');
     $image = $this->getMock('Imbo\\Model\\Image');
     $image->expects($this->once())->method('getChecksum')->will($this->returnValue('checksum'));
     $request->expects($this->once())->method('getImage')->will($this->returnValue($image));
     $request->expects($this->never())->method('checksum');
     $model = Error::createFromException($exception, $request);
     $this->assertSame(123, $model->getImboErrorCode());
     $this->assertSame('checksum', $model->getImageIdentifier());
 }
All Usage Examples Of Imbo\Model\Error::createFromException