PdbSchema
extends Collection
in package
implements
PdbSchemaInterface, PdbStructWriterInterface
A schema that comes from the database or a `db_struct.xml` file.
Table of Contents
Interfaces
- PdbSchemaInterface
- An object that represents the structure of a database.
- PdbStructWriterInterface
- An interface for writing db_struct components in XML.
Properties
- $name : string
- $tables : array<string|int, PdbTable>
- $views : array<string|int, PdbView>
- $_checksums : DirtyChecksums|null
Methods
- __construct() : mixed
- __serialize() : array<string|int, mixed>
- __unserialize() : void
- check() : array<string|int, string>
- extraFields() : array<string|int, callable>
- Define extra fields that you _might_ want included in the `toArray()` output.
- fields() : array<string|int, callable|bool>
- These are fields for use in `toArray()`.
- getChecksums() : DirtyChecksums
- Get a checksums store for this object.
- getIterator() : Traversable
- getTableNames() : array<string|int, string>
- List non-prefixed table names.
- getTables() : array<string|int, PdbTable>
- A list of tables models.
- getViews() : array<string|int, PdbView>
- A list of views.
- jsonSerialize() : mixed
- offsetExists() : bool
- offsetGet() : mixed
- offsetSet() : void
- offsetUnset() : void
- toArray() : array<string|int, mixed>
- Convert this object to an array.
- toXml() : DOMNode
- Create an XML node for this object.
- update() : void
- writeXml() : string
- Write the schema to an XML string.
- getSerializedProperties() : array<string|int, mixed>
- Get an array of properties to serialize.
Properties
$name
public
string
$name
$tables
public
array<string|int, PdbTable>
$tables
= []
name => PdbTable
$views
public
array<string|int, PdbView>
$views
= []
name => PdbView
$_checksums
private
DirtyChecksums|null
$_checksums
Methods
__construct()
public
__construct([iterable<string|int, mixed> $config = [] ]) : mixed
Parameters
- $config : iterable<string|int, mixed> = []
__serialize()
public
__serialize() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>__unserialize()
public
__unserialize(array<string|int, mixed> $serialized) : void
Parameters
- $serialized : array<string|int, mixed>
Tags
check()
public
check(PdbSchemaInterface $schema) : array<string|int, string>
Parameters
- $schema : PdbSchemaInterface
Return values
array<string|int, string>extraFields()
Define extra fields that you _might_ want included in the `toArray()` output.
public
extraFields() : array<string|int, callable>
These are virtual fields that are not included by default like the
ones defined in fields(). Instead, use the second parameter of
the toArray(null, ['name']) method to specify which extra fields
you want in the output.
A virtual field is defined as a pair like 'name' => callback.
Tags
Return values
array<string|int, callable>fields()
These are fields for use in `toArray()`.
public
fields() : array<string|int, callable|bool>
By default this will include all public fields of the object.
Given 'name' => true a field will appear in the array output. Given
false|null|0|unset|... the field will not be present.
Define a pair like 'name' => callback create a 'virtual' field. This
can override existing properties or create whole new fields.
Note, if not implementing the ArrayableFields interface, this method will only define 'virtual' fields. That said, inheriting the parent fields is safe and will future-proof the code.
// Inheriting fields from the parent:
$fields = parent::fields();
$fields['hide_this_field'] = false;
unset($fields['this_also_works']);
return $fields;
// Declaring explicit fields, ignoring inherited:
return [
'real_field' => true,
'and_this_field' => true,
];
// Adding virtual fields:
$fields = parent::fields();
$fields['virtual_thing'] = [$this, 'getMyVirtualThing'];
$fields['inline_thing'] = function() {
return 'hey look: ' . time();
};
return $fields;
Tags
Return values
array<string|int, callable|bool>getChecksums()
Get a checksums store for this object.
public
getChecksums() : DirtyChecksums
Call this ASAP in your object lifecycle, i.e. the constructor.
Note this only tracks public properties.
Return values
DirtyChecksumsgetIterator()
public
getIterator() : Traversable
Tags
Return values
TraversablegetTableNames()
List non-prefixed table names.
public
getTableNames() : array<string|int, string>
Tags
Return values
array<string|int, string>getTables()
A list of tables models.
public
getTables() : array<string|int, PdbTable>
Tags
Return values
array<string|int, PdbTable> —[ name => table ]
getViews()
A list of views.
public
getViews() : array<string|int, PdbView>
Tags
Return values
array<string|int, PdbView> —[ name => view ]
jsonSerialize()
public
jsonSerialize() : mixed
Tags
offsetExists()
public
offsetExists(mixed $offset) : bool
Parameters
- $offset : mixed
Return values
booloffsetGet()
public
offsetGet(mixed $offset) : mixed
Parameters
- $offset : mixed
offsetSet()
public
offsetSet(mixed $offset, mixed $value) : void
Parameters
- $offset : mixed
- $value : mixed
offsetUnset()
public
offsetUnset(mixed $offset) : void
Parameters
- $offset : mixed
toArray()
Convert this object to an array.
public
toArray([array<string|int, string>|null $filter = null ][, array<string|int, string>|null $extra = null ][, bool $nulls = false ]) : array<string|int, mixed>
Specify a 'filter' to restrict the fields included in the output.
Specify an 'extra' to include additional fields if implementing the
ArrayableFields interface. This will add properties that were excluded
from fields() and includes any virtual fields defined in extraFields().
included in fields() and any virtual fields defined in extraFields().
Parameters
- $filter : array<string|int, string>|null = null
- $extra : array<string|int, string>|null = null
- $nulls : bool = false
-
- include null fields in the output
Return values
array<string|int, mixed>toXml()
Create an XML node for this object.
public
toXml(DOMDocument $doc) : DOMNode
Parameters
- $doc : DOMDocument
Tags
Return values
DOMNodeupdate()
public
update(iterable<string|int, mixed> $config) : void
Parameters
- $config : iterable<string|int, mixed>
writeXml()
Write the schema to an XML string.
public
writeXml() : string
Tags
Return values
stringgetSerializedProperties()
Get an array of properties to serialize.
protected
getSerializedProperties() : array<string|int, mixed>
Override this to modify the behaviour of the serializer.
By default, this returns properties that are:
- public
- not private or protected
- not static
- not implementing
NotSerializable
Return values
array<string|int, mixed> —[string => value]