public static function getService(ArrayObject $config, Loops $loops) { if ($options = $config->toArray()) { return new Docker(new DockerClient($options)); } return new Docker(); }
public function setValue($value) { if (is_array($value)) { $value = new ArrayObject($value); } $current = $this->subform->getFormElements(); foreach (array_keys($current) as $key) { $this->subform->offsetUnset($key); } if ($value instanceof ArrayObject) { $values = $value->toArray(); } elseif ($value instanceof Traversable) { $values = iterator_to_array($value); } else { $values = (array) $value; } static $meh = 0; if ($meh++ > 40) { throw new \Exception("Meh"); } foreach ($values as $k => $v) { $element = array_key_exists($k, $current) ? $current[$k] : Misc::deepClone($this->newelement); $element->setValue($v); $value->offsetSet($k, $element->getValue(FALSE)); $this->subform->offsetSet($k, $element); } return parent::setValue($value); }
public function testToArray() { $test["a"] = 1; $arrayobject = new ArrayObject($test); $this->assertSame($arrayobject->toArray(), ["a" => 1]); $test["b"] = new ArrayObject(["c" => 2]); $arrayobject = new ArrayObject($test); $this->assertSame($arrayobject->toArray(), ["a" => 1, "b" => ["c" => 2]]); }
/** * Creates a new instance of a service * * @param $name The service name * @param array $config * @return Loops\Service\ServiceInterface The new service */ public function createService($name, ArrayObject $config = NULL, $merge_into_config = FALSE) { if ($merge_into_config) { $service_config = $this->config->offsetExists($name) ? $this->config->offsetGet($name) : new ArrayObject(); if (is_array($service_config)) { $service_config = ArrayObject::fromArray($service_config); } if ($config) { $service_config->merge($config); } } else { $service_config = $config ?: new ArrayObject(); } if (!$this->hasService($name)) { throw new Exception("Service '{$name}' does not exist."); } $service = $this->services[$name]; if (array_key_exists("classname", $service)) { $reflection = new ReflectionClass($service["classname"]); $params = new ArrayObject($service["params"]); $params->merge($service_config); if ($reflection->implementsInterface("Loops\\ServiceInterface")) { return call_user_func_array([$service["classname"], "getService"], [$params, $this]); } else { $params->offsetSet("loops", $this); return Misc::reflectionInstance($service["classname"], $params); } } if (array_key_exists("callback", $service)) { $params = new ArrayObject($service["params"]); $params->merge($service_config); return call_user_func_array($service["callback"], $params->toArray()); } if (array_key_exists("object", $service)) { return $service["object"]; } }
function testFormValue() { $app = new WebApplication(__DIR__ . "/app", "/"); $value = new ArrayObject(["test" => "123abc"]); $form = new SimpleTestForm($value); $formvalue = $form->getFormValue(); $this->assertInstanceOf("Loops\\Form\\Value", $formvalue); $this->assertSame($value->toArray(), $formvalue->toArray()); $this->assertSame($form, $formvalue->getForm()); }