Constants

DELETE_BEHAVIOUR_DO_NOTHING

DELETE_BEHAVIOUR_DO_NOTHING

Ingore when referenced record is deleted

DELETE_BEHAVIOUR_SET_NULL

DELETE_BEHAVIOUR_SET_NULL

Value of referenced record wil be set null

DELETE_BEHAVIOUR_DELETE

DELETE_BEHAVIOUR_DELETE

Reference will be deleted

COLUMN_R

COLUMN_R

Read Only Column Flag

COLUMN_RW

COLUMN_RW

Read and Write Column Flag

SEQUENCE

SEQUENCE

Column which hold sequence info

Properties

$_deleteBehaviour

$_deleteBehaviour : string

Delete Behaviour of Relation column

Type

string

$_referencedTable

$_referencedTable : \Fuman_Table

Referenced Table

Type

\Fuman_Table

$_referencedColumnName

$_referencedColumnName : string

Referenced ColumnName

Type

string

$_name

$_name : string

Name of this column in database

Type

string

$_dataType

$_dataType : \Fuman_Db_DataType

Data-type of Column. Types are defined in @link Fuman_Db_Abstract

Type

\Fuman_Db_DataType

$_validators

$_validators : array

List of Validators {@link Fuman_Validate_Abstract}

Type

array

$_validatorsEnabled

$_validatorsEnabled : 

Type

$_table

$_table : \Fuman_Table

Fuman_Table of Column

Type

\Fuman_Table

$_referencedColumn

$_referencedColumn : \Fuman_Column;

Type

\Fuman_Column;

$_mappingTable

$_mappingTable : \Fuman_Table

Type

\Fuman_Table

$_mappingTableColumnNames

$_mappingTableColumnNames : object

Type

object

$_relations

$_relations : array

Type

array

$_requiredTableUniqueNames

$_requiredTableUniqueNames : null|array

Type

null|array

$_orderable

$_orderable : boolean

Type

boolean

$_sequenceColumnName

$_sequenceColumnName : string

Type

string

$_setupArgs

$_setupArgs : null|array

Type

null|array

Methods

getRelationInfo()

getRelationInfo() : string

Gets relation info

Returns

string

validateDelete()

validateDelete(\Fuman_Db_Record  $originRecord, \Fuman_Db_Record  $relatedRecord, null|\stdClass  $visitedRecords, string  $logIndent = '') : void

Validate record for delete

Parameters

\Fuman_Db_Record $originRecord

The origin of the delete procedure

\Fuman_Db_Record $relatedRecord

The related record

null|\stdClass $visitedRecords
string $logIndent

deleteRecord()

deleteRecord(\Fuman_Db_Record  $relatedRecord, \stdClass|null  $visitedRecords = null, string  $logIndent = '') : void

Delete record

Parameters

\Fuman_Db_Record $relatedRecord
\stdClass|null $visitedRecords
string $logIndent

setDeleteBehaviour()

setDeleteBehaviour(string  $behaviour) : void

Set Delete Behaviour of Reference

Parameters

string $behaviour

getDeleteBehaviour()

getDeleteBehaviour() : string

Returns delete behaviour of column ManyToMany always return delete

Returns

string

getReferencedTable()

getReferencedTable() : \Fuman_Table

Returns the referenced Table

Returns

\Fuman_Table

getReferencedColumnName()

getReferencedColumnName() : string

Return the referenced Column Name

Returns

string

__construct()

__construct(string  $name, integer|\Fuman_Db_DataType  $dataType, \Fuman_Table  $table) : \Fuman_Column

Constructor

Parameters

string $name
integer|\Fuman_Db_DataType $dataType

@ishacky

\Fuman_Table $table

Returns

\Fuman_Column

init()

init() 

Init

getName()

getName() : string

Returns name of column.

Returns

string

getDataType()

getDataType() : \Fuman_Db_DataType

Returns data type of column.

Returns

\Fuman_Db_DataType

setValidatorsEnabled()

setValidatorsEnabled(boolean  $flag) 

Enabled/disable validators

Parameters

boolean $flag

getValidators()

getValidators() : array

Gets validators

Returns

array

hasValidator()

hasValidator(string  $className) : boolean

Has validator

Parameters

string $className

Returns

boolean

addValidator()

addValidator(\Fuman_Validate_Abstract  $validator) : void

Add a validate object.

Parameters

\Fuman_Validate_Abstract $validator

addValidators()

addValidators(array  $validators) : void

Add a list of validators to the column

Parameters

array $validators

validateSave()

validateSave(\Fuman_Db_Record  $record) : void

Validates a record with the added validators.

Parameters

\Fuman_Db_Record $record

And an array of messages(strings): $object->messages

getColumns()

getColumns() : array<mixed,\Fuman_Column>

Returns a list of Columns

Returns

array<mixed,\Fuman_Column>

getColumn()

getColumn(string  $columnName) : \Fuman_Column

Gets column for name

Parameters

string $columnName

Returns

\Fuman_Column

hasColumn()

hasColumn(string  $columnName) : boolean

Has column

Parameters

string $columnName

Returns

boolean

getTable()

getTable() : \Fuman_Table

Gets table

Returns

