Flow PHP

Schema implements Countable

FinalYes

Interfaces

Countable

Methods

__construct()  : mixed
add()  : self
addMetadata()  : self
Adds metadata to a given definition.
count()  : int
definitions()  : array<string|int, Definition>
entries()  : array<string|int, Reference>
findDefinition()  : Definition|null
fromArray()  : self
fromPipeline()  : self
Detecting schema from the pipeline has several disadvantages.
get()  : Definition
getDefinition()  : Definition
gracefulRemove()  : self
Gracefully remove entries from schema without throwing an exception if entry does not exist.
keep()  : self
makeNullable()  : self
Makes all schema definitions nullable.
merge()  : self
normalize()  : array<string|int, mixed>
nullable()  : self
references()  : References
remove()  : self
rename()  : self
replace()  : self
setMetadata()  : self
Overwrites metadata for a given definition.

Methods

addMetadata()

Adds metadata to a given definition.

public addMetadata(string $definition, string $name, int|string|bool|float|array<string|int, mixed> $value) : self
Parameters
$definition : string
$name : string
$value : int|string|bool|float|array<string|int, mixed>
Tags
throws
SchemaDefinitionNotFoundException
Return values
self

count()

public count() : int
Return values
int

entries()

public entries() : array<string|int, Reference>

use references() : References instead

Return values
array<string|int, Reference>

fromArray()

public static fromArray(array<string|int, mixed> $definitions) : self
Parameters
$definitions : array<string|int, mixed>
Return values
self

fromPipeline()

Detecting schema from the pipeline has several disadvantages.

public static fromPipeline(Pipeline $pipeline, FlowContext $context[, int $maxRows = 1000 ]) : self

First of all, it's expensive, it needs to iterate through the pipeline until it detects types of all columns. In some cases, when a given column is null in the first 1k rows it will anyway return incorrect schema since row 1001 might have an actual value. When dealing with schemaless file formats like CSV or JSON even when first 1k rows will carry value of one type, there is zero guarantee that following rows will do the same.

Whenever it's possible, it's recommended to define schema upfront and pass it to the extractor. This way, whatever process would need to use this method, will do just one iteration.

Parameters
$pipeline : Pipeline
$context : FlowContext
$maxRows : int = 1000
Return values
self

gracefulRemove()

Gracefully remove entries from schema without throwing an exception if entry does not exist.

public gracefulRemove(string|Reference ...$entries) : self
Parameters
$entries : string|Reference
Return values
self

makeNullable()

Makes all schema definitions nullable.

public makeNullable() : self
Return values
self

merge()

public merge(self $schema) : self
Parameters
$schema : self
Return values
self

normalize()

public normalize() : array<string|int, mixed>
Return values
array<string|int, mixed>

nullable()

public nullable() : self

use makeNullable instead

Return values
self

rename()

public rename(string|Reference $entry, string $newName) : self
Parameters
$entry : string|Reference
$newName : string
Return values
self

        
On this page

Search results