Filemaker AMF Gateway
@Author Francesc sans [email protected] @version 1.0
Copyright (c) 2012 Network BCN Software
Ce programme est un logiciel gratuit: vous pouvez le redistribuer et / ou le modifier en vertu des termes de la licence publique générale GNU publiée par la Free Software Foundation, soit la version 3 de la licence, ou (à votre option) toute version ultérieure.
Ce programme est distribué dans l'espoir qu'il sera utile, mais sans aucune garantie; Sans même la garantie implicite de qualité marchande ou d'adéquation à un usage particulier. Voir la licence publique générale GNU pour plus de détails.
Vous devriez avoir reçu une copie de la licence publique générale GNU avec ce programme. Sinon, voir http://www.gnu.org/licenses/.
Pour chaque table, vous devez créer le service distant étendant la classe FileMakerdao.php:
<?php
include_once ( DAO_LIB . " filemaker/FilemakerDao.php " );
class FmerrDao extends FilemakerDao {
public $ context = " xml_fmerr " ;
public $ valueObject = " FmerrVO " ;
}
?>Le contexte $ fait référence au nom de mise en page FileMaker où les requêtes seront ciblées. N'oubliez pas que seuls les champs placés dans cette disposition peuvent faire partie de la transaction. Ce sera une bonne idée de préfixer toutes les mises en page spécifiques à l'interface Web (nous utilisons "XML".
Le $ ValueObject est le nom de la classe employée comme DTO pour l'ocurrence du tableau référencé. Placez VOS dans un dossier "VO", la classe FileMakerdao utilise une classe d'objets typés instanciant en usine à l'exécution et recherche les définitions de classe d'objets de valeur dans ce dossier par défaut.
Créez ensuite le dto (objet de valeur):
<?php
class FmerrVO {
public function __construct () { }
public $ recid ;
public $ sku ;
public $ status ;
public $ type ;
public $ errnum ;
public $ description ;
public $ group ;
public $ coment ;
public $ iid ;
public $ _explicitType = " es.ntwk.samples.fmclub.vo.FmerrVO " ;
public function __set_state ( $ assoc ) {
$ this -> recid = ( int ) $ assoc -> recid ;
$ this -> sku = ( string ) $ assoc -> sku ;
$ this -> status = ( string ) $ assoc -> status ;
$ this -> type = ( string ) $ assoc -> type ;
$ this -> errnum = ( string ) $ assoc -> errnum ;
$ this -> description = ( string ) $ assoc -> description ;
$ this -> group = ( string ) $ assoc -> group ;
$ this -> coment = ( string ) $ assoc -> coment ;
$ this -> iid = ( string ) $ assoc -> iid ;
}
}
?>Remarquez la conversion de type qui est effectuée sur $ ValueObject Fill.
Vous pouvez ajuster les types de données entre votre application et FileMaker ici. Par exemple, pour un numéro de numéro de filemaker, utilisez-le pour fixer des séparateurs DOT / COLON éventuels (enoying):
$ this -> ammount = ( float ) str_replace ( " , " , " . " , $ assoc -> ammount );Pour les dates, jouez avec des cordes (je vais parler plus tard)
Créez le package par vous-même, nous vous recommandons d'utiliser des normes (dans cet exemple "es.ntwk.samples.fmclub")
-> FileMakerdao Folder
-> Services
-> lib (la bibliothèque FileMakerdao)
-> es
-> ntwk
-> échantillons
-> fmclub
-> fmerrdao (votre classe)
-> vo
-> Fmerrvo (votre objet de valeur)
(Parcourez le code source pour voir des exemples)
Vous pouvez maintenant passer des appels au service, comme find (), findCompound (), createOne (), updateOne (), DeleteOne () ...
Utilisez les paramètres suivants dans chaque appel:
$ param : Un objet VO rempli de valeurs pertinentes que vous souhaitez définir ou mettre à jour, utilisez un VO NULL pour un "FindAll" ou Specify RecID (enregistred) pour modifier les enregistrements.
$ filtre : tableau avec le nom des champs à utiliser à partir de l'objet de valeur, null pour tous les champs.
$ Skip : Array avec les valeurs Skip & Max, si NULL renvoie tous les enregistrements trouvés.
Les signatures pour chaque fonction sont (comme spécifié dans l'interface ifilemakerdao.php):
public function find ( $ param , $ filter , $ skip );
public function createOne ( $ param , $ filter );
public function updateOne ( $ param , $ filter );
public function deleteOne ( $ param );
public function duplicateOne ( $ param );
public function view ( $ param );
// $param is always a VO or nullNotez que vous pouvez spécifier des champs ignorés globalement dans le fichier config.ini, que vous devez utiliser au cas où vous avez lu les champs uniquement dans la disposition du contexte $ (tels que les calculs ou les valeurs auto-ententes)