\Fuman_Table

setTable()

setTable(\Fuman_Table  $table) : void

Sets table

Parameters

\Fuman_Table $table

onApplicationReady()

onApplicationReady() : void

Called when application is ready

onApplicationFinish()

onApplicationFinish() : void

Called when application has finished

setMapping()

setMapping(string  $referencedTableUniqueName, string  $referencedColumnName, string|null  $mappingTableUniqueName = null, string|null  $sourceColumnName = null, string|null  $targetColumnName = null, string|null  $mappingTableDbName = null, object|null  $callbackObject = null) : void

Set mapping

Parameters

string $referencedTableUniqueName
string $referencedColumnName
string|null $mappingTableUniqueName
string|null $sourceColumnName
string|null $targetColumnName
string|null $mappingTableDbName
object|null $callbackObject

Object on which onMappingCreated(Fuman_Column_ManyToMany $mapping) will be called

enableOrdering()

enableOrdering(null|string  $sequenceColumnName = null) 

Enables ordering on mapping

Parameters

null|string $sequenceColumnName

isMappingTableOrdered()

isMappingTableOrdered() : boolean

Is mapping table ordered

Returns

boolean

hasMapping()

hasMapping() : boolean

Mapping defined

Returns

boolean

getMappedRecords()

getMappedRecords(integer  $value, string  $recordClass = 'Fuman_Db_Record') : \Fuman_Db_RecordSet

Returns all Mapped Records by given value

Parameters

integer $value
string $recordClass

Returns

\Fuman_Db_RecordSet

getMappingRecords()

getMappingRecords(\Fuman_Db_Record  $relatedRecord) : array<mixed,\Fuman_Db_Record>

Gets the the records from mapping table

Parameters

\Fuman_Db_Record $relatedRecord

Throws

\Fuman_Exception

Returns

array<mixed,\Fuman_Db_Record>

getReferencedRecords()

getReferencedRecords(\Fuman_Db_RecordSetMeta|null  $meta = null) : \Fuman_Db_RecordSet

Returns all records from referenced table

Parameters

\Fuman_Db_RecordSetMeta|null $meta

Returns

\Fuman_Db_RecordSet

getReferencedTableRecordSetMeta()

getReferencedTableRecordSetMeta(boolean  $considerRequestOrUserPreference = false) : \Fuman_Db_RecordSetMeta|null

Gets a prepared Fuman_Db_RecordSetMeta fror the referenced Fuman_Table.

Parameters

boolean $considerRequestOrUserPreference

Returns

\Fuman_Db_RecordSetMeta|null

getNewRecord()

getNewRecord(string|null  $sourceValue = null, string|null  $referencedValue = null, string|null  $seq = null) : \Fuman_Db_Record

Gets new mapping record

Parameters

string|null $sourceValue
string|null $referencedValue
string|null $seq

Returns

\Fuman_Db_Record

getMappingTable()

getMappingTable() : \Fuman_Table

Gets mapping table

Returns

\Fuman_Table

getSourceColumnName()

getSourceColumnName() : string

Gets source column name on mapping table

Returns

string

getTargetColumnName()

getTargetColumnName() : string

Gets target column name on mapping table

Returns

string

getReferencedColumn()

getReferencedColumn() : \Fuman_Column

Gets referenced column

Returns

\Fuman_Column

isSelfMapping()

isSelfMapping() : boolean

returns true, if source and destination(referenced) table are the same;

Returns

boolean

generateMappingTableNames()

generateMappingTableNames(string  $tableName, string  $columnName, string  $referencedTableName, string  $referencedColumnName, string|null  $suffix = null) : \stdClass

Generates mapping table names

Parameters

string $tableName
string $columnName
string $referencedTableName
string $referencedColumnName
string|null $suffix

Returns

\stdClass —

An object with tableName (mappingTable), columns (Array with two column names)

generateMappingTableName()

generateMappingTableName(string  $tableName, string  $referencedTableName) : string

Generate mapping table name

Parameters

string $tableName
string $referencedTableName

Returns

string

_createColumns()

_createColumns() : void

Creates the required columns

_addColumn()

_addColumn(\Fuman_Column  $column) : void

Adds column

Parameters

\Fuman_Column $column

_checkSetup()

_checkSetup() : boolean

Checks if required tables are available, then setups mapping

Returns

boolean

_setup()

_setup(string  $referencedTableUniqueName, string  $referencedColumnName, string|null  $mappingTableUniqueName = null, string|null  $sourceColumnName = null, string|null  $targetColumnName = null, string|null  $mappingTableDbName = null, object|null  $callbackObject = null) : void

Sets mapping

Calls onMappingCreated on callbackObject when mapping has been created

Parameters

string $referencedTableUniqueName
string $referencedColumnName
string|null $mappingTableUniqueName
string|null $sourceColumnName
string|null $targetColumnName
string|null $mappingTableDbName
object|null $callbackObject

_getMappingColumnType()

_getMappingColumnType(\Fuman_Db_DataType  $dataType = null) : integer

returns the default (Fuman_Db_DataType::TYPE_INT) dataType if we have no or a special fuman dataType

Parameters

\Fuman_Db_DataType $dataType

Returns

integer