KMP PHP API Reference

MembersTable extends BaseTable
in package

Members Table - Central repository for user management.

Handles member data, relationships, validation, and automatic workflows. Triggers ageUpReview() and warrantableReview() on every save operation.

Tags
see

/docs/4.1.1-members-table-reference.md for detailed API documentation

see

/docs/4.1-member-lifecycle.md for status system and workflows

Table of Contents

Constants

CACHE_GROUPS_TO_CLEAR  = []
CACHES_TO_CLEAR  = []
ID_CACHES_TO_CLEAR  = []

Properties

$Branches  : BranchesTable|BelongsTo
$CurrentMemberRoles  : MemberRolesTable|HasMany
$GatheringAttendances  : GatheringAttendancesTable|HasMany
$MemberQuickLoginDevices  : MemberQuickLoginDevicesTable|HasMany
$MemberRoles  : MemberRolesTable|HasMany
$Parents  : MembersTable|BelongsTo
$PendingAuthorizations  : PendingAuthorizationsTable|HasMany
$PreviousMemberRoles  : MemberRolesTable|HasMany
$ProfilePhoto  : DocumentsTable|BelongsTo
$Roles  : RolesTable|BelongsToMany
$UpcomingMemberRoles  : MemberRolesTable|HasMany

Methods

addBranchScopeQuery()  : SelectQuery
Add branch-based data scoping to a query.
afterDelete()  : void
After delete hook to capture impersonation audit trail entries.
afterSave()  : void
After-save handler for automatic cache invalidation.
beforeSave()  : void
Execute automatic member processing before entity save.
buildRules()  : RulesChecker
Build application-level business rules for data integrity.
deleteMany()  : iterable<string|int, Member>|ResultSetInterface<string|int, Member>|false
deleteManyOrFail()  : iterable<string|int, Member>|ResultSetInterface<string|int, Member>
findOrCreate()  : Member
get()  : Member
getSchema()  : TableSchemaInterface
Configure schema with JSON field support.
getValidationQueueCount()  : int
Get count of members requiring validation processing.
initialize()  : void
Initialize table configuration and associations.
newEmptyEntity()  : Member
newEntities()  : array<string|int, Member>
newEntity()  : Member
patchEntities()  : array<string|int, Member>
patchEntity()  : Member
save()  : Member|false
saveMany()  : iterable<string|int, Member>|ResultSetInterface<string|int, Member>|false
saveManyOrFail()  : iterable<string|int, Member>|ResultSetInterface<string|int, Member>
saveOrFail()  : Member
validationDefault()  : Validator
Define validation rules for member data.
logImpersonationAction()  : void
Record impersonated writes to audit log table.

Constants

CACHE_GROUPS_TO_CLEAR

protected array<string|int, string> CACHE_GROUPS_TO_CLEAR = []

Cache groups to clear entirely on save

CACHES_TO_CLEAR

protected array<string|int, array{string, string}> CACHES_TO_CLEAR = []

Static cache entries to clear on save

ID_CACHES_TO_CLEAR

protected array<string|int, array{string, string}> ID_CACHES_TO_CLEAR = []

Entity-ID cache prefixes to clear on save

Properties

$PendingAuthorizations

public PendingAuthorizationsTable|HasMany $PendingAuthorizations

Methods

addBranchScopeQuery()

Add branch-based data scoping to a query.

public addBranchScopeQuery(SelectQuery $query, array<string|int, int> $branchIDs) : SelectQuery

Child tables should override for custom branch relationships.

Parameters
$query : SelectQuery

The query to modify

$branchIDs : array<string|int, int>

Authorized branch IDs

Return values
SelectQuery

Query with branch filtering

afterDelete()

After delete hook to capture impersonation audit trail entries.

public afterDelete(EventInterface $event, EntityInterface $entity, ArrayObject $options) : void
Parameters
$event : EventInterface

Delete event

$entity : EntityInterface

Entity being deleted

$options : ArrayObject

Delete options

afterSave()

After-save handler for automatic cache invalidation.

public afterSave(EventInterface $event, EntityInterface $entity, ArrayObject $options) : void
Parameters
$event : EventInterface

The afterSave event

$entity : EntityInterface

The saved entity

$options : ArrayObject

Save options

beforeSave()

Execute automatic member processing before entity save.

public beforeSave(Event $event, EntityInterface $entity, ArrayObject $options) : void

Triggers ageUpReview() for minor-to-adult transitions and warrantableReview() for warrant eligibility updates.

Parameters
$event : Event

The beforeSave event

$entity : EntityInterface

The Member entity being saved

$options : ArrayObject

Save operation options

buildRules()

