28 if (!self::$instance) {
53 $this->factory->addRequestVisitor($location, $visitor);
62 $foundVisitors = array();
66 foreach ($operation->getParams() as $name => $arg) {
68 $location = $arg->getLocation();
70 if ($location && $location !=
'uri') {
72 if (!isset($foundVisitors[$location])) {
73 $foundVisitors[$location] = $this->factory->getRequestVisitor($location);
76 $value = $command[$name];
77 if ($value !==
null) {
79 $foundVisitors[$location]->visit($command, $request, $arg, $value);
85 if ($additional = $operation->getAdditionalParameters()) {
87 $foundVisitors[$additional->getLocation()] = $visitor;
92 foreach ($foundVisitors as $visitor) {
93 $visitor->after($command, $request);
110 OperationInterface $operation,
111 CommandInterface $command,
119 $visitor = $this->factory->getRequestVisitor($location);
120 $hidden = $command[$command::HIDDEN_PARAMS];
122 foreach ($command->toArray() as $key => $value) {
125 && !in_array($key, $hidden)
126 && !$operation->hasParam($key)
129 $visitor->visit($command, $request, $additional, $value);
150 if (!($uri = $operation->getUri())) {
151 return $client->createRequest($operation->getHttpMethod(), $client->getBaseUrl(),
null,
null, $options);
155 $variables = array();
156 foreach ($operation->getParams() as $name => $arg) {
157 if ($arg->getLocation() ==
'uri') {
158 if (isset($command[$name])) {
159 $variables[$name] = $arg->filter($command[$name]);
160 if (!is_array($variables[$name])) {
161 $variables[$name] = (string) $variables[$name];
167 return $client->createRequest($operation->getHttpMethod(), array($uri, $variables),
null,
null, $options);