airmoi/filemaker

重写的FileMaker PHP-API

3.0.0-beta2 2022-10-04 13:33 UTC

README

FileMaker® PHP API为PHP 5.5+重写。它与PHP 7.0+兼容,并使用PSR-4自动加载规范。

特性

此版本的PHP-API为官方API增加了以下功能

  • 使用异常处理错误(您可以使用选项'errorHandling' => 'default'来恢复原始行为)
  • PSR-4自动加载和通过composer安装
  • PHP 7.0+兼容性
  • 使用'dateFormat'选项选择输入/输出日期格式
  • 使用'emptyAsNull'选项将空值返回为null
  • 支持使用PerformScript命令的setRange()方法(如CWP支持)
  • 一个获取您最后CWP调用URL的方法:$fm->getLastRequestedUrl()
  • 一个检查findRequest是否为空的方法:$request->isEmpty()
  • 一个获取记录中字段的值列表的方法:$record->getValueListTwoField('my_field')
  • 实验性的'useDateFormatInRequests'允许您在请求中使用定义的'dateFormat'(支持通配符和范围)

要求

  • PHP >= 5.5
  • (可选)PHPUnit以运行测试。

安装

使用Composer

您可以使用composer包管理器来安装。运行以下命令之一:

$ php composer.phar require airmoi/filemaker "*"

或添加以下内容到您的composer.json文件中

"airmoi/filemaker": "^2.2"

手动安装

您还可以轻松地将API手动安装到项目中。只需下载源ZIP并将其内容提取到项目中。

用法

步骤1:阅读下面的'重要通知'。

步骤2:包含API自动加载

如果您正在使用composer,此步骤是可选的。

require '/path/to/autoloader.php';

步骤3:创建一个FileMaker实例

步骤4:使用它的方式与官方API大致相同...

use airmoi\FileMaker\FileMaker;

$fm = new FileMaker($database, $host, $username, $password, $options);

...并且享受您的首选IDE的代码完成功能和PHP 7支持,无需注意/警告。

您还可以通过阅读位于“demo”文件夹中的sample.php文件来查找示例用法。

示例演示代码

重要通知

use airmoi\FileMaker\FileMaker;
use airmoi\FileMaker\FileMakerException;

require('/path/to/autoloader.php');

$fm = new FileMaker('database', 'localhost', 'filemaker', 'filemaker', ['prevalidate' => true]);

try {
    $command = $fm->newFindCommand('layout_name');
    $records = $command->execute()->getRecords(); 
    
    foreach($records as $record) {
        echo $record->getField('fieldname');
        ...
    }
} 
catch (FileMakerException $e) {
    echo 'An error occured ' . $e->getMessage() . ' - Code : ' . $e->getCode();
}

2.1版本的发布旨在提高与原始FileMaker PHP-API的兼容性。但是,您需要更改代码中的一些内容才能使用它

与官方包相比的主要变化包括

调用autoloader.php而不是FileMaker.php来加载API

  • API现在支持异常错误处理,您可以通过更改属性'errorHandling'到'default'或'exception'(默认值为'exception')在行为之间切换
  • 不再有'conf.php',使用"setProperty"来定义特定API的设置。您还可以在FileMaker实例化时使用属性数组,例如:new FileMaker($db, $host, $user, $pass, ['property' => 'value'])
  • 所有常量现在都是FileMaker类的一部分,使用FileMaker::而不是
  • 请注意,FILEMAKER_SORT_ASCEND/DESCEND已被重命名为FileMaker::SORT_ASCEND/FileMaker::SORT_DESCEND
  • 您可以使用FileMaker®提供的官方PHP-API指南来了解其他所有内容。

待办事项

完成PHPunit测试

  • 添加功能测试
  • 改进解析器
  • 添加新的解析器
  • 文档
  • 许可证

FileMaker PHP API在BSD许可证下授权 - 请参阅LICENSE文件以获取详细信息

致谢

贡献者

贡献者