neo4j-php/neo4j-laravel
Integrate Neo4j graph databases into Laravel with configuration, service provider wiring, and convenient query support for building graph-backed applications alongside your existing Laravel stack.
whereVectorSimilarTo() against Neo4j vector indexes means semantic search and RAG-style retrieval can sit next to existing Eloquent models, rather than requiring a separate vector database vendor. This is a meaningful roadmap unlock in a first release.php-cypher-dsl, and a Neo4jModel with hasOne/hasMany/belongsToMany/through and polymorphic relations is a lot of "buy" for free — but at v0.0.1 you are buying code, not support.config/database.php-level registration makes Neo4j a first-class connection alongside MySQL/Postgres. Multiple connections, runtime connection registration, and useDatabase() support multi-tenant or per-tenant-graph designs.NEO4J_QUERY_CHANNEL), Laravel query events, and the Debugbar collector give the performance visibility needed to set and defend an SLO.file driver. That is an architectural constraint, not a bug, and it should be settled before any roadmap commitment that implies "single store."insertRelationships, upsertRelationships, syncRelationships, deleteRelationships) support backfill and reconciliation jobs, which is usually the difference between a demo and a shippable graph feature.Adopt (at least for a spike) when:
Look elsewhere when:
php-cypher-dsl; when something is slow or semantically wrong, someone must be able to read and hand-write Cypher. Budget for that skill.Also flag as unknowns to resolve in evaluation: supported Neo4j server versions, licence of the package and of php-cypher-dsl, maintainer/contributor depth, test coverage, and whether select() behavior matches Laravel 13 semantics beyond the note that it is compiled.
For executives. This is a first public release (v0.0.1) of a Laravel database driver for Neo4j. It lets the existing Laravel team build graph-backed and vector-search features — recommendations, relationship and permission traversal, semantic retrieval for AI — on the stack we already run, instead of standing up a separate service and a separate team. The strategic value is optionality: graph becomes an available tool rather than a re-platforming project. The risk is equally clear: it is pre-1.0, has no backward-compatibility promise, and cannot serve Laravel authentication or sessions. Recommendation: fund a time-boxed proof of concept on one relationship-heavy feature behind a feature flag, with an internal abstraction boundary, before any roadmap commitment.
For engineering. The surface is broad for a first release: a real DB driver with parameterised queries, transactions, pooling, TLS, and basic/Kerberos/OIDC auth; a query builder compiled to Cypher through php-cypher-dsl with aggregates, grouping, unions, subqueries, and vector similarity; Eloquent models with the standard relationship types including polymorphic and through-relations, plus relationship create/attach/sync/detach; and first-class observability via Laravel query events, per-request query log flushing, and a Debugbar collector. The gaps are maturity, not features: no migration tooling, unverified breadth of Eloquent parity, and an unresolved long-term maintenance story. Pin the version, wrap graph access behind our own repository interface, and validate our real query patterns and write paths in a spike before we depend on it.
For product. Ask for graph features only where the question is fundamentally about connections between things — that is where this earns its keep. Ask for vector search where we want semantic retrieval over content we already store. Don't ask for it as a general database replacement.
How can I help you explore Laravel packages today?