D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
psa
/
admin
/
plib
/
vendor
/
jms
/
serializer
/
src
/
Expression
/
Filename :
Expression.php
back
Copy
<?php declare(strict_types=1); namespace JMS\Serializer\Expression; use Symfony\Component\ExpressionLanguage\ParsedExpression as BaseExpression; use Symfony\Component\ExpressionLanguage\SerializedParsedExpression; /** * @author Asmir Mustafic <goetas@gmail.com> */ class Expression implements \Serializable { /** * @var BaseExpression */ private $expression; public function __construct(BaseExpression $expression) { $this->expression = $expression; } public function getExpression(): BaseExpression { return $this->expression; } /** * @return string * * @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingReturnTypeHint * @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.UselessReturnAnnotation */ public function __toString() { return (string) $this->expression; } /** * @return string * * @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingParameterTypeHint * @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingReturnTypeHint * @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.UselessReturnAnnotation */ public function serialize() { return serialize([(string) $this->expression, serialize($this->expression->getNodes())]); } /** * @param string $str * * @return void * * @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingParameterTypeHint * @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingReturnTypeHint * @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.UselessReturnAnnotation */ public function unserialize($str): void { $this->expression = new SerializedParsedExpression(...unserialize($str)); } public function __serialize(): array { return [(string) $this->expression, $this->expression->getNodes()]; } public function __unserialize(array $data): void { [$expression, $nodes] = $data; $this->expression = new BaseExpression($expression, $nodes); } }