public function testBuild() { $expected = new Schema(); $this->prepareBuilder($expected); foreach (new BasicSchema() as $name => $type) { $expected->registerType($name, $type); } $this->registerPredefinedClassTypes($expected); $this->assertEquals($expected, $this->object->build()); $expectedResources = array(new FileResource(TESTS_DIRECTORY . '/Resources/Schema/implementation.yml'), new FileResource(TESTS_DIRECTORY . '/Resources/Schema/schema.yml')); $this->assertEquals($expectedResources, $this->object->getResources()); }
{ $this->street = $street; } /** * @return mixed */ public function getStreet() { return $this->street; } } $cache = new SchemaCache(__DIR__ . '/cache/schema'); if (!$cache->isFresh()) { $locator = new FileLocator(array(__DIR__)); $builder = new SchemaBuilder(); $builder->registerLoader(new YamlLoader($locator)); $builder->loadSchema('schema.yml'); $builder->loadImplementation('implementation.yml'); $schema = $builder->build(); $cache->write($schema, $builder->getResources()); } else { $schema = $cache->get(); } $data = array('name' => 'Łukasz', 'registrationDate' => 1123818123, 'status' => 'ACTIVE', 'addresses' => array(array('street' => 'Sportowa', 'city' => 'Gdynia'), array('street' => 'Zamkowa', 'city' => 'Gdańsk'))); echo 'Raw data' . PHP_EOL; print_r($data); echo PHP_EOL . 'Transformed to "User" type:' . PHP_EOL; $object = $schema->getType('User')->create($data); print_r($object); echo PHP_EOL . 'Extracted data from object of "User" type:' . PHP_EOL; print_r($schema->getType('User')->extract($object));