Build application-level business rules for data integrity.

public buildRules(RulesChecker $rules) : RulesChecker

Enforces email uniqueness across the organization.

Parameters
$rules : RulesChecker

Rules checker instance

Return values
RulesChecker

Configured rules checker

deleteMany()

public deleteMany(iterable<string|int, mixed> $entities[, array<string|int, mixed> $options = = '[]' ]) : iterable<string|int, Member>|ResultSetInterface<string|int, Member>|false
Parameters
$entities : iterable<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
iterable<string|int, Member>|ResultSetInterface<string|int, Member>|false

deleteManyOrFail()

public deleteManyOrFail(iterable<string|int, mixed> $entities[, array<string|int, mixed> $options = = '[]' ]) : iterable<string|int, Member>|ResultSetInterface<string|int, Member>
Parameters
$entities : iterable<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
iterable<string|int, Member>|ResultSetInterface<string|int, Member>

findOrCreate()

public findOrCreate(mixed $search[, callable|null $callback = = 'null' ][, array<string|int, mixed> $options = = '[]' ]) : Member
Parameters
$search : mixed
$callback : callable|null = = 'null'
$options : array<string|int, mixed> = = '[]'
Return values
Member

get()

public get(mixed $primaryKey[, array<string|int, mixed>|string $finder = = '\'all\'' ][, CacheInterface|string|null $cache = = 'null' ][, Closure|string|null $cacheKey = = 'null' ], mixed ...$args) : Member
Parameters
$primaryKey : mixed
$finder : array<string|int, mixed>|string = = '\'all\''
$cache : CacheInterface|string|null = = 'null'
$cacheKey : Closure|string|null = = 'null'
$args : mixed
Return values
Member

getSchema()

Configure schema with JSON field support.

public getSchema() : TableSchemaInterface
Return values
TableSchemaInterface

Configured schema

getValidationQueueCount()

Get count of members requiring validation processing.

public static getValidationQueueCount() : int

Counts members with membership cards or minor statuses pending review.

Return values
int

Number of members requiring validation review

initialize()

Initialize table configuration and associations.

public initialize(array<string, mixed> $config) : void
Parameters
$config : array<string, mixed>

Table configuration

newEntities()

public newEntities(array<string|int, mixed> $data[, array<string|int, mixed> $options = = '[]' ]) : array<string|int, Member>
Parameters
$data : array<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
array<string|int, Member>

newEntity()

public newEntity(array<string|int, mixed> $data[, array<string|int, mixed> $options = = '[]' ]) : Member
Parameters
$data : array<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
Member

patchEntities()

public patchEntities(iterable<string|int, mixed> $entities, array<string|int, mixed> $data[, array<string|int, mixed> $options = = '[]' ]) : array<string|int, Member>
Parameters
$entities : iterable<string|int, mixed>
$data : array<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
array<string|int, Member>

patchEntity()

public patchEntity(EntityInterface $entity, array<string|int, mixed> $data[, array<string|int, mixed> $options = = '[]' ]) : Member
Parameters
$entity : EntityInterface
$data : array<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
Member

save()

public save(EntityInterface $entity[, array<string|int, mixed> $options = = '[]' ]) : Member|false
Parameters
$entity : EntityInterface
$options : array<string|int, mixed> = = '[]'
Return values
Member|false

saveMany()

public saveMany(iterable<string|int, mixed> $entities[, array<string|int, mixed> $options = = '[]' ]) : iterable<string|int, Member>|ResultSetInterface<string|int, Member>|false
Parameters
$entities : iterable<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
iterable<string|int, Member>|ResultSetInterface<string|int, Member>|false

saveManyOrFail()

public saveManyOrFail(iterable<string|int, mixed> $entities[, array<string|int, mixed> $options = = '[]' ]) : iterable<string|int, Member>|ResultSetInterface<string|int, Member>
Parameters
$entities : iterable<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
iterable<string|int, Member>|ResultSetInterface<string|int, Member>

saveOrFail()

public saveOrFail(EntityInterface $entity[, array<string|int, mixed> $options = = '[]' ]) : Member
Parameters
$entity : EntityInterface
$options : array<string|int, mixed> = = '[]'
Return values
Member

validationDefault()

Define validation rules for member data.

public validationDefault(Validator $validator) : Validator
Parameters
$validator : Validator

Validator instance

Return values
Validator

Configured validator

logImpersonationAction()

Record impersonated writes to audit log table.

protected logImpersonationAction(string $defaultOperation, EntityInterface $entity) : void
Parameters
$defaultOperation : string

Operation fallback (save/delete)

$entity : EntityInterface

Affected entity


        
On this page

Search results