parse/php-sdk
Official Parse PHP SDK: a clean, Composer-ready client for Parse Server. Store and query objects, manage users and sessions, upload files, send push notifications, and run cloud functions—everything you need to add a full Parse backend to any PHP application with minimal setup.
Architecture fit. parse/php-sdk remains a thin REST client for a Parse Server instance — not a Laravel package and not a persistence layer. Release 2.4.0 does not change this. The fit is still binary rather than gradual:
Integration feasibility. Low-to-moderate effort, unchanged by 2.4.0. Composer install, PSR-4 Parse\ namespace, no shipped service provider or facade — we write the glue ourselves (roughly 100–200 lines: config, singleton client init, per-domain adapters, exception mapping). There is no framework coupling to fight, and the release introduces no new integration surface. The real friction is unchanged: the SDK initializes client credentials as static/global state, which sits awkwardly with Laravel's container scoping, parallel test isolation, queue workers, and any multi-tenant configuration.
Technical risk.
Http::fake(), Telescope, and generic retry/circuit-breaker middleware. We must build our own observability decorator.NOASSERTION — GitHub could not classify the LICENSE file. This remains a legal review gate before any production use. 2.4.0 does not touch it.Key questions.
Recommendation: conditional adoption, narrow scope — unchanged. Use it strictly as an anti-corruption-layer client to an existing Parse Server, pinned at 2.4.0. The release is a net positive for adoption: it removes the single most likely "does this even run on our stack" objection for a PHP 8.3 estate. It does not alter the architectural verdict, and 8.4 remains a gap to plan around. Do not adopt Parse as the primary backend for new Laravel work.
Stack fit. Standard Laravel app hosts it without conflict: PHP 7.4+/8.x, Composer, no conflicting extensions beyond cURL/JSON/mbstring. 2.4.0 makes PHP 8.3 a first-class supported target rather than an untested constraint, which is the practical floor for a new Laravel build today. The key framing is unchanged: it sits beside Eloquent, not inside it — it is an outbound integration, and should be treated like one (config, timeouts, retries, circuit breaking, contract tests).
Recommended pattern — anti-corruption layer.
config/parse.php holding app_id, rest_key, master_key (env-backed, encrypted at rest), server_url, and explicit connect/read timeouts.ParseServiceProvider that initializes the static client exactly once at boot and binds singleton adapters — never ParseClient::initialize() inside a controller or job.TicketRepository, CustomerDirectory) implemented by adapters that translate to/from ParseObject/ParseQuery. No Parse\ types leak into controllers, jobs, or domain code.ParseException codes to application exceptions, centralized in one class.Migration path. Direction matters:
Compatibility. Pin 2.4.0 exactly — no caret ranges — given the release cadence and the fact that the version we have actually validated on PHP 8.3 is this one. 2.3.2 → 2.4.0 is a minor bump with a single additive feature and no breaking changes or deprecations, so there is no migration work from wherever we sit today. Treat PHP 8.4 as unsupported until a release says otherwise; if our platform standardizes on 8.4, budget for a local patch overlay. Confirm no extension conflicts. Assume upstream fixes will not arrive on our schedule and keep a fork path warm.
Sequencing.
Maintenance. Community-maintained with low velocity, and 2.4.0 confirms the pattern: a single compatibility release in the 2024 window, driven by a user-filed issue rather than an internal roadmap. Assign one engineer as owner of the adapter layer plus a standing ~10% allocation to track upstream. Pin versions, disable auto-bumps, and plan the PHP 8.4 conversation ourselves rather than waiting — historically the fix arrives as an issue-driven patch, so filing early is the practical lever. Accept that a fork may be required; keep our changes isolated and rebasable.
Support. No vendor SLA, no commercial support for the SDK itself. Escalation is internal — GitHub issues and the Parse community forum. 2.4.0's provenance (an outside contributor's PHP 8.3 patch merged in) is a reasonable proxy for issue responsiveness but is a weak signal for turnaround on anything complex. If this integration lands on a revenue path, record it in the risk register.
Scaling. Unchanged; 2.4.0 is not a performance release. Every operation is a network round trip; latency, not CPU, is the constraint.
skip pagination — it degrades server-side; prefer range queries on createdAt/objectId.At moderate admin/back-office volume this is comfortable. At high write volume on user-facing paths, it is not.
Failure modes.
Ramp-up. One to two weeks for a mid-level Laravel developer to be productive: Parse's schemaless classes, pointers vs. relations, ACL/CLP semantics, query constraints, the error-code table, and the static-state/test-isolation workaround. Add roughly half a day on our adapter conventions and logging. Document the ACL/CLP model explicitly — "why can't Laravel see this record" will be the most common support ticket class, and it is almost always a permissions-model misunderstanding rather than a bug.
How can I help you explore Laravel packages today?