ホームページ >バックエンド開発 >PHPチュートリアル >Neo4J Symfonyバンドルの紹介
この記事では、Symfony Neo4Jバンドルを使用したSymfony PHPフレームワークを使用して、オープンソースNOSQLグラフデータベースであるNeo4Jのシームレスな統合について説明します。 このバンドルは、Neo4Jとの相互作用を簡素化し、堅牢なSymfony中心の体験を提供します。
ObjectManager
find
remove
グラフデータベースを選択する理由?persist
flush
neo4jの強み:
データベースアドオンとは異なり、NEO4Jはグラフデータベースとしてゼロから構築され、接続されたデータのデータストレージと取得を最適化します。 複雑な結合操作、リレーショナルデータベースの一般的なボトルネックは、NEO4Jで大幅に高速です。 cypher query言語:
neo4jは、非プログラマーであっても直感的で読みやすい宣言的なグラフクエリ言語であるcypherを使用します。 そのパターンマッチング機能は、複雑なクエリを簡素化します。 たとえば、推奨クエリ(「お客様のような顧客もこれを購入した」)は、Cypherで簡潔に表現できます。<code>MATCH (c:Customer)-[:BOUGHT]->(:Product)(reco:Product) WHERE c.id = 123 AND NOT (c)-[:BOUGHT]->(reco) RETURN reco.name, count(*) as frequency ORDER BY frequency DESC LIMIT 10;</code>
バンドルはGraphAware PHPクライアントをラップし、WebProfiler統合を通じてSymfonyエクスペリエンスを強化します。 これにより、データベースの呼び出し、クエリ、結果、例外の詳細なビューが提供され、デバッグの簡素化されます。
バンドルの使用:
バンドルには、2つの主要なアプローチがあります
上級ユーザーの場合、NEO4Jクライアントとの直接的な相互作用がサポートされています。
<code>MATCH (c:Customer)-[:BOUGHT]->(:Product)(reco:Product) WHERE c.id = 123 AND NOT (c)-[:BOUGHT]->(reco) RETURN reco.name, count(*) as frequency ORDER BY frequency DESC LIMIT 10;</code>
<code class="language-php">$client = $this->get('neo4j.client'); $results = $client->run('MATCH (n:Movie) RETURN n LIMIT 5'); foreach ($results->records() as $record) { $node = $record->get('n'); echo $node->get('title'); // "The Matrix" }</code>
<code class="language-php">use GraphAware\Neo4j\OGM\Annotations as OGM; /** * @OGM\Node(label="User") */ class User { /** @OGM\GraphId() */ protected $id; // ... other properties and methods }</code>
関係と関係エンティティ:
Neo4Jは関係を一流の市民として扱います。 注釈はノード間の関係を定義し、関係エンティティはこれらの関係にプロパティを追加することを可能にします。
始めましょう:@OGMRelationship
この強化された説明は、Symfony Neo4Jバンドルのより包括的な概要を提供し、元の情報の完全性を維持しながら、その主要な機能と利点を強調しています。 FAQは、改訂されたテキスト内で暗黙的に対処されます
以上がNeo4J Symfonyバンドルの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。