Filemaker AMF Gateway
@author francesc sans [email protected] @version 1.0
版权(C)2012 Network BCN软件
该程序是免费的软件:您可以根据自由软件基金会发布的GNU通用公共许可证的条款对其进行重新分配和/或修改它,该版本是该许可证的版本3,或(按您的选项)任何以后的版本。
该程序的分布是希望它将有用的,但没有任何保修;即使没有对特定目的的适销性或适合性的隐含保证。有关更多详细信息,请参见GNU通用公共许可证。
您应该已经收到了GNU通用公共许可证的副本以及此计划。如果没有,请参见http://www.gnu.org/licenses/。
对于每个表,您应该创建远程服务扩展Filemakerdao.php类:
<?php
include_once ( DAO_LIB . " filemaker/FilemakerDao.php " );
class FmerrDao extends FilemakerDao {
public $ context = " xml_fmerr " ;
public $ valueObject = " FmerrVO " ;
}
?>$上下文是指将查询目标的Filemaker布局名称。请记住,只有在此布局中放置的字段才能是交易的一部分。前缀所有Web接口特定的布局将是一个好主意(我们使用“ XML”。当自动生成代码时,您会发现此非常有用(也可以进行文档)
$ valueObject是用于参考表术的DTO的类的名称。将VOS放置在“ VO”文件夹中,FileMakerDao类在运行时使用类工厂实例化键入对象,并默认情况下在此文件夹中搜索值对象类定义。
然后创建DTO(值对象):
<?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 ;
}
}
?>注意在$ valueObject填充上完成的类型转换。
您可以在此处调整应用程序和Filemaker之间的数据类型。例如,对于filemaker编号字段,使用此操作来修复最终(enoying)点/结肠分离器:
$ this -> ammount = ( float ) str_replace ( " , " , " . " , $ assoc -> ammount );对于日期播放串(我稍后再说)
自己创建软件包,建议您使用标准(在此示例“ es.ntwk.samples.fmclub”中)
- > filemakerdao文件夹
- >服务
- > lib(filemakerdao库)
- > es
- > ntwk
- >样品
- > fmclub
- > fmerrdao(您的班级)
- > vo
- > fmerrvo(您的价值对象)
(浏览源代码以查看示例)
现在,您可以拨打服务,例如find(),findcompound(),createOne(),updateOne(),deleteone()...
在每个呼叫中使用以下参数:
$ param :一个填充了要设置或更新相关的值的VO对象,将null VO用于“ Findall”或Especify recid (RecordID)进行编辑记录。
$ filter :带有从值对象使用的字段名称的数组,所有字段的null。
$ skip :带有跳过和最大值的数组,如果null返回所有发现的记录。
每个功能的签名是(如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 null请注意,您可以在config.ini文件中指定全球忽略的字段,以防万一您仅在$上下文布局中读取字段(例如计算或自动输入值)