code = $code; $e->args = array_map( 'strval', array_values( $args ) ); $e->text = Catalogue::render( Catalogue::NOT_LOOKED[ $code ], $e->args ); $e->items = array_values( $items ); return $e; } public function toArray(): array { return get_object_vars( $this ); } public static function fromArray( array $a ): self { $e = new self(); $e->code = (string) $a['code']; $e->args = isset( $a['args'] ) ? (array) $a['args'] : array(); $e->text = isset( $a['text'] ) ? (string) $a['text'] : ''; $e->items = isset( $a['items'] ) ? (array) $a['items'] : array(); return $e; } }