Repository navigation
Releases
Releases · indexnowkit/php-doctrine
0.9.0
symfony/var-exporter stays at ^6.4 || ^7.0 in require-dev: Doctrine ORM 3 builds its lazy ghosts with the
var-exporter 6.4/7 API and refuses version 8 unless native lazy objects are enabled ("Symfony LazyGhost is not available").
Added
IndexNowListenercan be built over a change-handler closure and a sink instead of the facade:
new IndexNowListener(fn() => $services->changes(), null, $staging, $logger, sink: fn(array $urls) => $services->kit()->collect($urls)).
The change handler is then built on the first flush that has something to classify, so an adapter with a lazy graph
(Adapter\Services) no longer builds submitter, client and transport just to register the listener. The facade
constructor is unchanged and keeps working,$autoFlushincluded.
Changed
IndexNowListener::__construct(): the first parameter is$source(IndexNowKit|Closure), formerly$indexNow.
Positional calls are unchanged; a call passing it by name (indexNow:) renames the argument (the bundle did).- The test harness configures a second host with its own key, so conformance scenario C04 (URLs of two hosts -> one
POST per host under its own key) actually runs here instead of being skipped. composer ci:install:orm3dbal3: the ORM 3 + DBAL 3 combination is declared supported but was never installed
anywhere (highest = ORM 3 + DBAL 4, lowest anddbal3= ORM 2 + DBAL 3). It usesphpstan.dbal3.neonlike every
other DBAL 3 flavour — the config switches on the DBAL major, not the ORM one.- Requires
indexnowkit/core ^0.13.
0.8.1
Changed
IndexNowListenerbuilds itsObjectChangeHandlerwith the facade's extractor as the third argument (core 0.12.0 makes
the extractor a required parameter); anew AttributeUrlResolver($indexNow->attributes, $indexNow->extractor, ...)in
your own wiring needs the same (README updated).- Requires
indexnowkit/core ^0.12.
0.8.0
Changed
Middleware\IndexNowConnection::rollBack()discards the staged URLs in afinally(DBAL 4 and 3): a driver that
threw on rollback left them staged, and the next successful commit on the same connection submitted the URLs of the
rolled-back transaction. On DBAL 3 acommit()returningfalsediscards them too.IndexNowListeneraccumulates a flush that another listener triggers insidepostFlush()into the outer one instead
of resetting the outer flush's pending entities.- Requires
indexnowkit/core ^0.11.
Added
tests/CoreConformanceTest: the C01–C20 kit against the graph the Doctrine wiring is built around, as the framework adapters run it.
0.7.1
0.7.0
0.6.0
0.5.0
Changed
- Requires core 0.7. The test suite requires
indexnowkit/testing ^0.1(require-dev):OrmConformanceTestCaseand
ReadmeAssertionsmoved there from the core (the kit keeps its FQCN; the assertions are
Testing\Conformance\ReadmeAssertions).
Documentation
- README: "Notes for AI assistants" (package, minimal complete snippet, verification, pitfalls across the adapters);
ReadmeAiNotesTestkeeps it consistent with the commands and configuration keys. homepagein composer.json points at the docs site (https://indexnowkit.github.io/php/).
0.4.0
Changed
- Requires
indexnowkit/core ^0.6(wave 0a of docs/spec/17). No change in this package's own API; upgrade
together with the core.
Documentation
- docs/bc.md: what this package keeps stable (
IndexNowDoctrine, the listener and middleware, the
commit-safety behaviour, the DBAL/ORM majors) and what is not a contract. README: "Why this over X", the issues link.
0.3.1
0.3.0
Changed
- Requires
indexnowkit/core ^0.4(the adapter kit release: the sitemap reader isindexnowkit/sitemap,
Result::urlsOf()is gone). No change in this package's own API; upgrade together with the core. - Dev tooling: phpstan runs on the DBAL 4 / ORM 3 install only (DBAL 3 / ORM 2 declare their signatures in
docblocks that contradict it); thelowestanddbal3flavours still run the tests.