рдереНрд░рд┐рдлреНрдЯ рдХреЗ рдмрд┐рдирд╛ рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреАрдПрдЪрдкреА рд╡рд┐рд╕реНрддрд╛рд░

рдЕрднрд┐рд╡рд╛рджрди, рд╕рддреНрдХрд╛рд░!

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ php рд╕реЗ рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рд╡реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рдореМрдЬреВрджрд╛ рдбреНрд░рд╛рдЗрд╡рд░ рдереНрд░рд┐рдлреНрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг 0.8 рдореЗрдВ рдкрджрд╛рд╡рдирдд рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдирдП CQL (рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдХреНрд╡реЗрд░реА рд▓реИрдВрдЧреНрд╡реЗрдЬ) рдПрдХреНрд╕реЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП php рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбреНрд░рд╛рдЗрд╡рд░ рдирд╣реАрдВ рд╣реИред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЗрдЯрд╛рд╕реНрдЯреИрдХреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ C ++, Java, C # рдФрд░ Python рдХреЗ рдбреНрд░рд╛рдЗрд╡рд░ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, Php рд╕реНрд╡рдпрдВ C рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЕрдкрдиреА рдЖрд╕реНрддреАрди рдКрдкрд░ рдХрд░рдХреЗ рд╣рдо рджреЛрд╕реНрддреЛрдВ рдХреЛ Php рдХреЗ рд╕рд╛рде рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ C ++ рдбреНрд░рд╛рдЗрд╡рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХреМрди рдЗрд╕рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ - рдореИрдВ рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реВрдВред



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



Datastax C ++ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдХрд╛рдлреА рддреБрдЪреНрдЫ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ



git clone https://github.com/datastax/cpp-driver.git
      
      





рдпрджрд┐ рдЖрдк рдЕрднреА рддрдХ рдЗрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдмреВрд╕реНрдЯ, рдУрдкрдиреНрд╕рд▓ рдФрд░ рд╕реАрдореЗрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ



 cd cpp-driver cmake . && make && make install
      
      





рд╕рдВрдХреЗрдд: рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕рднреА рдХреА рдЬрд░реВрд░рдд рд╣реИ рдПрдХ libcql.so.0.7.0 рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рд╕рд┐рдорд▓рд┐рдВрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ



 ln -s libcql.so.0.7.0 /usr/lib/libcql.so.0 ln -s /usr/lib/libcql.so.0 /usr/lib/libcql.so
      
      





рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреЗ рдЖрд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



 git clone https://github.com/aparkhomenko/php-cassandra.git cd php-cassandra phpize && ./configure && make
      
      





рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк Php cassandra.so рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ

рд╣рдо рдЬрд╛рдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:



 php -d="extension=modules/cassandra.so" -m
      
      





рдореЙрдбреНрдпреВрд▓ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╢рд┐рд▓рд╛рд▓реЗрдЦ рдХреИрд╕рдВрдбреНрд░рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛ - рдмрдзрд╛рдИ; рдпрджрд┐ рдирд╣реАрдВ - рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ :)



рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореВрд▓ рдЪрд╛рд▓рдХ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХрдХреНрд╖рд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: CqlBuilder, CqlCluster, CqlError, CqlFutureResult, CqlQuery, CqlSession, CqlResultред



рдЙрджрд╛рд╣рд░рдг рдореЙрдбреНрдпреВрд▓ рдмрд╛рддрдЪреАрдд:



 // Suppose you have the Cassandra cluster at 127.0.0.1, // listening at default port (9042). $builder = new CqlBuilder(); $builder->addContactPoint("127.0.0.1"); // Now build a model of cluster and connect it to DB. $cluster = $builder->build(); $session = $cluster->connect(); // Write a query, switch keyspaces. $query = new CqlQuery('SELECT * FROM system.schema_keyspaces'); // Send the query. $future = $session->query($query); // Wait for the query to execute; retrieve the result. $future->wait(); $result = $future->getResult(); if (null === $future->getError()) { echo "rowCount: {$result->getRowCount()}\n"; while ($result->next()) { echo "strategy_options: " . $result->get("strategy_options") . "\n"; } } // Boilerplate: close the connection session and perform the cleanup. $session->close(); $cluster->shutdown();
      
      






All Articles