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());
 }
Ejemplo n.º 2
0
    {
        $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));