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

Doctrine Laravel Package

indexnowkit/doctrine

Doctrine ORM/DBAL integration for IndexNowKit. Track entity URL changes and submit them to IndexNow-compatible search engines with configurable listeners, repositories, and flexible mapping for Laravel and PHP applications.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Freshness as a feature, not a hope. The package notifies IndexNow-participating engines (Bing, Yandex, Seznam, Naver) the moment URLs are created, updated, or retired. That turns "how fast does new content get discovered?" from a crawl-schedule guess into a product decision you can defend on the roadmap — relevant for news, marketplaces, UGC, docs, and price/inventory churn.
  • One codebase, many domains — now actually verified. 0.9.0 stops skipping conformance scenario C04 (two hosts → one POST per host, each under its own key). If you are weighing a single multi-tenant deployment against per-brand deployments, this is the evidence that per-host key routing is exercised rather than asserted.
  • Build vs buy: buy. Key-file hosting, host grouping, batching, per-host keys, and error classification are commodity work with no differentiation. Consuming this (plus indexnowkit/core ^0.13) keeps engineering on content and discovery surfaces instead of protocol plumbing.
  • Enable it app-wide, not surgically. The new closure/sink constructor defers building the change handler, submitter, client, and transport until the first flush that has something to classify. That removes the main objection to registering the listener globally: no DI graph, no HTTP client, no transport on requests that never submit. It also makes the listener safe inside a lazy Adapter\Services graph.
  • Plan around pre-1.0 churn. At 0.9.0 the API is still moving. Treat any integration as pinned (^0.9, core ^0.13) and budget a small migration pass per minor release rather than assuming stability.

When to Consider This Package

Adopt when most of these hold:

  • PHP/Laravel (or Symfony) app with content whose freshness is commercially meaningful, not just correctness.
  • You already have or can trivially add a per-environment key file served from the site root.
  • Traffic spans one or several hosts with distinct keys — the multi-host path is now tested, not theoretical.
  • Submission can be best-effort and asynchronous (queue or after-commit) rather than transactional with the write.
  • You accept a pre-1.0 dependency and can pin, and your Doctrine stack stays on ORM 3 (the dev pin to symfony/var-exporter ^6.4 || ^7.0 is deliberate — ORM 3 lazy ghosts reject v8 without native lazy objects).

Look elsewhere or defer when:

  • Google discovery is the actual requirement. IndexNow is not a Google channel; Google's Indexing API is scoped to job posting and livestream structured data. Do not let this package be sold internally as "instant Google indexing."
  • You need a frozen, semver-stable public API across the org, or you cannot tolerate the argument rename from indexNow: to $source (positional calls are unaffected — only named-argument call sites break).
  • You need guarantees (crawl confirmation, ranking outcomes); IndexNow is fire-and-forget submission with no SLA.
  • You require Symfony 8 / var-exporter 8 in dev — blocked for now.

How to Pitch It (Stakeholders)

For executives: a small, free dependency that shortens the time between "we published it" and "search engines know." No vendor contract, no per-URL cost, no new infrastructure — it rides the HTTP client and queue you already run. The 0.9.0 release is about making it cheap to leave switched on and proving the multi-brand case works; treat it as an SEO/discovery capability, not a platform bet, and keep expectations honest: this is the Bing/Yandex/Seznam/Naver channel, not Google.

For engineering: the listener can now be built from a change-handler closure plus a sink, so registering it globally no longer instantiates submitter, client, and transport on requests with nothing to flush — lazy graphs like Adapter\Services stay lazy. The facade constructor is unchanged and $autoFlush still works. One migration item: the first constructor parameter was renamed $indexNow → $source; grep for indexNow: named arguments, since positional calls are fine. CI also gained the missing ORM 3 + DBAL 3 install target, so a combination we claim to support is now actually exercised alongside the newly-enabled two-host conformance test.

For product/ops: scope the rollout to after-commit, best-effort submission with logging, and per-host keys in each environment. Success looks like faster appearance of new URLs in participating engines and clean per-host submission logs — measure discovery latency, not rankings.

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.
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
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource