- Does keller/soundex-fr-bundle work with Laravel out of the box?
- No. It is a Symfony bundle: it ships a Bundle class and a dependency-injection extension wired to symfony/framework-bundle, with no Laravel ServiceProvider, facade, publishable config or package-discovery metadata. Requiring it in a Laravel app mostly pulls in Symfony framework constraints without registering anything you can use. The part you actually want is the French Soundex encoder, which is small enough to vendor into app/Support and bind yourself.
- How do I install French Soundex in a Laravel 10 or 11 project?
- There is no Laravel-native install path. A composer require may resolve on PHP 8.2 only if the bundle's Symfony constraints allow it, and even then nothing auto-registers. The practical approach is to copy the encoder class into your application, re-namespace it, and wrap it behind a FrenchSoundex interface. Add a thin service provider only if you need container binding or a config value for truncation length.
- What is French Soundex and what can I use it for?
- Soundex Français is a phonetic algorithm that encodes a French word into a compact key based on how it sounds rather than how it is spelled. That makes it useful for tolerant name search, fuzzy matching of customer or contact records, and deduplicating entries where the spelling varies. Typical uses are search normalization and record linkage on French surnames.
- Does keller/soundex-fr-bundle handle accented characters like é, è, ç, œ and æ?
- That is not documented in the package material and must be verified before you rely on it. Accents on vowels are usually folded correctly, but ligatures such as œ and æ are a common failure point in older phonetic implementations. Write test cases for each accented form and each ligature, and confirm the encoder uses mb_* string functions rather than byte-based ones.
- Is French Soundex output stable across PHP versions and locales?
- Unknown for this repository, and that is one of the main risks. If the implementation calls setlocale or relies on locale-aware ctype or strtolower behavior, the same input can produce different keys on different servers. Pin a PHP version, avoid locale-dependent functions, and lock behavior down with a fixture suite of expected outputs.
- How do I add a soundex column to an Eloquent model?
- Store a precomputed key in a soundex_fr column and index it, then encode the search term at query time and match on equality or prefix. A small HasSoundex trait with a saving hook that fills the column from the name attribute keeps the value consistent. Because the algorithm sits behind an interface, call sites do not change if you later swap implementations.
- Should I compute French Soundex keys at runtime or persist them?
- For search and deduplication over more than a handful of rows, persist the key: encoding on every request does not scale and cannot use an index. Compute it once on write and backfill existing rows in a queued job. Runtime comparison is fine for one-off checks, such as matching a single form submission against a short list.
- What license is keller/soundex-fr-bundle under, and can I vendor the code?
- The license is not stated in the package summary, so check the LICENSE file and the composer.json license field on the repository before copying anything. Vendoring a permissively licensed implementation with attribution is usually fine, but the attribution requirement has to be compatible with how you distribute your application. Record the decision in your dependency notes.
- Is keller/soundex-fr-bundle actively maintained?
- The signals are weak: very few stars, no dependents, and no evidence of a maintained CI pipeline or test suite. Treat it as a source of an algorithm rather than a dependency you can rely on for updates. Alternatives include a small spec-based encoder you own outright, or a maintained phonetic library such as Double Metaphone, though results differ on French names. If you adopt it, vendor the code and own the tests so upstream abandonment or a silent behavior fix cannot break your data.
- How do I verify a French Soundex implementation is correct?
- Build a PHPUnit fixture set from published French Soundex test vectors and gate merges on it passing. Then run the encoder over a sample of your real French names, including North African, West African and Portuguese-influenced surnames, and inspect the collision clusters. A short spike like that tells you whether the collision rate is acceptable before you commit to a schema.