WordListService
in package
Facade for managing word list operations.
Delegates filtering to WordListFilterBuilder, queries to WordListQueryService, and export SQL building to WordListExportBuilder. Retains bulk operations, single-word CRUD, and form data methods directly.
Tags
Table of Contents
Properties
- $exportBuilder : WordListExportBuilder
- $filterBuilder : WordListFilterBuilder
- $queryService : WordListQueryService
Methods
- __construct() : mixed
- buildLangCondition() : string
- Build query condition for language filter.
- buildQueryCondition() : string
- Build query condition for search query with prepared statement parameters.
- buildStatusCondition() : string
- Build query condition for status filter.
- buildTagCondition() : string
- Build tag filter condition.
- capitalizeByIdList() : string
- Capitalize words in ID list.
- countWords() : int
- Count words matching the filter criteria.
- deleteByIdList() : string
- Delete multiple words by ID list.
- deleteSentencesByIdList() : string
- Delete sentences for words in ID list.
- deleteSingleWord() : void
- Delete a single word by ID.
- getAnkiExportSql() : array{sql: string, params: array}
- Get Anki export SQL for selected words.
- getEditFormData() : array<string|int, mixed>|null
- Get word data for edit form.
- getFilteredWordIds() : array<string|int, int>
- Get word IDs matching filter criteria (for 'all' actions).
- getFlexibleExportSql() : array{sql: string, params: array}
- Get flexible export SQL for selected words.
- getNewTermFormData() : array<string|int, mixed>
- Get word data for new term form.
- getTestWordIdsSql() : array{sql: string, params: array}
- Get test SQL for selected words.
- getTsvExportSql() : array{sql: string, params: array}
- Get TSV export SQL for selected words.
- getWordsList() : array<string|int, mixed>
- Get words list for display.
- saveNewWord() : int
- Save a new word.
- toLowercaseByIdList() : string
- Convert words to lowercase in ID list.
- updateStatusByIdList() : string
- Update status for words in ID list.
- updateStatusDateByIdList() : string
- Update status date to NOW for words in ID list.
- updateWord() : string
- Update an existing word.
- validateRegexPattern() : bool
- Validate a regex pattern.
Properties
$exportBuilder
private
WordListExportBuilder
$exportBuilder
$filterBuilder
private
WordListFilterBuilder
$filterBuilder
$queryService
private
WordListQueryService
$queryService
Methods
__construct()
public
__construct([WordListFilterBuilder|null $filterBuilder = null ][, WordListQueryService|null $queryService = null ][, WordListExportBuilder|null $exportBuilder = null ]) : mixed
Parameters
- $filterBuilder : WordListFilterBuilder|null = null
- $queryService : WordListQueryService|null = null
- $exportBuilder : WordListExportBuilder|null = null
buildLangCondition()
Build query condition for language filter.
public
buildLangCondition(string $langId[, array<string|int, mixed>|null &$params = null ]) : string
Parameters
- $langId : string
-
Language ID
- $params : array<string|int, mixed>|null = null
-
Optional: Reference to params array for prepared statements
Return values
string —SQL condition
buildQueryCondition()
Build query condition for search query with prepared statement parameters.
public
buildQueryCondition(string $query, string $queryMode, string $regexMode[, array<string|int, mixed>|null &$params = null ]) : string
Parameters
- $query : string
-
Search query
- $queryMode : string
-
Query mode (term, rom, transl, etc.)
- $regexMode : string
-
Regex mode ('' or 'r')
- $params : array<string|int, mixed>|null = null
-
Optional: Reference to params array for prepared statements
Return values
string —SQL condition
buildStatusCondition()
Build query condition for status filter.
public
buildStatusCondition(string $status) : string
Parameters
- $status : string
-
Status code
Return values
string —SQL condition
buildTagCondition()
Build tag filter condition.
public
buildTagCondition(string $tag1, string $tag2, string $tag12[, array<string|int, mixed>|null &$params = null ]) : string
Parameters
- $tag1 : string
-
First tag ID (must be numeric or empty)
- $tag2 : string
-
Second tag ID (must be numeric or empty)
- $tag12 : string
-
Tag logic (0=OR, 1=AND)
- $params : array<string|int, mixed>|null = null
-
Optional: Reference to params array for prepared statements
Return values
string —SQL HAVING clause
capitalizeByIdList()
Capitalize words in ID list.
public
capitalizeByIdList(array<string|int, int> $ids) : string
Parameters
- $ids : array<string|int, int>
-
Array of word IDs
Return values
string —Result message
countWords()
Count words matching the filter criteria.
public
countWords(string $textId, string $whLang, string $whStat, string $whQuery, string $whTag[, array<string|int, mixed> $params = [] ]) : int
Parameters
- $textId : string
-
Text ID filter (comma-separated IDs or empty)
- $whLang : string
-
Language condition (with ? placeholders)
- $whStat : string
-
Status condition
- $whQuery : string
-
Query condition (with ? placeholders)
- $whTag : string
-
Tag condition (with ? placeholders)
- $params : array<string|int, mixed> = []
-
Merged binding parameters for filters
Return values
int —Number of matching words
deleteByIdList()
Delete multiple words by ID list.
public
deleteByIdList(array<string|int, int> $ids) : string
Parameters
- $ids : array<string|int, int>
-
Array of word IDs
Return values
string —Result message
deleteSentencesByIdList()
Delete sentences for words in ID list.
public
deleteSentencesByIdList(array<string|int, int> $ids) : string
Parameters
- $ids : array<string|int, int>
-
Array of word IDs
Return values
string —Result message
deleteSingleWord()
Delete a single word by ID.
public
deleteSingleWord(int $wordId) : void
Parameters
- $wordId : int
-
Word ID
getAnkiExportSql()
Get Anki export SQL for selected words.
public
getAnkiExportSql(array<string|int, int> $ids, string $textId, string $whLang, string $whStat, string $whQuery, string $whTag[, array<string|int, mixed> $filterParams = [] ]) : array{sql: string, params: array}
Parameters
- $ids : array<string|int, int>
-
Array of word IDs (empty for filter-based export)
- $textId : string
-
Text ID filter (comma-separated, empty for no filter)
- $whLang : string
-
Language condition (with ? placeholders)
- $whStat : string
-
Status condition
- $whQuery : string
-
Query condition (with ? placeholders)
- $whTag : string
-
Tag condition (with ? placeholders)
- $filterParams : array<string|int, mixed> = []
-
Merged binding parameters for filter conditions
Return values
array{sql: string, params: array} —SQL query and parameters
getEditFormData()
Get word data for edit form.
public
getEditFormData(int $wordId) : array<string|int, mixed>|null
Parameters
- $wordId : int
-
Word ID
Return values
array<string|int, mixed>|null —Word data for form or null if not found
getFilteredWordIds()
Get word IDs matching filter criteria (for 'all' actions).
public
getFilteredWordIds(string $textId, string $whLang, string $whStat, string $whQuery, string $whTag[, array<string|int, mixed> $params = [] ]) : array<string|int, int>
Parameters
- $textId : string
-
Text ID filter (comma-separated IDs or empty)
- $whLang : string
-
Language condition (with ? placeholders)
- $whStat : string
-
Status condition
- $whQuery : string
-
Query condition (with ? placeholders)
- $whTag : string
-
Tag condition (with ? placeholders)
- $params : array<string|int, mixed> = []
-
Merged binding parameters for filters
Return values
array<string|int, int> —Array of word IDs
getFlexibleExportSql()
Get flexible export SQL for selected words.
public
getFlexibleExportSql(array<string|int, int> $ids, string $textId, string $whLang, string $whStat, string $whQuery, string $whTag[, array<string|int, mixed> $filterParams = [] ]) : array{sql: string, params: array}
Parameters
- $ids : array<string|int, int>
-
Array of word IDs (empty for filter-based export)
- $textId : string
-
Text ID filter (comma-separated, empty for no filter)
- $whLang : string
-
Language condition (with ? placeholders)
- $whStat : string
-
Status condition
- $whQuery : string
-
Query condition (with ? placeholders)
- $whTag : string
-
Tag condition (with ? placeholders)
- $filterParams : array<string|int, mixed> = []
-
Merged binding parameters for filter conditions
Return values
array{sql: string, params: array} —SQL query and parameters
getNewTermFormData()
Get word data for new term form.
public
getNewTermFormData(int $langId) : array<string|int, mixed>
Parameters
- $langId : int
-
Language ID
Return values
array<string|int, mixed> —Language data for form
getTestWordIdsSql()
Get test SQL for selected words.
public
getTestWordIdsSql(string $textId, string $whLang, string $whStat, string $whQuery, string $whTag[, array<string|int, mixed> $filterParams = [] ]) : array{sql: string, params: array}
Parameters
- $textId : string
-
Text ID filter (comma-separated, empty for no filter)
- $whLang : string
-
Language condition (with ? placeholders)
- $whStat : string
-
Status condition
- $whQuery : string
-
Query condition (with ? placeholders)
- $whTag : string
-
Tag condition (with ? placeholders)
- $filterParams : array<string|int, mixed> = []
-
Merged binding parameters for filter conditions
Return values
array{sql: string, params: array} —SQL query and parameters
getTsvExportSql()
Get TSV export SQL for selected words.
public
getTsvExportSql(array<string|int, int> $ids, string $textId, string $whLang, string $whStat, string $whQuery, string $whTag[, array<string|int, mixed> $filterParams = [] ]) : array{sql: string, params: array}
Parameters
- $ids : array<string|int, int>
-
Array of word IDs (empty for filter-based export)
- $textId : string
-
Text ID filter (comma-separated, empty for no filter)
- $whLang : string
-
Language condition (with ? placeholders)
- $whStat : string
-
Status condition
- $whQuery : string
-
Query condition (with ? placeholders)
- $whTag : string
-
Tag condition (with ? placeholders)
- $filterParams : array<string|int, mixed> = []
-
Merged binding parameters for filter conditions
Return values
array{sql: string, params: array} —SQL query and parameters
getWordsList()
Get words list for display.
public
getWordsList(array{whLang?: string, whStat?: string, whQuery?: string, whTag?: string, textId?: string, params?: array} $filters, int $sort, int $page, int $perPage) : array<string|int, mixed>
Parameters
- $filters : array{whLang?: string, whStat?: string, whQuery?: string, whTag?: string, textId?: string, params?: array}
-
Filter parameters
- $sort : int
-
Sort column index
- $page : int
-
Page number
- $perPage : int
-
Items per page
Return values
array<string|int, mixed> —Array of word records
saveNewWord()
Save a new word.
public
saveNewWord(array<string, mixed> $data) : int
Parameters
- $data : array<string, mixed>
-
Form data
Tags
Return values
int —Word ID of the created word
toLowercaseByIdList()
Convert words to lowercase in ID list.
public
toLowercaseByIdList(array<string|int, int> $ids) : string
Parameters
- $ids : array<string|int, int>
-
Array of word IDs
Return values
string —Result message
updateStatusByIdList()
Update status for words in ID list.
public
updateStatusByIdList(array<string|int, int> $ids, int $newStatus, bool $relative, string $actionType) : string
Parameters
- $ids : array<string|int, int>
-
Array of word IDs
- $newStatus : int
-
New status value
- $relative : bool
-
If true, change by +1 or -1
- $actionType : string
-
Type of action (spl1, smi1, s5, s1, s99, s98)
Return values
string —Result message
updateStatusDateByIdList()
Update status date to NOW for words in ID list.
public
updateStatusDateByIdList(array<string|int, int> $ids) : string
Parameters
- $ids : array<string|int, int>
-
Array of word IDs
Return values
string —Result message
updateWord()
Update an existing word.
public
updateWord(array<string, mixed> $data) : string
Parameters
- $data : array<string, mixed>
-
Form data
Return values
string —Result message
validateRegexPattern()
Validate a regex pattern.
public
validateRegexPattern(string $pattern) : bool
Parameters
- $pattern : string
-
The regex pattern to validate
Return values
bool —True if valid, false otherwise