• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

heimrichhannot / contao-utils-bundle / 38577605491

14 Oct 2026 02:06PM UTC coverage: 84.066% (+4.2%) from 79.825%
38577605491

push

github

web-flow
Add search vector field (#108)

* add search vector field

* remove build in stemmer, add preparation for snowball stemmer

* enhance tokenizer, info about default locate

* adjust comments

* update language loading

* add normalizer

* fix issues with contao 5.3

* drop 4.13 support

* make indexing async

* update test data

* apply rector

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* address review comments

- Declare an explicit ESCAPE '!' for the LIKE patterns, so escaped wildcards
  match literally on every platform, and test it against stored rows
- Add the missing imports to the README configuration example
- Complete the locale description of BuildSearchVectorEvent
- Replace Contao's internal LegacyLocaleSwitcher in the indexer test with a
  test double

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* move search vector field documentation to docs

Keep a short example in the README like for the other fields and move the
full documentation to docs/dca_fields/search_vector_field.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* add createCondition method

* reject several search vector fields per table

A second registration for the same table silently replaced the first one.
Now loading the DCA throws an exception that names the conflicting fields.
Loading a DCA several times in one process, each time registering the field
once, is still allowed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* address review comments on indexing

- Lock the record while its vector is rebuilt (SELECT ... FOR UPDATE in a
  transaction), so concurrent rebuilds cannot overwrite a newer vector;
  requires Doctrine DBAL 3.8
- Expand Contao 5.7 virtual fields before resolving the configured fields
- Reject invalid --id values in the rebuild command instead of rebuilding
  the whole table
- Replace the deprecated Connection::quoteIdentifier() with the platform's
  quoteSingleIdentifier() and report Doctrine deprecat... (continued)

392 of 407 new or added lines in 16 files covered. (96.31%)

1588 of 1889 relevant lines covered (84.07%)

8.9 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

66.67
/src/SearchVector/LoadedLanguageFiles.php
1
<?php
2

3
namespace HeimrichHannot\UtilsBundle\SearchVector;
4

5
use Contao\System;
6

7
/**
8
 * Reads the names of the language files Contao has loaded so far, which Contao keeps in a protected property only.
9
 *
10
 * @internal
11
 */
12
abstract class LoadedLanguageFiles extends System
13
{
14
    /**
15
     * @return list<string> Empty if the Contao version does not track loaded language files
16
     */
17
    public static function getNames(): array
18
    {
19
        if (!\property_exists(System::class, 'arrLanguageFiles')) {
15 ✔
NEW
20
            return [];
×
21
        }
22

23
        return \array_map(strval(...), \array_keys(System::$arrLanguageFiles));
15 ✔
24
    }
25
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc