SunshinePHP Developer Conference 2015

Fonctions SDO

Services d'Accès de Données

La table ci-dessous liste les Services d'Accès de Données SDO actuellement fournis :

Nom DAS Description
SDO_DAS_XML Un Service d'Accès de Données XML supportant la lecture/écriture SDOs comme documents XML.
SDO_DAS_Relational Un Service d'Accès de Données basé sur PDO supportant la lecture/écriture SDO aux bases de données relationnelles. Implémente une politique optimiste de mises à jour concourante.

Classes pré-définies

SDO consiste en trois blocs d'interface. Le premier bloc couvre les interfaces pour utiliser avec les applications typiques SDO. Celles-ci sont identifiées par le préfixe de paquet 'SDO_'. Le deuxième bloc est celui qui utilise les interfaces qui sont utilisées pour la réflexion, et travaille avec le modèle d'objet de données. Ces interfaces sont identifiées par le préfixe de paquet 'SDO_Model_'. Finalement, le troisième bloc est celui qui utilise les interfaces qui sont utilisées par les implémentations de Service d'Accès de Données et sont identifiées par le préfixe de paquet 'SDO_DAS_'. La majorité des utilisateurs SDO n'auront pas besoin d'utiliser ou de comprendre les interfaces 'SDO_Model_' et 'SDO_DAS_'.

Interface Application pour programmer SDO

SDO_DataObject

L'interface principale dans laquelle les objets de données sont manipulés. En plus des méthode ci-dessous, SDO_DataObjet étend les interfaces ArrayAccess, SDO_PropertyAccess (définit les méthodes __get() / __set() pour surcharger l'accès aux propriétés), Iterator et Countable.

Méthodes

  • getSequence : récupère la séquence pour l'objet de données

  • createDataObject : crée un objet de données enfant

  • clear : détruit les propriétés d'un objet de données

  • getContainer : récupère le conteneur (aussi connu en tant que 'parent') de l'objet de données

  • getTypeName : récupère le nom du type de cet objet de données

  • getTypeNamespaceURI : récupère l'URI de l'espace de noms du type de cet objet de données

SDO_Sequence

L'interface avec laquelle on peut accéder aux objets de données en séquence pour préserver l'ordre parmi les propriétés de l'objet de données et pour permettre le texte non structuré. SDO_Sequence préserve les indices contigus et donc l'insertion ou la suppression d'éléments peut entraîner un décalage des autres éléments vers le haut ou vers le bas. En plus des méthodes ci-dessous, SDO_Sequence étend les interfaces ArrayAccess, Interator et Countable.

Méthodes

  • getProperty : récupère la propriété pour un index de séquence donné

  • move : déplace un élément d'un index vers un autre

  • insert : insère une nouvelle valeur dans la séquence

SDO_List

L'interface dans lequel les propriétés de plusieurs valeurs sont manipulées. En plus des méthodes définies ci-dessous, SDO_List étend ArrayAcces, Iterator et Countable. SDO_List préserve les indices contigus et donc l'insertion ou la suppression des éléments peut décaler les autres éléments vers le haut ou vers le bas.

Méthodes

  • insert : insertion d'une nouvelle valeur dans la liste

SDO_DataFactory

L'interface dans lequel les objets de données peuvent être créés. Un Service d'Accès de Données est responsable de remplir le modèle (c'est-à-dire, la configuration des classe de données avec le type et les informations de structure pour les objets de données qu'elle peut créer.) pour les classes et peut alors optionnellement retourner une instance ou une implémentation de l'interface de SDO_DataFactory.

Méthodes

  • create : crée un nouvel objet de données

SDO_Exception

Une exception SDO_Exception est lancée lorsque la demande de l'appelant ne peut être honorée. Les sous classes de SDO_Exception sont :

  • SDO_PropertyNotSetException - la propriété spécifiée existe mais n'a pas été définie ou n'a pas de valeur par défaut

  • SDO_PropertyNotFoundException - la propriété spécifiée ne fait pas partie du type de l'objet de données

  • SDO_TypeNotFoundException - l'URI d'espace de noms spécifiée ou le nom du type est inconnu

  • SDO_InvalidConversionException - la conversion entre les types d'assignation n'est pas possible

  • SDO_IndexOutOfBoundsException - l'index numérique d'un objet de données, d'une séquence ou d'une liste n'est pas dans un intervalle valide

  • SDO_UnsupportedOperationException - la demande n'a pû être honorée car elle n'est pas autorisée, par exemple, une tentative de définition d'une propriété en lecture seule

Méthodes

Une méthode est ajoutée à celles héritées depuis la classe interne Exception :

  • getCause : récupère la cause de cette exception SDO_Exception

Interfaces de réflexion d'application pour programmer SDO

SDO_Model_ReflectionDataObject

L'interface principale est utilisée pour la réflexion d'une instance d'objet de données pour obtenir son type de modèle et les informations de propriété. Elle est désignée pour suivre le motif de réflexion introduit dans PHP 5.

Constructeur

  • __construct : construit un nouvel SDO_Model_ReflectionDataObject.

Méthodes

  • export : récupère une chaîne décrivant l'objet de données.

  • getType : récupère le SDO_Model_Type pour l'objet de données.

  • getInstanceProperties : récupère les propriétés de l'instance de l'objet de données.

  • getContainmentProperty : récupère la propriété qui définit la relation contenue de l'objet de données.

SDO_Model_Type

