rjakes/fmpdo
SQL 转换时的 FileMaker.php 替代品
dev-develop
2016-01-28 21:02 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: 4.*
- squizlabs/php_codesniffer: 2.*
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
- PHP 5.3 和 5.4 的支持已弃用
- 推荐 PHP 5.5+
- 计划使用 (类名标量)[https://wiki.php.net/rfc/class_name_scalars],这将最小版本提升到 5.5
- 所需数据库的 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 发布中使用了重复字段)。
问题
- 这是一个不完全的 alpha 版本,存在已知的安全问题。请参阅 [https://github.com/rjakes/FmPdo/issues]。自行承担生产环境使用风险。