Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Spellcheck Symfony Bundle Laravel Package

php-spellcheck/spellcheck-symfony-bundle

A Symfony bundle that integrates php-spellcheck/spellcheck with Symfony’s service container and configuration. It provides ready-to-use spellcheck services so you can validate text, forms, and custom workflows in your applications.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

v1.0.0 is the first stable release of php-spellcheck/spellcheck-symfony-bundle — a dev-only, CI-oriented quality gate rather than a runtime library. It informs these decisions:

  • Localization quality gate. Adding a build-blocking check on translation catalogues, keyed to each locale's own dictionary, turns "typos in shipped UI copy" from a review-time hope into an enforced standard. Directly relevant if you ship multiple locales or use non-native speakers/agencies for copy.
  • Naming consistency in code. The code dictionary checks class names, methods, properties, parameters, constants, docblocks and comments — a cheap proxy metric for codebase hygiene and API naming discipline.
  • CI investment / build-vs-buy. The hard parts here are not the dictionary lookup but the stripping logic (placeholders, HTML, markdown code fences, URLs, e-mails, paths) that preserves original column offsets, plus ICU plural/select expansion so only textual branches are checked. Rebuilding that in-house is a multi-sprint side quest for a marginal feature; buying/adopting is the rational call.
  • Incremental rollout on legacy code. The baseline mechanism ("only new typos fail the build") converts an all-or-nothing gate into a ratcheting one — the same pattern as snapshot tests or static-analysis baselines. This is the decision that makes adoption politically feasible on an existing codebase.
  • Backend/deployment posture. Four backends, including a pure-PHP wordlist backend that needs no system binary, means the gate can run in a stock CI container without provisioning hunspell/aspell. That's the difference between "nice idea" and "actually in the pipeline."
  • Roadmap positioning. v1.0.0 signals API stability; the 5.4 LTS floor and avoidance of autowiring/AbstractBundle indicate conservative maintenance intended for broad enterprise install bases — a low-churn dependency to standardize on.

Caveat that shapes the decision: this release is a Symfony bundle, not a Laravel package. For a Laravel-first team, the realistic plan is to depend on php-spellcheck/spellcheck-core directly and wrap it in an artisan command, or defer until a Laravel integration exists. The bundle's console commands and DI extension points are not reusable as-is. Budget a small spike to confirm effort before committing the roadmap.

When to Consider This Package

Adopt when:

  • The product ships user-facing strings in more than one locale, and translation catalogues live in the repo (Symfony/Laravel translation files, ICU messages).
  • CI runs on GitHub Actions or GitLab — native annotation and Code Quality report formats are first-class, so findings surface inline on the diff rather than in a log nobody reads.
  • You want a non-blocking first step: baseline the existing noise, fail only on new typos, then tighten over time.
  • The stack is PHP 8.1–8.5 and Symfony 5.4 LTS / 6.4 LTS / 7.x / 8.x (Symfony 8 requires PHP ≥ 8.4).
  • You cannot or will not install system binaries in CI — use the pure-PHP wordlist backend.
  • You want a single tool covering both catalogue strings and code identifiers, instead of two separate linters.

Look elsewhere when:

  • The application is Laravel-only. This is a Symfony bundle; you would be adopting the core library and writing your own integration. Evaluate that separately and price the glue code.
  • You need grammar/style checking, not spelling. This is a dictionary-based spell checker; it will not catch awkward phrasing, tone, or terminology consistency.
  • You expect zero configuration. Dictionary availability, locale-to-dictionary mapping, and custom dictionaries/ignore lists are configuration you will own; run spellcheck:doctor early to see what your CI image actually has.
  • You want editor-time feedback for developers. This is a pipeline tool; IDE spell checking is a different (and already solved) problem.
  • Your catalogues are managed outside the repo in a TMS (Crowdin, Lokalise, Phrase) with its own QA. Check for overlap before adding a second, potentially conflicting gate.
  • The team has no appetite for fixing findings. A gate with a permanent baseline becomes noise; a gate without a baseline becomes an outage on day one.

How to Pitch It (Stakeholders)

For executives (one paragraph): Typos in shipped UI copy are a small but highly visible brand and credibility problem, and they scale with the number of locales and contributors. This package adds a free, developer-only check to our existing CI pipeline that catches them before release, in every language, using each language's own dictionary — plus the same check on code identifiers and comments. It is a dev dependency with no runtime footprint, no infrastructure to provision (it can run with a pure-PHP backend in our current CI image), and no vendor contract. Cost is measured in a day or two of integration, not a budget line. Return is a permanently enforced quality floor on customer-facing text.

For engineering leads: Stable 1.0, PHP 8.1–8.5, Symfony 5.4 LTS through 8.x. Four backends including one with no system binary, so it drops into existing containers. Crucially, the stripping layer preserves original column offsets — findings point at the exact character in the exact file, so ignore-lists stay small and nobody hand-maintains line numbers. ICU-aware: plural/select branches are expanded and only textual branches checked, so we are not chasing false positives on {count, plural, ...}. Baseline mode lets us land it green on day one and let the gate ratchet. Seven console commands, autoconfigured extension points, and a spellcheck:doctor diagnostic for backends/dictionaries/locale mapping. Reporting covers human-readable, GitHub Actions annotations and GitLab Code Quality — no custom log parsing.

For the Laravel team specifically: Be explicit that this artefact is the Symfony integration. The recommendation is to adopt the underlying spellcheck-core and expose it as an artisan command, reusing the core's stripping, ICU handling and baseline logic but not the bundle's Symfony plumbing. Treat that wrapper as a small, timeboxed spike; if it exceeds the box, defer and revisit when a Laravel integration ships.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource