FileMaker AMF Gateway
@Author Francesc sans [email protected] @version 1.0
Copyright (C) 2012 Network BCN -Software
Dieses Programm ist kostenlose Software: Sie können es neu verteilt und/oder unter den Bestimmungen der GNU General Public Lizenz wie von der Free Software Foundation, entweder Version 3 der Lizenz veröffentlicht, oder (nach Ihrer Option) jede spätere Version ändern.
Dieses Programm wird in der Hoffnung verteilt, dass es nützlich sein wird, jedoch ohne Garantie; Ohne die implizite Garantie für Handelsfähigkeit oder Eignung für einen bestimmten Zweck. Weitere Informationen finden Sie in der GNU General Public Lizenz.
Sie hätten zusammen mit diesem Programm eine Kopie der GNU General Public Lizenz erhalten haben. Wenn nicht, siehe http://www.gnu.org/licenses/.
Für jede Tabelle sollten Sie den Remote -Dienst erstellen, der die Klasse fileMakerdao.php erweitert:
<?php
include_once ( DAO_LIB . " filemaker/FilemakerDao.php " );
class FmerrDao extends FilemakerDao {
public $ context = " xml_fmerr " ;
public $ valueObject = " FmerrVO " ;
}
?>Der $ -Kontext bezieht sich auf den FileMaker -Layout -Namen, auf dem Abfragen ins Visier genommen werden. Denken Sie daran, dass nur die in diesem Layout platzierten Felder Teil der Transaktion sein können. Es wird eine gute Idee sein, alle Weboberflächen -spezifischen Layouts zu präfixen (wir verwenden "XML". Sie finden dieses sehr nützliche, wenn Sie Code des automatischen Generierens (um auch docummentiert zu werden), sehr nützlich.
Das $ valueObject ist der Name der Klasse, die als DTO für die Referenzentabelle verwendet wird. Platzieren Sie VOS in einem "VO" -Fordner, die FileMakerdao -Klasse verwendet eine Klasse -Factory -Instanziierung typisierter Objekte zur Laufzeit und sucht standardmäßig die Definitionen für Wertobjektklassen in diesem Ordner.
Erstellen Sie dann das DTO (Wertobjekt):
<?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 ;
}
}
?>Beachten Sie die Typ -Konvertierung, die auf $ valueObject Fill durchgeführt wird.
Hier können Sie Datentypen zwischen Ihrer App und dem FileMaker anpassen. Zum Beispiel verwenden Sie für ein Feld der FileMaker -Nummer dies, um eventuelle (Enoying) DOT/Dickdarm -Separatoren zu beheben:
$ this -> ammount = ( float ) str_replace ( " , " , " . " , $ assoc -> ammount );Für Termine spielen Sie mit Saiten (ich werde später darüber sprechen)
Erstellen Sie das Paket auf eigene Faust, wir empfehlen Ihnen, Standards zu verwenden (in diesem Beispiel "Es.ntwk.samproples.fmclub").
-> FileMakerdao -Ordner
-> Dienstleistungen
-> lib (die FileMakerdao -Bibliothek)
-> es
-> ntwk
-> Proben
-> FMCLUB
-> FMERRDAO (Ihre Klasse)
-> vo
-> fMerrvo (Ihr Wertobjekt)
(Durchsuchen Sie den Quellcode, um Beispiele anzuzeigen)
Jetzt können Sie Anrufe zum Dienst tätigen, z.
Verwenden Sie die folgenden Parameter in jedem Aufruf:
$ param : Ein VO -Objekt, das mit relevanten Werten gefüllt ist, die Sie festlegen oder aktualisieren möchten, verwenden Sie ein Null VO für einen "Findall" oder spezifischen Rückgang (Aufzeichnung), um Datensätze zu bearbeiten.
$ filter : Array mit dem Namen der Felder, die aus dem Wertobjekt für alle Felder verwendet werden sollen.
$ slip : Array mit den Werten Skip & Max, wenn NULL alle gefundenen Datensätze zurückgibt.
Die Signaturen für jede Funktion sind (wie in der Schnittstelle ifilemakerdao.php angegeben):
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 nullBeachten Sie, dass Sie weltweit ignorierte Felder in der Datei config.ini angeben können, die Sie verwenden sollten, falls Sie nur Felder im $ context -Layout gelesen haben (z. B. Berechnungen oder Autokonzentrumwerte).