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

Apache Tika Bundle Laravel Package

jolicode/apache-tika-bundle

Symfony bundle that integrates Apache Tika to extract text and metadata from PDFs, Office documents, and other files. Provides simple services and configuration for document content extraction in PHP applications.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Feature scoping for document ingestion. If your roadmap includes "upload any file, get searchable text," this package is the shortest path in Symfony to a working extractor: it wires vaites/php-apache-tika into the container as an injectable service, so a developer can pull text and metadata out of PDF, DOCX, XLSX, PPT, ODT, HTML, RTF, EPUB, and images (with Tika's OCR) without writing per-format parsers.
  • Build vs. buy on format coverage. Tika covers ~1,600 MIME types. Replacing it means either writing a fragile chain of smalot/pdfparser + PhpSpreadsheet + PhpWord + pdftotext, or buying a cloud API (Textract, Document AI, Azure Document Intelligence). This bundle is the "assemble, don't build" option — but note it is a ~100-line glue layer, not the engine; the real dependency is the Java Tika server.
  • Concrete use cases worth validating against demand: full-text search indexing (Elasticsearch/Meilisearch/Algolia), RAG and LLM pipelines that need clean text from customer documents, resume/CV and invoice parsing, contract and e-discovery review, CMS media libraries that need auto-generated previews and metadata, MIME-type sniffing to enforce upload policy.
  • Roadmap timing signal. v1.1.0 lifts the Symfony constraint to >= 4.0 (thanks to a community contributor), so the integration is no longer frozen at Symfony 3 — but the project remains a low-traffic, single-maintainer bundle with a small user base. Treat this as evidence that the feature is underserved and that if you need it you will own the integration, while the release shows the underlying wiring is at least portable to a modern app skeleton.
  • Architecture decision it forces. Adopting this commits you to running a JVM sidecar (Tika Server) alongside your PHP app — a real ops cost in container size, memory, health checks, and deploy topology. That trade-off should be made deliberately, not as a side effect of a Composer require.

When to Consider This Package

  • Adopt the underlying approach when: you have many heterogeneous document formats and cannot predict them; extraction quality on Office/PDF matters more than latency; you already run JVM services or can tolerate a sidecar; and you are on Symfony 4.x (now explicitly supported by v1.1.0) or Symfony 3-era constraints where the bundle's autoconfiguration resolves.
  • Fork or reimplement rather than require: the v1.1.0 compatibility bump is a one-line constraint change, not evidence of a maintenance commitment. For most teams the responsible move remains a thin TikaClient service wrapper (tens of lines) over vaites/php-apache-tika directly. You get the same capability with no dependency on a narrowly-maintained bundle and full control over Symfony version compatibility.
  • Look elsewhere when: your formats are narrow (PDF-only → pdftotext/smalot/pdfparser; Office-only → PhpSpreadsheet/PhpWord); you need sub-second, high-volume extraction (cloud OCR APIs or purpose-built parsers will beat a JVM round-trip); you cannot run Java in production; you need a vendor SLA or security patching cadence; or you are on Symfony 5/6/7, where the new >= 4.0 constraint is formally satisfied but untested and unreleased since this bump.
  • Gate the decision on: a spike proving extraction quality on your five worst real-world documents, a measured p95 latency and memory footprint for the Tika container, and confirmation that the bundle's service definitions still load on your Symfony and PHP versions after the v1.1.0 constraint change.

How to Pitch It (Stakeholders)

To executives: We can add "search and understand any uploaded document" to the product without building a parser per file type. The underlying engine, Apache Tika, is an established Apache project that reads over a thousand formats. The Symfony connector just got a community release that modernizes its framework compatibility, which is a good sign but not a support guarantee — it is still one maintainer and a small install base. My recommendation is unchanged: use the engine, own the integration ourselves, roughly a day of engineering rather than a standing dependency risk. The real cost is infrastructure: one extra Java service to run and monitor.

To engineering: This is a thin Symfony bundle around vaites/php-apache-tika, which talks to a Tika Server over HTTP. It gives you an injectable client for text and metadata extraction plus MIME detection, with autoconfiguration. v1.1.0 raises the constraint to Symfony >= 4.0, so it now installs on 4.x and above — verify it still boots on your target version, since the compatibility claim stops at the constraint and there is no CI signal for 5/6/7. Do not take it as a long-term dependency: single maintainer, minimal dependents, and a release history measured in years rather than months. Recommended path remains a short internal service class over the same client library, with Tika deployed as a sidecar behind a health check, so we control versioning, timeouts, and retries.

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.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums