PHPackages                             rjakes/fmpdo - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. rjakes/fmpdo

ActiveLibrary[Database &amp; ORM](/categories/database)

rjakes/fmpdo
============

Replacement for FileMaker.php when converting to SQL

262[2 issues](https://github.com/rjakes/FMPDO/issues)PHP

Since Jan 28Pushed 10y ago1 watchersCompare

[ Source](https://github.com/rjakes/FMPDO)[ Packagist](https://packagist.org/packages/rjakes/fmpdo)[ RSS](/packages/rjakes-fmpdo/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

FmPdo
=====

[](#fmpdo)

FmPdo is a drop-in php module for refactoring legacy FileMaker.php web applications to use a SQL database.

FmPdo provides alternative implementation of FileMaker.php functions so that changes to existing application logic are reduced to the absolute minimum. In many cases, all that is required is refactoring the adapter configs.

The legacy solution can be refactored to a SQL backend all at once, or incrementally, as required.

Features
--------

[](#features)

### Minimal changes to legacy apps

[](#minimal-changes-to-legacy-apps)

- FmPdo methods calls and responses are the same format as FileMaker.php

### Easy to Integrate

[](#easy-to-integrate)

- Refactor all or some of your persistence to SQL tables

### Flexible

[](#flexible)

- Choose any major SQL database supported by PDO; easily change databases at a later date (thanks to PDO).

System Requirements
-------------------

[](#system-requirements)

- PHP 5.3 to 7.0
    - PHP 5.3 and 5.4 support is deprecated
    - PHP 5.5+ is recommended
    - Use of (class name scalars)\[[https://wiki.php.net/rfc/class\_name\_scalars](https://wiki.php.net/rfc/class_name_scalars)\] is planned, and this will move minimum version up to 5.5
- PDO Driver for desired database
    - MySQL and SQLite are included by default in most PHP stacks

License
-------

[](#license)

FmPdo is free for commercial and non-commercial use, licensed under the business-friendly standard MIT license.

Conversion Quickstart
---------------------

[](#conversion-quickstart)

- Create SQL tables that mirror existing FMP tables
- If you intend to use FileMaker External SQL Sources, ensure that the SQL columns are in the same position as the FileMaker fields
- Add or change the database adapter

```
// 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);

```

Locate commands that you wish to convert to 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

```

Tricky Stuff
------------

[](#tricky-stuff)

- Server side scripts not supported
- Related sets from web layouts with portals need to be broken out into multiple calls (but the resulting Result object behaves the same as the FileMaker "relatedSet".
- Repeating fields not supported (yes Virginia, people have used repeating fields in FileMaker Web Publishing)

Issues
======

[](#issues)

- This is alphaware that is incomplete and has known security issues. See \[\]. Use in production at your own risk.

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 79.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/42cacc673607bc4555a9f128ea7c4cbd5b2533d4d1fac8b519cb2421d87bc458?d=identicon)[rjakes](/maintainers/rjakes)

---

Top Contributors

[![rjakes](https://avatars.githubusercontent.com/u/2447356?v=4)](https://github.com/rjakes "rjakes (50 commits)")[![jeremiahsmall](https://avatars.githubusercontent.com/u/814871?v=4)](https://github.com/jeremiahsmall "jeremiahsmall (7 commits)")[![baptistemanson](https://avatars.githubusercontent.com/u/5444992?v=4)](https://github.com/baptistemanson "baptistemanson (6 commits)")

### Embed Badge

![Health badge](/badges/rjakes-fmpdo/health.svg)

```
[![Health](https://phpackages.com/badges/rjakes-fmpdo/health.svg)](https://phpackages.com/packages/rjakes-fmpdo)
```

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k115.1M102](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k52.4M9.3k](/packages/illuminate-database)[mongodb/mongodb

MongoDB driver library

1.6k64.0M542](/packages/mongodb-mongodb)[ramsey/uuid-doctrine

Use ramsey/uuid as a Doctrine field type.

90340.3M209](/packages/ramsey-uuid-doctrine)[reliese/laravel

Reliese Components for Laravel Framework code generation.

1.7k3.4M16](/packages/reliese-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
