ODM Driver


DESCRIPTION: The ODM is the ultimate all-in-one extension tool for overhead drilling applications. The universal saddle fits most “D” handle rotary hammer drills on the market. The ODM is the most efficient and effective tool of its kind. LTECH is the front-runner of LED control field with 19 years R&D and production experience. National High-Tech Enterprise and a listed company in China. Total sales of around 10 million sets worldwide.

Board Design Services

• Building a tailored carrier board according to customers’ requirements
• Integration of our SoM in the end user’s hardware for cost reduction and lower footprint

Software Development Services

• Firmware, Device Drivers, BSP, Middleware
• Porting to different development environments
• Integration to target platform
• Wireless connectivity

Manufacturing Services

• Procurement of components
• Production quantity builds
• Custom labeling
• Complete turn-key solutions

Application Programming Interface:

• Full Bi-directional CEC API
• IR Blaster learning API
• HDMI input API with PIP, scaling and resize
• TR069 API
• Playready Player API
• DVB API supporting SDK to built own player

Driver/Kernel System Development:

• Kernel customization and source code release
• Media framework customization
• Uboot/recovery customization
• Driver porting, including touch panel driver
• OTT software porting

Media Streaming Protocol:

• Wifi SoftAP customization
• DLNA DMR/DMC/DMP/DMS software customization
• Miracast
• Airplay protocol porting

GUI/Content Protection/Others:

• 3D launcher, launcher customization
• XBMC/Kodi based customization
• HDCP for HDMI output, input and miracast
• Mircosoft PlayReady
• Google Widevine
• Verimatrix

The heart of an object mapper is the mapping informationthat glues everything together. It instructs the DocumentManager howit should behave when dealing with the different documents.

Core Metadata Drivers

Doctrine provides a few different ways for you to specify yourmetadata:

  • XML files (XmlDriver)
  • Class DocBlock Annotations (AnnotationDriver)
  • PHP Code in files or static functions (PhpDriver)

Something important to note about the above drivers is they are allan intermediate step to the same end result. The mappinginformation is populated to DoctrineODMMongoDBMappingClassMetadatainstances. So in the end, Doctrine only ever has to work with theAPI of the ClassMetadata class to get mapping information fora document.

The populated ClassMetadata instances are also cachedso in a production environment the parsing and populating only everhappens once. You can configure the metadata cache implementationusing the setMetadataCacheImpl() method on theDoctrineODMMongoDBConfiguration class:


If you want to use one of the included core metadata drivers youjust need to configure it. All the drivers are in theDoctrineODMMongoDBMappingDriver namespace:

Adam Driver Snl


Implementing Metadata Drivers

In addition to the included metadata drivers you can very easilyimplement your own. All you need to do is define a class whichimplements the Driver interface:

If you want to write a metadata driver to parse information fromsome file format we've made your life a little easier by providingthe AbstractFileDriver implementation for you to extend from:

When using the AbstractFileDriver it requires that youonly have one document defined per file and the file named after theclass described inside where namespace separators are replaced byperiods. So if you have a document named DocumentsUser and youwanted to write a mapping file for your driver above you would needto name the file Documents.User.dcm.ext for it to berecognized.

Now you can use your MyMetadataDriver implementation by settingit with the setMetadataDriverImpl() method:

ODM Driver


The last piece you need to know and understand about metadata inDoctrine is the API of the ClassMetadata classes. You need tobe familiar with them in order to implement your own drivers butmore importantly to retrieve mapping information for a certaindocument when needed.

You have all the methods you need to manually specify the mappinginformation instead of using some mapping file to populate it from.The base ClassMetadata class is responsible for only datastorage and is not meant for runtime use. It does not require thatthe class actually exists yet so it is useful for describing somedocument before it exists and using that information to generate forexample the documents themselves. The class ClassMetadataextends ClassMetadata and adds some functionality requiredfor runtime usage and requires that the PHP class is present andcan be autoloaded.


You can read more about the API of the ClassMetadata classes inthe PHP Mapping chapter.

Adam Driver John Oliver

Getting ClassMetadata Instances

If you want to get the ClassMetadata instance for a document inyour project to programmatically use some mapping information togenerate some HTML or something similar you can retrieve it throughthe ClassMetadataFactory:

Now you can learn about the document and use the data stored in theClassMetadata instance to get all mapped fields for example anditerate over them:

Comments are closed.