tecnickcom/tc-lib-unicode
tc-lib-unicode is a PHP library for working with Unicode text, offering character data, normalization forms, case mapping, and grapheme-aware string utilities. It helps PHP applications handle multilingual input correctly through a clean object-oriented API.
Consider adoption when:
tecnickcom stack (notably TCPDF), where this is likely a transitive dependency — marginal cost is near zero and the license/version review is the only gate.ext-intl is unavailable or cannot be enabled (shared hosting, constrained containers, legacy PHP targets).NOASSERTION is a hard gate, not a formality — treat it as unknown until confirmed, and check copyleft obligations before any distribution or SaaS packaging decision.Look elsewhere when:
ext-intl is available. Normalizer, Collator, and IntlDateFormatter are faster, maintained by PHP core, and eliminate a dependency. This should be the default first answer.symfony/string (with symfony/polyfill-intl-* fallbacks) covers most of the same ground with a mature release cadence and clear licensing.For executives (one paragraph): This is a small, low-cost Unicode utility library that reduces defects in multilingual text handling — names, search, sorting, and PDF output. It is not a strategic bet and not a platform choice; it is a plumbing dependency that is likely already present transitively through our PDF tooling. The recommendation is to adopt it only behind an internal abstraction, with a verified license and a documented fallback to PHP's built-in intl extension. The principal risk is not technical but supply-chain: low adoption, a single maintainer, an unresolved license, and thin release signals. We contain that risk by isolating it, pinning versions, and keeping an exit path that costs days, not quarters.
For engineering:
UnicodeAdapter-style interface; no direct calls from controllers, models, or Blade.ext-intl where available and use this as the fallback, selected via container binding — this makes the exit cheap.NOASSERTION license to legal before merge; document the resolved SPDX identifier in the dependency register.How can I help you explore Laravel packages today?