PHP рдореЗрдВ Neo4j рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ NoSQL рдФрд░ рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдмрд▓ рдЦреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдХрд░ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЗрддрдиреЗ рд▓реЗрдЦ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди "рдирд┐рдпреЛ 4 рдЬреЗ" рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ 4 рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ, рдЬрд╣рд╛рдВ рд▓реЗрдЦ рдХреЗ рдкрд╛рда рдореЗрдВ рдЗрд╕ рдирд╛рдо рдХрд╛ рдкрд░реЛрдХреНрд╖ рд░реВрдк рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

Neo4j рдХреНрдпрд╛ рд╣реИ?


рдЫрд╡рд┐
Neo4j рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди, NoSQL рдЧреНрд░рд╛рдл-рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИред рдЗрд╕рдореЗрдВ рдХрдбрд╝рд╛рдИ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕реА рдЪреАрдЬ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдиреЛрдбреНрд╕ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд▓рдЪреАрд▓реА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рдХреИрд╕реЗ рдорд┐рд▓рд╛?


рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝-рдЙрдиреНрдореБрдЦ рдбреАрдмреАрдПрдордПрд╕ " рдореЛрдВрдЧреЛрдбреАрдмреА " рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред MySQL рдХреЗ рдмрд╛рдж, рдореЗрд░реА рдЦреБрд╢реА рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ рдХрд┐ MongoDB рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд┐рддрдирд╛ рд╕рд░рд▓ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡рд░реНрд╖ рднрд░ рдореЗрдВ, рд╣рдорд╛рд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдирд┐рд░реНрдорд╛рдг рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ , рд╣рдордиреЗ рдЕрдкрдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд╕рд╛рде, рдФрд░ рдЙрдирдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рджрд░реНрдЬрди рд╕рд╛рдЗрдЯреЛрдВ рд╕реЗ рдореБрдЦреНрдп рд╕реАрдореЛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреАрди рд╕реАрдПрдордПрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдареАрдХ рдерд╛, рдФрд░ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдпрд╣ рднреВрд▓ рдЬрд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдерд╛ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдкрдЪрд╛рд╕ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рд╢реНрди рд▓рд┐рдЦрдирд╛ рдХреНрдпрд╛ рд╣реИ рдФрд░ рддрдм рддрдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рд░рд┐рд╢реНрддреЛрдВ рдХреА рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрд░реЗ рд╕рд┐рд░ рдореЗрдВ рдирд╣реАрдВ рдЧрд┐рд░реЗ, рдЬреЛ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рдереАред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрдирд╛ рдЪрд╛рд╣рддрд╛, рдФрд░ рдореИрдВрдиреЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдиреЛрдПрд╕рдХреНрдпреВрдПрд▓ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдЦреЛрдЬ рдореЗрдВ рдмрд┐рддрд╛рдпрд╛ рдЬреЛ рд▓рдЪреАрд▓реЗ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЛ рдбреАрдмреАрдПрдордПрд╕ рдХреЛ рд░реЗрдЦрд╛рдВрдХрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдФрд░ рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдореЗрд░реА рдкрд╕рдВрдж Neo4j рдереА, рдореБрдЦреНрдп рдХрд╛рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рдерд╛ рдХрд┐ рдореЗрд░рд╛ рдЗрдВрдЬрди PHP рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рдбреНрд░рд╛рдЗрд╡рд░, " Neo4jPHP ", рдЗрд╕рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ Noe4j рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП REST рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд▓рдЧрднрдЧ 100% рд╣реИред

рдмрд┐рдВрджреБ рдкрд░ рдкрд╣реБрдБрдЪреЛ


рдЧреНрд░рд╛рдлрд╝ рдбреЗрдЯрд╛рдмреЗрд╕ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдбреЗрдЯрд╛ рд░рд┐рд╢реНрддреЛрдВ рдореЗрдВ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдирд┐рдХрдЯрддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдХрдИ рд╕реНрддрд░реЛрдВ рдореЗрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ, рдпрд╣ рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ: "рдореБрдЭреЗ рдЙрди рд╕рднреА рдЕрднрд┐рдиреЗрддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рджреЗрдВ рдЬреЛ рдХреЗрд╡рд┐рди рдмреЗрдХрди рдХреЗ рд╕рд╛рде рдлрд┐рд▓реНрдо рдореЗрдВ рдереЗ"ред

> SELECT actor_name, role_name FROM roles WHERE movie_title IN (SELECT DISTINCT movie_title FROM roles WHERE actor_name='Kevin Bacon') 


рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдкреНрд░рд╢реНрди рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛, рдЖрдк рдЗрд╕реЗ "рдЬреЛрдЗрди" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд╕рд┐рд░ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдЙрди рд╕рднреА рдЕрднрд┐рдиреЗрддрд╛рдУрдВ рдХреЗ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдлрд┐рд▓реНрдо рдореЗрдВ рдХреЗрд╡рд┐рди рдмреЗрдХрди рдХреЗ рд╕рд╛рде рдлрд┐рд▓реНрдо рдореЗрдВ рдереЗред рдФрд░ рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ JOIN рд╣реИред рдЕрдм рддреАрд╕рд░реА рдбрд┐рдЧреНрд░реА рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: "рдЬреЛ рдХрд┐рд╕реА рдХреЗ рд╕рд╛рде рдлрд┐рд▓реНрдо рдореЗрдВ рдерд╛, рдЬреЛ рдХрд┐рд╕реА рдХреЗ рд╕рд╛рде рдлрд┐рд▓реНрдо рдореЗрдВ рдерд╛, рдЬреЛ рдХреЗрд╡рд┐рди рдмреЗрдХрди рдХреЗ рд╕рд╛рде рдлрд┐рд▓реНрдо рдореЗрдВ рдерд╛ред" рдбрд░рд╛рд╡рдирд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рд░реНрдп рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ рдФрд░ рд╣рд░ рдирдП рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИред рдЬреЛрдЗрди рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдЕрдиреБрд░реЛрдз рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓, рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓реА, рдХрдо рдФрд░ рдХрдо рдЙрддреНрдкрд╛рджрдХ рдмрди рдЬрд╛рдПрдЧрд╛ред

рджреАрдк рдХрдиреЗрдХреНрд╢рди рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдорд╛рдЬрд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВ, рдЬрдм рд╣рдореЗрдВ рджреЛрд╕реНрддреЛрдВ рдХреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ, рдЖрджрд┐ред рдЧреНрд░рд╛рдлрд╝ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрдм рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рджреЛ рдпрд╛ рдЕрдзрд┐рдХ рд╕рдВрдмрдВрдзреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рд╣рдо рдбреЗрдЯрд╛ рдХреЛ "рд░реЗрдЦрд╛рдВрдХрди рдХреЗ рдХреЛрдиреЗ" рдФрд░ рдЗрди рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ "рдЧреНрд░рд╛рдлрд╝ рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ" рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдмрд╣реБрдд рд╣реА рд╢рд╛рдиреНрддрд┐ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЬреНрдЮрд╛рдд рдФрд░ рдХреБрд╢рд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЧреНрд░рд╛рдл рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдЕрднрд┐рдиреЗрддрд╛ рдФрд░ рдлрд┐рд▓реНрдо рдиреЛрдб рд╣реИрдВ, рдФрд░ рднреВрдорд┐рдХрд╛рдПрдВ рд░рд┐рд╢реНрддреЗ рд╣реИрдВ рдЬреЛ рдЕрднрд┐рдиреЗрддрд╛ рд╕реЗ рдлрд┐рд▓реНрдо рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЦреЗрд▓рд╛ рдерд╛:

рдЫрд╡рд┐

рдЕрдм рдХреЗрд╡рд┐рди рдмреЗрдХрди рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрднрд┐рдиреЗрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд╛рд╕реНрддрд╛ рдЦреЛрдЬрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдХреБрдЫ рдХреЛрдб


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ Neo4jPHP REST рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреЛрдИ рд╕реНрдерд╛рдпреА рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗрд╡рд▓ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

 use Everyman\Neo4j\Client, Everyman\Neo4j\Transport, Everyman\Neo4j\Node, Everyman\Neo4j\Relationship; $client = new Client(new Transport('localhost', 7474)); 


рдЕрдм рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЕрднрд┐рдиреЗрддрд╛ рдФрд░ рдлрд┐рд▓реНрдо рдХреЗ рд▓рд┐рдП рдиреЛрдб рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╣рдо рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреАрдмреАрдПрдордПрд╕ рдореЗрдВ рдЗрдирд╕рд░реНрдЯ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ:

 $keanu = new Node($client); $keanu->setProperty('name', 'Keanu Reeves')->save(); $laurence = new Node($client); $laurence->setProperty('name', 'Laurence Fishburne')->save(); $jennifer = new Node($client); $jennifer->setProperty('name', 'Jennifer Connelly')->save(); $kevin = new Node($client); $kevin->setProperty('name', 'Kevin Bacon')->save(); $matrix = new Node($client); $matrix->setProperty('title', 'The Matrix')->save(); $higherLearning = new Node($client); $higherLearning->setProperty('title', 'Higher Learning')->save(); $mysticRiver = new Node($client); $mysticRiver->setProperty('title', 'Mystic River')->save(); 


рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдореЗрдВ рд╕реЗрдЯрдкреНрд░реЙрдкрд░реНрдЯреА рдФрд░ рдЧреЗрдЯрдкреНрд░реЙрдкрд░рд┐ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ , рдЬреЛ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЛрдб рдХреЛ рдордирдорд╛рдирд╛ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред рдиреЛрдб рдореЗрдВ рдПрдХ рджреА рдЧрдИ рд╕рдВрд░рдЪрдирд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝-рдЙрдиреНрдореБрдЦ рдбреАрдмреАрдПрдордПрд╕ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо рдПрдореНрдмреЗрдбреЗрдб рдбреЗрдЯрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЗрд╡рд▓ рджреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛ рд╕рдХрддреА рд╣реИ: рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдПрдХ рд╕рдВрдЦреНрдпрд╛ред
рдбреЗрдЯрд╛ рд╕рд░реНрд╡рд░ рдкрд░ рддрднреА рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╣рдо рд╕реЗрд╡ () рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдм рд╣рдореЗрдВ рдЕрднрд┐рдиреЗрддрд╛рдУрдВ рдФрд░ рдлрд┐рд▓реНрдореЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЦреЗрд▓рд╛ рд╣реИред рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрдкрд░рдХ DBMS рдореЗрдВ рд╣рдо рдПрдХ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдмрдирд╛рдПрдВрдЧреЗ, рдпрд╣рд╛рдБ рд╣рдо рдПрдХ рд╕рдВрдмрдВрдз рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕реЗ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рдиреЛрдб рдХреА рддрд░рд╣ рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 $keanu->relateTo($matrix, 'IN')->save(); $laurence->relateTo($matrix, 'IN')->save(); $laurence->relateTo($higherLearning, 'IN')->save(); $jennifer->relateTo($higherLearning, 'IN')->save(); $laurence->relateTo($mysticRiver, 'IN')->save(); $kevin->relateTo($mysticRiver, 'IN')->save(); 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рднреА рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ "IN" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХреЛрдИ рдЕрдиреНрдп рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "ACTED IN"ред рд╣рдо рдлрд┐рд▓реНрдореЛрдВ рд╕реЗ рдЕрднрд┐рдиреЗрддрд╛рдУрдВ рдХреЗ рд╡реНрдпреБрддреНрдХреНрд░рдо рд╕рдВрдмрдВрдз рднреА рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдлрд┐рд▓реНрдо "рдПрдЪрдПрдПрд╕" (рдПрдХ рдЕрднрд┐рдиреЗрддрд╛) рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрдереЛрдВ рдХреЛ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╣рдо рдХрд┐рд╕ рджрд┐рд╢рд╛ рдореЗрдВ рд╕рдВрдЪрд╛рд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рд╣рдо рдХрд┐рд╕реА рднреА рд╢рдмреНрджрд╛рд░реНрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред рдЗрд╕реА рд╕рдордп, рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдХрдИ рд╕рдВрдмрдВрдз рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рднреА рд░рд┐рд╢реНрддреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдм рд╣рдо рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдХрд┐рд╕реА рднреА рдЕрднрд┐рдиреЗрддрд╛ рдФрд░ рдХреЗрд╡рд┐рди рдмреЗрдХрди рдХреЗ рдмреАрдЪ рдХрд┐рд╕реА рднреА рдЧрд╣рд░рд╛рдИ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ:

 $path = $keanu->findPathsTo($kevin) ->setMaxDepth(12) ->getSinglePath(); foreach ($path as $i => $node) { if ($i % 2 == 0) { echo $node->getProperty('name'); if ($i+1 != count($path)) { echo " was in\n"; } } else { echo "\t" . $node->getProperty('title') . " with\n"; } } 


рд╣рдо рд╕реНрд╡рдпрдВ рднреА рдиреЛрдбреНрд╕ рдирд╣реАрдВ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдмреАрдЪ рдХреЗ рдХрдиреЗрдХреНрд╢рди, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 echo $laurence->getProperty('name') . " was in:\n"; $relationships = $laurence->getRelationships('IN'); foreach ($relationships as $relationship) { $movie = $relationship->getEndNode(); echo "\t" . $movie->getProperty('title') . "\n"; } 


getRelationships - рдПрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдмрдВрдзреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рд╣рдо рд╕рдВрдЪрд╛рд░ рдиреЛрдб рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдпрд╛ рдмрд╛рд╣рд░ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЛ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдкреНрдд рдХрд░ рджреВрдВрдЧрд╛, рдФрд░ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЧреНрд░рд╛рдлрд╝ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ neo4j рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ рджреЗрдЧрд╛ред

рдореЗрд░реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд▓реЗрдЦ рдиреЗ Neo4jPHP рдбреЗрд╡рд▓рдкрд░ рд╕рд╛рдЗрдЯ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

Source: https://habr.com/ru/post/In152079/


All Articles