inter-mediator / fmdataapi
FMDataAPI 是一个 PHP 类库,用于通过 FileMaker Data API 访问 FileMaker 数据库。
Requires
- php: >=7.1
- ext-curl: *
- ext-json: *
Requires (Dev)
- phpdocumentor/phpdocumentor: >=3
- phpstan/phpstan: ^1.10
- phpunit/phpunit: *
This package is auto-updated.
Last update: 2024-09-16 02:53:54 UTC
README
由 Masayuki Nii (nii@msyk.net) 编写
FMDataAPI 是用 PHP 开发的类,用于通过 Claris FileMaker Data API 访问 FileMaker 数据库。
贡献者
他们创建了拉取请求。感谢合作。
- Atsushi Matsuo
- darnel
- Craig Smith
- Bernhard Schulz
- montaniasystemab
- Rickard Andersson
- Julien @AnnoyingTechnology
- Tom Kuijer
- Thijs Meijer
- Patrick Janser
- Roger Engström
概览
名为 "TestDB.fmp12" 的 FileMaker 数据库托管在 localhost 上,并设置了 "fmrest" 为访问权限。与 REST API 连接的帐户为 "web" 和 "password"。此数据库具有名为 "person_layout" 的布局,您可以将布局名称用作 FMDataAPI 实例的属性。"query" 方法的返回值是 Iterator,可以在 foreach 语句中重复使用,每次使用查询结果的每条记录。此布局具有名为 "FamilyName" 和 "GivenName" 的字段,并可以使用字段名称作为属性。
$fmdb = new FMDataAPI("TestDB", "web", "password");
$result = $fmdb->person_layout->query();
foreach ($result as $record) {
echo "name: {$record->FamilyName}, {$record->GivenName}";
}
有关更多详细信息,请参阅 samples/FMDataAPI_Sample.php 中的代码和注释。
API 文档在此: https://inter-mediator.info/FMDataAPI/packages/INTER-Mediator-FileMakerServer-RESTAPI.html
这是什么?
FileMaker Data API 是 FileMaker Server 16 的新功能,它是基于 REST 的数据库操作 API。尽管自定义网络发布是长期以来访问数据库的方式,但 FileMaker Inc. 已引入了现代功能来操作数据库。当前版本的 FMDataAPI 只适用于 FileMaker 18 和 19 平台。
目前,我专注于开发网络应用程序框架 "INTER-Mediator" (https://inter-mediator.com/ 或 https://github.com/INTER-Mediator/INTER-Mediator.git),该框架可以使用声明性描述开发数据库驱动网络应用程序的核心功能。INTER-Mediator 已经支持了 FX.php 的自定义网络发布,我在这里开发代码以支持 REST API。
欢迎报告错误和贡献。
将 FMDataAPI 安装到您的项目中
FMDataAPI 有 "composer.json",因此您可以将您的 composer.json 文件添加到您的项目中,如下所示。
...
"require": {
...
"inter-mediator/fmdataapi":"31"
} ...
关于文件和目录
- src/FMDataAPI.php
- 核心类,您只需为您的应用程序使用此类。此类和辅助类是面向对象的 REST API 包装器。
- src/Supporting/**.php
- FMDataAPI 类的辅助类。您可能不需要创建这些类,但您必须处理它们上的方法。
- composer.json, composer.lock
- Composer 信息文件。
- Sample_results.ipynb
- 带有 Jupyter Notebook 风格的示例程序和结果。对于稍微旧版本的输出表示歉意。
- samples/FMDataAPI_Sample.php 和 cat.jpg
- 这是 FMDataAPI 类的示例程序,显示了如何使用 FMDataAPI 类。它包含丰富的注释,但 Sample_results.ipynb 更具信息量。
- README.md, .gitignore
- 这些都是为 GitHub 而设的。
- test
- 一些单元测试文件。
- .github, docker-compose.yml
- 为 GitHub Actions 运行 CI 作业的文件。
许可证
MIT 许可证
致谢
- 感谢Atsushi Matsuo。您的脚本对实现“本地服务器”功能非常有帮助。(https://gist.github.com/matsuo/ef5cb7c98bb494d507731886883bcbc1)另外,感谢您更新和修复错误。
- 感谢Frank Gonzalez。您的错误报告非常出色,我能够快速修复它。
- 感谢base64bits关于容器字段的编码。
- 感谢phpsa进行错误修复。
- 感谢Flexboom进行错误修复。
- 感谢schube进行错误修复。
- 感谢frankeg进行错误修复。
历史
(之前的版本历史 在此)
- 2021-02-10: [版本22] 设置cURL的超时值。感谢@montaniasystemab。也感谢@AnnoyingTechnology进行纠正。
- 2021-11-11: [版本23] 更新文件结构以支持PSR-4。感谢tkuijer。
- 2021-12-23: [版本24] 修复了门户限制参数的错误。感谢tkuijer。
- 2022-03-24: [版本25] 向FileMakerRelation类添加了方法(getFirstRecord, getLastRecord, getRecords)。
- 2022-03-26: [版本26] 向FMDataAPI类添加了方法(setFieldHTMLEncoding, getFieldHTMLEncoding)。这些方法将用于FileMaker API for PHP的兼容模式。
- 2022-06-06: [版本27] 停止支持PHP5,最低版本为PHP 7.1,但建议使用7.2或更高版本。
- 2022-08-04: [版本28] 向FMDataAPI类添加了getContainerData(URL)方法,用于从包含/Streaming/MainDB的URL中访问容器数据。[错误修复] FileMakerRelation类的toArray方法未返回数组(感谢Talwinder Singh)。
- 2022-12-28: [版本29] 修复了与FileMaker的新版本相关的“HTTP/2流0未干净关闭”问题(感谢@thijsmeijer)。还修复了单记录关系中的getPortalNames问题(感谢@PGMMattias)。
- 2023-06-20: [版本30] 修复了toArray()方法的错误。在某些情况下,它返回[]。(感谢@PGMMattias)
- 2023-11-24: [版本31] curlErrorMessage()方法返回curl的错误信息(感谢@P1-Roger)。纠正了phpdoc问题(感谢@patacra)。
- 2024-XX-XX: [版本32](即将发布)从本版本开始,最低PHP版本为8.1。通过使用系统的证书颁发机构修复SSL证书检查错误(感谢@patacra)。FileMakerLayout::getMetadataOld和getMetadata方法在登录错误的情况下不会返回false值。它只返回null。