83 public function format( array $record ) {
84 $this->io->truncate();
85 $schema = $this->
getSchema( $record[
'channel'] );
87 if ( $schema ===
null || $revId ===
null ) {
88 trigger_error(
"The schema for channel '{$record['channel']}' is not available" );
92 $this->writer->write_data( $schema, $record[
'context'], $this->encoder );
93 }
catch ( AvroIOTypeException $e ) {
95 $json = json_encode( $errors );
96 trigger_error(
"Avro failed to serialize record for {$record['channel']} : {$json}" );
99 return chr( self::MAGIC ) . $this->
encodeLong( $revId ) . $this->io->string();
127 if ( !isset( $this->schemas[$channel] ) ) {
130 if ( !isset( $this->schemas[$channel][
'revision'], $this->schemas[$channel][
'schema'] ) ) {
134 if ( !$this->schemas[$channel][
'schema'] instanceof AvroSchema ) {
135 $schema = $this->schemas[$channel][
'schema'];
136 if ( is_string( $schema ) ) {
137 $this->schemas[$channel][
'schema'] = AvroSchema::parse( $schema );
139 $this->schemas[$channel][
'schema'] = AvroSchema::real_parse(
144 return $this->schemas[$channel][
'schema'];