eonx-com/easy-api-platform
EonX Easy API Platform is a Laravel/PHP package that simplifies integrating API Platform into your app. It streamlines configuration and reduces boilerplate so you can expose consistent, standards-based REST and GraphQL APIs faster with less custom wiring.
Run the stack-fit gate before you type composer require. This package is an integration layer for API Platform, which is Symfony-first. If your day job is a Laravel monolith using Route::apiResource, Eloquent API Resources, FormRequest validation and LengthAwarePaginator, this is not a dependency you can adopt — it solves a problem you don't have. Two legitimate entry points remain:
If you are genuinely on API Platform:
composer require eonx-com/easy-api-platform
With Symfony Flex, EasyApiPlatformBundle should be auto-registered in config/bundles.php; add it manually otherwise. Confirm the runtime matrix first — PHP version, API Platform major, and whether the bridge you use is actually exercised by this package — from the split repo's composer.json constraints, not from the prose description.
Where to look first, in order:
composer.json of the split package — the real support matrix is the require/require-dev block, not the README.src/ for the DI extension and the config tree — that inventory is the documentation at this maturity level.easy-error-handler, easy-pagination, easy-test-utils, easy-standard) — this package is glue for the suite, and its conventions only make sense in that context.First use case: take one representative CRUD resource, enable it, hit the endpoint, and diff the response shape against stock API Platform (status codes, pagination metadata, error body, serializer output). That diff tells you what the package actually contributes versus what the framework already gives you. Timebox this to an afternoon.
Default pattern for a Laravel team: borrow, don't buy. The value here is one team's opinionated answers to problems you keep re-solving. Reimplement them in Laravel-native form under MIT attribution:
| Package concept | Laravel-native analogue |
|---|---|
| Resource-oriented config | Route::apiResource + a resource config array |
| Pagination/filtering conventions | LengthAwarePaginator + a QueryFilter pipeline |
| Serialization config | API Resources / JsonResource with whenLoaded |
| Validation error shape | FormRequest + a single exception renderer |
| OpenAPI generation | l5-swagger / scramble |
Extract the contracts (error envelope shape, pagination metadata keys, filter whitelist rules) and encode them as tests, not as a dependency.
If you actually adopt it inside an API Platform app:
EasyApiPlatform classes from domain code. Introduce your own interfaces/aliases so removal is a provider deletion, not a refactor.Dependency hygiene, day one:
"eonx-com/easy-api-platform": "1.2.3"
Pin the exact tag, not a caret range, and log the corresponding monorepo commit in a dependency decision record. Configure Renovate/Dependabot to require a human lockfile-diff review on any bump — the split repo offers no meaningful semver narrative to automate against.
Prepare the exit ramp up front: vendor a fork into your own VCS namespace under the same package name and point Composer at it via a path/vcs repository before you need to. Improvising that under incident pressure is how teams get stuck.
For Laravel-only shops, the deliverable is a one-pager, not a package. Half a day from a senior engineer: feature inventory, the conventions you're copying, the extension points you'd have used, and the removal procedure. That artefact outlives the dependency.
decorates, compiler passes, and any services.yaml that replaces core API Platform services.composer.lock review step in CI.composer.json.How can I help you explore Laravel packages today?