/** * Return the this object's path in the current component hierarchy * @return string */ protected function getPath() { if (null === $this->parent) { return null; } if (null !== ($pPath = $this->parent->getPath())) { return $pPath . '.' . $this->handle; } else { return $this->handle; } }
function testNestedSetAndGetStateExec() { // Optional off $props = ['anyTypeRequired' => 1, 'anyTypeRequired2' => 2, 'boolRequired' => true, 'boolRequired2' => false, 'intRequired' => 4, 'doubleRequired' => 1.1, 'floatRequired' => 1.2, 'stringRequired' => 'string', 'name' => 'someone', 'arrayRequired' => [], 'objectRequired' => new SomeClass(), 'resourceRequired' => fopen("/tmp", 'r'), 'callableRequired' => function () { }, 'SomeClassRequired' => new SomeClass()]; $execHelper = new ExecHelper(); $log = new MemoryLogger(); $view = new HelloViewComponent(null, null, $execHelper, $log); $view->updateView($props); $outObj = $view->render("world.setState", ['something' => 5]); // Multiplies multiplier * props['intRequired'] $this->assertEquals("OK", $outObj->content); $viewSer = $view->dehydrate(); // Next page $view = AbstractViewComponent::rehydrate($viewSer, $execHelper, null, $log); $view->updateView($props); $outObj = $view->render("world.getState"); // Multiplies multiplier * props['intRequired'] //print_r( $log->messages ); $this->assertEquals(5, $outObj->content); }