Documentation

WordFamilyApiHandler
in package
implements ApiRoutableInterface uses ApiRoutableTrait

Handler for word family/lemma-related API operations.

Provides endpoints for:

  • Getting word families by term or lemma
  • Listing word families for a language
  • Updating status for entire word families
  • Getting lemma statistics
Tags
since
3.0.0

Table of Contents

Interfaces

ApiRoutableInterface
Interface for API handlers that participate in route dispatch.

Properties

$lemmaService  : LemmaService|null

Methods

__construct()  : mixed
Constructor.
applyFamilyUpdate()  : array{success: bool, count: int}
Apply suggested family update (bulk status change).
getFamilyUpdateSuggestion()  : array{suggestion: string, affected_count: int, term_ids: int[]}
Get suggestion for updating related word family members after status change.
getLemmaStatistics()  : array<string|int, mixed>
Get lemma statistics for a language.
getTermFamily()  : array<string|int, mixed>
Get word family for a term.
getWordFamilyByLemma()  : array<string|int, mixed>
Get word family by lemma.
getWordFamilyList()  : array{families: array, pagination: array}
Get paginated list of word families for a language.
getWordFamilyListFromParams()  : array{families: array, pagination: array}
Get paginated list of word families from query parameters.
routeDelete()  : JsonResponse
routeGet()  : JsonResponse
Handle a GET request for word families.
routePost()  : JsonResponse
routePut()  : JsonResponse
updateWordFamilyStatus()  : array{success: bool, count?: int, error?: string}
Update status for all words in a word family.
frag()  : string
Extract a fragment from the fragments array.
getLemmaService()  : LemmaService
Get the LemmaService instance.

Properties

Methods

applyFamilyUpdate()

Apply suggested family update (bulk status change).

public applyFamilyUpdate(array<string|int, int> $termIds, int $status) : array{success: bool, count: int}
Parameters
$termIds : array<string|int, int>

Term IDs to update

$status : int

New status

Return values
array{success: bool, count: int}

getFamilyUpdateSuggestion()

Get suggestion for updating related word family members after status change.

public getFamilyUpdateSuggestion(int $termId, int $newStatus) : array{suggestion: string, affected_count: int, term_ids: int[]}
Parameters
$termId : int

Term that was updated

$newStatus : int

New status that was set

Return values
array{suggestion: string, affected_count: int, term_ids: int[]}

getLemmaStatistics()

Get lemma statistics for a language.

public getLemmaStatistics(int $langId) : array<string|int, mixed>
Parameters
$langId : int

Language ID

Return values
array<string|int, mixed>

Statistics data

getTermFamily()

Get word family for a term.

public getTermFamily(int $termId) : array<string|int, mixed>

Returns all words sharing the same lemma with statistics.

Parameters
$termId : int

Term ID

Return values
array<string|int, mixed>

Word family data or error

getWordFamilyByLemma()

Get word family by lemma.

public getWordFamilyByLemma(int $langId, string $lemmaLc) : array<string|int, mixed>
Parameters
$langId : int

Language ID

$lemmaLc : string

Lowercase lemma

Return values
array<string|int, mixed>

Word family data or error

getWordFamilyList()

Get paginated list of word families for a language.

public getWordFamilyList(int $langId[, int $page = 1 ][, int $perPage = 50 ][, string $sortBy = 'lemma' ][, string $sortDir = 'asc' ]) : array{families: array, pagination: array}
Parameters
$langId : int

Language ID

$page : int = 1

Page number

$perPage : int = 50

Items per page

$sortBy : string = 'lemma'

Sort field

$sortDir : string = 'asc'

Sort direction

Return values
array{families: array, pagination: array}

getWordFamilyListFromParams()

Get paginated list of word families from query parameters.

public getWordFamilyListFromParams(int $langId[, array<string|int, mixed> $params = [] ]) : array{families: array, pagination: array}
Parameters
$langId : int

Language ID

$params : array<string|int, mixed> = []

Query parameters (page, per_page, sort_by, sort_dir)

Return values
array{families: array, pagination: array}

routeDelete()

public routeDelete(array<string|int, mixed> $fragments, array<string|int, mixed> $params) : JsonResponse
Parameters
$fragments : array<string|int, mixed>
$params : array<string|int, mixed>
Return values
JsonResponse

routeGet()

Handle a GET request for word families.

public routeGet(array<int, string> $fragments, array<string, mixed> $params) : JsonResponse

Routes:

  • GET /word-families/stats?language_id=N -> lemma statistics
  • GET /word-families?language_id=N&lemma_lc=X -> family by lemma
  • GET /word-families?language_id=N -> paginated list
Parameters
$fragments : array<int, string>

URL path segments

$params : array<string, mixed>

Query parameters

Return values
JsonResponse

routePost()

public routePost(array<string|int, mixed> $fragments, array<string|int, mixed> $params) : JsonResponse
Parameters
$fragments : array<string|int, mixed>
$params : array<string|int, mixed>
Return values
JsonResponse

routePut()

public routePut(array<string|int, mixed> $fragments, array<string|int, mixed> $params) : JsonResponse
Parameters
$fragments : array<string|int, mixed>
$params : array<string|int, mixed>
Return values
JsonResponse

updateWordFamilyStatus()

Update status for all words in a word family.

public updateWordFamilyStatus(int $langId, string $lemmaLc, int $status) : array{success: bool, count?: int, error?: string}
Parameters
$langId : int

Language ID

$lemmaLc : string

Lowercase lemma

$status : int

New status

Return values
array{success: bool, count?: int, error?: string}

frag()

Extract a fragment from the fragments array.

protected frag(array<int, string> $fragments, int $index) : string
Parameters
$fragments : array<int, string>

The URL path fragments

$index : int

The index to extract

Return values
string

The fragment at the index, or empty string if not present


        
On this page

Search results