L'interface dans lequel les informations de type de l'objet de données peuvent être récupérées. Cette interface peut être utilisée pour trouver le nom de type et l'espace de nom URI du type, si le type autorise l'ouverture du contenu, et ainsi de suite.

Méthodes

  • getName : récupère le nom du type.

  • getNamespaceURI : récupère l'espace de nom URI du type.

  • isInstance : vérifie pour un objet de données s'il est une instance du type.

  • getProperties : récupère les propriétés du type.

  • getProperty : récupère une propriété de type.

  • isDataType : vérifie pour voir si le type est une primitive de type scalaire.

  • isSequencedType : vérifie pour voir s'il s'agit d'un type de séquence.

  • isOpenType : vérifie pour voir s'il s'agit d'un type ouvert.

  • isAbstractType : vérifie pour voir s'il s'agit d'un type d'abstraction.

  • getBaseType : récupère le type de base de ce type (si un existe).

SDO_Model_Property

L'interface dans lequel les informations de propriété d'objet peuvent être récupérées. Cette interface peut être utilisée pour trouver le type d'une propriété, si une propriété a une valeur par défaut, si une propriété est contenue ou référencée par son parent, sa cardinalité, et ainsi de suite.

Méthodes

  • getName : récupère le nom de la propriété.

  • getType : récupère le type de la propriété.

  • isMany : vérifie pour voir si la propriété est de valeurs multiples.

  • isContainment : vérifie pour voir si la propriété décrit une relation contenue.

  • getContainingType : récupère le type qui contient cette propriété.

  • getDefault : récupère la valeur par défaut pour une propriété.

Interfaces de développeur Service d'Accès de Données SDO

SDO_DAS_DataObject

L'interface dans lequel un Service d'Accès de Données peut accéder à SDO_DAS_ChangeSummary de l'objet de données. Le résumé de changement est utilisé par le Service d'Accès de Données pour vérifier les conflits lors des applications des changements à une source de données.

Méthodes

  • getChangeSummary : récupère le résumé de changement pour un objet de données

SDO_DAS_ChangeSummary

L'interface dans lequel l'historique de changement d'un objet de données est accédé. Le résumé de changement contient des informations pour n'importe quelles modifications sur un objet de données qui s'est produites lorsque la journalisation a débuté. Dans le cas de suppression ou de modification, les dernières valeurs sont aussi gardées dans le résumé de changement.

Si la journalisation n'est plus active, alors le résumé de changement contient seulement les changements faits jusqu'au point où la journalisation fut désactivée. La réactivation de la journalisation supprime le résumé de changement. Cela peut être utile lorsqu'un certain nombre de changements ont été écris par un DAS et un objet de données qui est réutilisé.

Méthodes

  • beginLogging : démarre la journalisation des changements faits à l'objet de données

  • endLogging : termine la journalisation des changements faits à l'objet de données

  • isLogging : vérifie pour voir si la journalisation des changements est activée

  • getChangedDataObjects : récupère une liste de d'objets de données qui ont été changés

  • getChangeType : récupère le type de changement qui a été fait à l'objet de données

  • getOldValues : récupère une liste des anciennes valeurs pour un objet de données

  • getOldContainer : récupère un ancien conteneur d'objet de données pour un objet de données supprimé

SDO_DAS_Setting

L'interface dans lequel l'ancienne valeur pour une propriété est accédée. Une liste des configurations est retournée par le résumé de changement dont la méthode est getOldValues.

Méthodes

  • getPropertyIndex : récupère l'index pour la propriété changée

  • getPropertyName : récupère le nom pour la propriété changée

  • getValue : récupère l'ancienne valeur pour la propriété changée

  • getListIndex : récupère la liste des index pour l'ancienne valeur si elle faisait partie d'une propriété à valeurs multiples

  • isSet : vérifie si la propriété était fixée avant d'être modifiée

SDO_DAS_DataFactory

L'interface pour construire le modèle pour un SDO_DataObjet. Le SDO_DAS_DataFactory est une classe abstraite fournissant une méthode statique qui retourne une classe d'implémentation de données concrète. L'implémentation est utilisée par les Services d'Accès de Données pour créer un modèle SDO à partir de leur modèle. Par exemple, un Service d'Accès de Données Relationnel peut créer et remplir un modèle SDO_DAS_DataFactory basé sur un schéma pour une base de données relationnelle.

Méthodes

  • getDataFactory : méthodes statiques pour obtenir une instance de classe concrète de données

  • addType : ajoute un nouveau type au modèle SDO

  • addPropertyToType : ajoute une nouvelle propriété à une définition de type dans le modèle SDO

Sommaire

add a note add a note

User Contributed Notes 1 note

up
0
ng4rrjanbiah at rediffmail dot com
8 years ago
Some useful links on SDO:
1. Quick intro ( http://www.obalweb.net/wppro/?p=19 )
2. SDO for Zend Conf 2005 ( http://www.ibm.com/developerworks/forums/weblogs/data/SDOforZendConf2005.pdf ), Presentation, [481 KB], Graham Charters, 2005-10-18
3. Introducing Service Data Objects for PHP ( http://www.zend.com/pecl/tutorials/sdo.php ), 2005-08-05
4. Service Data Objects specification ( http://www.ibm.com/developerworks/library/specification/j-commonj-sdowmt/ ), 2003-2005

HTH,
R. Rajesh Jeba Anbiah
To Top