public static function setUpBeforeClass()
{
$tmp = sys_get_temp_dir();
if (is_writable("/dev/shm")) {
$tmp = "/dev/shm";
}
self::$phpDir = "{$tmp}/OTASerializationTestPHP";
self::$jmsDir = "{$tmp}/OTASerializationTestJMS";
self::$loader = new ClassLoader();
self::$loader->addPsr4(self::$namespace . "\\", self::$phpDir);
self::$loader->register();
if (is_dir(self::$phpDir)) {
self::delTree(self::$phpDir);
}
if (is_dir(self::$jmsDir)) {
self::delTree(self::$jmsDir);
}
if (!is_dir(self::$phpDir)) {
mkdir(self::$phpDir);
}
if (!is_dir(self::$jmsDir)) {
mkdir(self::$jmsDir);
}
$reader = new SchemaReader();
$schemas = array();
foreach (self::getXmlFiles() as $d) {
if (!isset($schemas[$d[1]])) {
$schemas[$d[1]] = $reader->readFile($d[1]);
}
}
self::generateJMSFiles($schemas);
self::generatePHPFiles($schemas);
$serializerBuiler = \JMS\Serializer\SerializerBuilder::create();
$serializerBuiler->configureHandlers(function (HandlerRegistryInterface $h) use($serializerBuiler) {
$serializerBuiler->addDefaultHandlers();
$h->registerSubscribingHandler(new BaseTypesHandler());
$h->registerSubscribingHandler(new XmlSchemaDateHandler());
$h->registerSubscribingHandler(new OTASchemaDateHandler());
});
$serializerBuiler->addMetadataDir(self::$jmsDir, self::$namespace);
self::$serializer = $serializerBuiler->build();
}