Repository navigation
Feature/alpha 3 - #13
Merged
Merged
Conversation
Newer Composer blocks PHPUnit releases with security advisories, and the patched releases require doctrine/instantiator ^1.5, which conflicted with the ~1.4.0 pin and broke fresh installs in CI. Widen the constraint and update the lock for PHPUnit 9.6.37 and its dependencies.
…etup - Remove withCount(), has()/whereHas()/doesntHave(), and constraint-parameter docs for APIs that don't exist on master. - Use store() instead of save() on mappers. - Fix broken links, the Laravel 12 requirement, and a readme typo. - Note that the base Mapper does not initialize $instantiator and that doctrine/instantiator must be installed by the application.
…or contract Replace the two incomplete global-scope tests, add BelongsToMany pivot getter tests, and add characterization tests for the unset-instantiator behavior.
- Disable fail-fast, add job timeouts, least-privilege permissions, and PR-only concurrency cancellation. - Cache Composer downloads, add PHP 8.5 for Laravel 12, and add a job that validates and audits composer files. - Add a Dependabot config for GitHub Actions and narrow .gitignore to the Copilot paths so other .github files can be tracked.
- Add AGENTS.md as the canonical source of project commands and development rules for coding agents. - Add CLAUDE.md and .github/copilot-instructions.md as thin entry points that defer to AGENTS.md, so each harness reads the same instructions. - Stop ignoring .github/copilot-instructions.md so all three entry points are tracked consistently.
…e app dispatcher - Fire storing, creating, updating, removing and restoring in halt mode so a listener returning false cancels the operation, matching Eloquent's model events. The existing === false checks in the mapper now take effect. - Point mappers at the application's event dispatcher in the service provider instead of a fresh Dispatcher instance, so Event::listen() and wildcard listeners receive mapper events. - Add PersistenceEventTest and update the mocked dispatcher expectations in MapperTest to expect until() for the before events.
- Rewrite entity caching docs: the cache stores row attributes for change detection; it is not an identity map and does not avoid queries. - Document cancelling operations by returning false, and that mapper events go through the application's event dispatcher. - Fix typed-property examples and legacy factory usage, and remove nonexistent events and patterns. - Correct paginate signatures, builder proxy behavior, and broken anchors.
The lock file pins packages that require PHP 8.4 or newer (symfony/clock, symfony/translation, doctrine/instantiator), so installing it on PHP 8.3 fails. Use the lowest PHP version that satisfies the lock.
- Bump actions/checkout to v7 and actions/cache to v6, which run on Node 24. - GitHub is removing Node 20 from Actions runners; setup-php v2 already runs on Node 24.
- Add a phpunit.xml coverage block that includes src/ so `phpunit --coverage-text` works without extra flags. - Add a CI job that runs the suite with PCOV on PHP 8.4 and Laravel 12 and prints the coverage report in the job log.
- Dispatch persistence events as "holloway.eventName: EntityClass", mirroring Eloquent's "eloquent." prefix, so mapper events cannot collide with other listeners on the shared dispatcher and "holloway.*" matches all of them. - Build the name in one helper used by both firing and registering. - Update tests and docs, and add a wildcard listener test.
Builder has no $loads property; eager loads live on its Tree. Delegate to the tree so getLoads() returns the relations set via with()/without() instead of failing with an undefined-property error. Add BuilderTest covering it.
- Delete the best-practices example page and every testing, best-practices, performance, error-handling, and "production application" section. These covered Laravel and general architecture rather than Holloway. - Remove the e-commerce example, services and controllers, anti-pattern essays, and the Illuminate query builder walkthroughs (raw queries, aggregates, ordering) that duplicated Laravel's own docs. - Trim the reference implementation pages (entity patterns, base classes, hydration, lifecycle, type transformations, value objects) to the Holloway contract, keeping the Email and Money value object examples and the integration steps. - Drop sections that duplicated other pages: scopes in mappers and query-building, events in persistence, and the architecture overview of features documented elsewhere. - Keep the no-lazy-loading note and the soft-delete entity guidance, rewrite marketing-style intros, and fix tables of contents and links after the removals.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.