コード例 #1
0
 public function getRoutes()
 {
     // Consul
     $apFactory = new AddressProviderFactory();
     // Rabbitmq
     $rabbitAp = $apFactory->createConsulAddressProvider('rabbitmq');
     $rAdd = $rabbitAp->getAddress();
     $rConn = new AMQPStreamConnection($rAdd->getHost(), $rAdd->getPort(), "guest", "guest", "/");
     // MySQL
     $mysqlAp = $apFactory->createConsulAddressProvider('mysql');
     $mAdd = $mysqlAp->getAddress();
     $dsn = sprintf("mysql:host=%s;dbname=borg", $mAdd->getHost());
     $db = new \PDO($dsn, 'borg', 'changeme', [\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8']);
     $db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
     // Resource Dependencies
     $http = null;
     $scanner = new Scanner($http);
     $dbm = new RaceDbm($db);
     // Resources
     $ls = new LifeFormScanner($scanner);
     $gs = new GroupScanner($scanner);
     $as = new Assimilation($dbm);
     // Borg
     $driver = new AmqpCollectiveDriver($rConn);
     $coll = new Collective($driver, "borg-demo", $_SERVER['CUBE_DC']);
     $coll->assimilate($ls);
     $coll->assimilate($gs);
     $coll->assimilate($dbm);
     return [RouteBuilder::get()->uri('/life-form')->resource($ls, 'scan')->method(Http::METHOD_POST)->build(), RouteBuilder::get()->uri('/group')->resource($gs, 'scan')->method(Http::METHOD_POST)->build(), RouteBuilder::get()->uri('/race/:race')->resource($as, 'assimilateRace')->method(Http::METHOD_PUT)->build(), RouteBuilder::get()->uri('/race/:race')->resource($as, 'getRaceStatus')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/borg')->resource($coll, "mux")->method(Http::METHOD_POST)->build()];
 }
コード例 #2
0
ファイル: CollectiveMuxTest.php プロジェクト: fliglio/borg
 /**
  * @expectedException \Exception
  */
 public function testMuxNoRoutingKey()
 {
     // given
     $coll = new Collective($this->driver, $this->mapper, $this->routing);
     $coll->assimilate($this);
     $args = ["hello world", new Chan(null, $this->driver, $this->mapper), new Foo("bar")];
     $req2 = $this->buildRequest($args);
     $req = new Request();
     $req->setBody($req2->getBody());
     // when
     $resp = $coll->mux($req);
 }
コード例 #3
0
ファイル: TestConfiguration.php プロジェクト: fliglio/borg
 public function getRoutes()
 {
     $rConn = new AMQPStreamConnection('localhost', 5672, "guest", "guest", "/");
     $driver = new AmqpCollectiveDriver($rConn);
     $resource = new TestResource();
     $fun = new FunResource();
     $shake = new ShakespeareResource();
     $mapper = new DefaultMapper($driver);
     $routing = new RoutingConfiguration("borg-demo");
     $coll = new Collective($driver, $mapper, $routing);
     $coll->assimilate($resource);
     $coll->assimilate($fun);
     $coll->assimilate($shake);
     return [RouteBuilder::get()->uri('/round-trip')->resource($resource, 'roundTrip')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/chan-chan')->resource($resource, 'chanChan')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/generate-numbers')->resource($resource, 'generateNumbers')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/generate-numbers-2')->resource($resource, 'generateNumbersTwo')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/sync')->resource($resource, 'syncEx')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/fibonacci')->resource($fun, 'fibonacci')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/pi')->resource($fun, 'pi')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/prime')->resource($fun, 'prime')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/shakespeare/words')->resource($shake, 'allWords')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/shakespeare/words-sync')->resource($shake, 'allWordsSync')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/borg')->resource($coll, "mux")->method(Http::METHOD_POST)->build()];
 }