rjakes/fmpdo

SQL 转换时的 FileMaker.php 替代品

dev-develop 2016-01-28 21:02 UTC

This package is not auto-updated.

Last update: 2024-09-24 07:08:02 UTC


README

FmPdo 是一个用于重构遗留 FileMaker.php 网络应用的 PHP 模块,以便使用 SQL 数据库。

FmPdo 提供了 FileMaker.php 函数的替代实现,以将现有应用程序逻辑的更改减少到最低。在许多情况下,只需要重构适配器配置。

遗留解决方案可以一次性重构为 SQL 后端,也可以按需逐步重构。

特性

对遗留应用程序的最小更改

  • FmPdo 方法调用和响应格式与 FileMaker.php 相同

易于集成

  • 重构您的所有或部分持久化到 SQL 表

灵活

  • 选择任何 PDO 支持的主要 SQL 数据库;稍后轻松更改数据库(归功于 PDO)。

系统要求

  • PHP 5.3 到 7.0
  • 所需数据库的 PDO 驱动程序
    • MySQL 和 SQLite 在大多数 PHP 栈中默认包含

许可证

FmPdo 可免费用于商业和非商业用途,许可协议为 MIT 许可协议,对商业友好。

转换快速入门

  • 创建与现有 FMP 表相对应的 SQL 表
  • 如果您打算使用 FileMaker 外部 SQL 源,请确保 SQL 列与 FileMaker 字段的位置相同
  • 添加或更改数据库适配器
// this is a typical FileMaker.php instantiation
$databaseName = 'myDB';
$server = '127.0.0.1';
$userName = 'uname';
$passWord = 'pword';

$fm = new FileMaker($databaseName,$server,$userName,$passWord);
// this is a typical FmPdo instantiation
$dbConfig = array(
    'driver' => 'mysql',
    'host' => '127.0.0.1',
    'port' => '3306',
    'database' => 'fmpdo',
    'user' => 'root',
    'password' => 'root'
);

$fmPdo = new FmPdo($dbConfig);

// if you are changing all table to SQL at once, you can do this:
$fm = new FmPdo($db_config);

定位要转换为 SQL 的命令

$find = $fm->newFindCommand($fmpLayout); // new find command for FileMaker
$find = $fmPdo->newFindCommand($sqlTable) // a new FmpdoCommandFind object

// subsequent method calls to $find, such as $find->setField() and execute() do not require modification

棘手的事情

  • 不支持服务器端脚本
  • 带有门户的网页布局中的相关集需要拆分为多个调用(但结果对象的行为与 FileMaker 的 "相关集" 相同)。
  • 不支持重复字段(是的,弗吉尼亚,人们已经在 FileMaker Web 发布中使用了重复字段)。

问题