Download the PHP package robotusers/cakephp-table-inheritance without Composer
On this page you can find all versions of the php package robotusers/cakephp-table-inheritance. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download robotusers/cakephp-table-inheritance
More information about robotusers/cakephp-table-inheritance
Files in robotusers/cakephp-table-inheritance
Package cakephp-table-inheritance
Short Description Robotusers CakePHP STI & CTI pattern plugin
License MIT
Homepage https://github.com/robotusers/cakephp-table-inheritance
Informations about the package cakephp-table-inheritance
CakePHP Table Inheritance plugin
This plugin implements Single Table Inheritance (and hopefully will implement Class Table Inheritance in the future) patterns for CakePHP ORM.
Installation
CakePHP 4.x
Using composer:
For CakePHP 3.x use version 0.4 of the plugin
StiBehavior
For now only STI is supported. Just add a behavior to your tables:
Now both the ClientsTable
and AdministratorsTable
will share users
db table. A table has to have a discriminator
field which will be used to determine which model's record is stored in a row.
Multiple discriminators
You can also configure a list of allowed discriminators. It's useful for example when working with the files. For example:
An ImagesTable
will share files
db table and match only specified mime types.
You can also add accepted discriminators on runtime:
Configuration
StiBehavior
supports following options:
discriminatorField
- db table field used to discriminate models, 'discriminator' by defaultdiscriminator
- default discriminator value,$table->alias()
by defaulttable
- db table to share, use this option or$table->table()
method.checkRules
-true
by default. Allows to enable/disable build-in rule check for a discriminator value.acceptedDiscriminators
- a list of accepted discriminators.
StiParentBehavior
This plugin also allows to configure parent Table in order to create and hydrate entities based on child tables.
tableMap
option accepts an array mapping table registry aliases to discriminator field values.
You can also map discriminator values to specified table objects using discriminatorMap
option:
This behavior also provides newStiEntity()
method which will proxy newEntity()
to one of the configured tables based on a discriminator value.
Afterwards you can get a STI table using stiTable()
method and handle entity using its source Table
object.
You can also directly detect STI table from data array: