FileMaker® PHP API rewritten for PHP 5.5+. It is compatible with PHP 7.0+ and uses PSR-4 autoloading specifications.
This version of the PHP-API add the following feature to the offical API :
- Error handling using Exception (you can restore the original behavior using option 'errorHandling' => 'default')
- PSR-4 autoloading and installation using composer
- PHP 7.0+ compatibility
- 'dateFormat' option to select the input/output date format
- 'emptyAsNull' option to return empty value as null
- Support setRange() method with PerformScript command (as supported by CWP)
- A method to get the url of your last CWP call:
$fm->getLastRequestedUrl()
- A method to check if a findRequest is empty:
$request->isEmpty()
- A method to get the value list associated to a field from a Record:
$record->getValueListTwoField('my_field')
- EXPERIMENTAL 'useDateFormatInRequests' allow you to use defined 'dateFormat' in request (support wildcards and range)
- PHP >= 5.5
- (optional) PHPUnit to run tests.
You can use the composer
package manager to install. Either run:
$ php composer.phar require airmoi/filemaker "*"
or add:
"airmoi/filemaker": "^2.2"
to your composer.json file
You can also manually install the API easily to your project. Just download the source ZIP and extract its content into your project.
STEP 1 : Read the 'Important Notice' below
STEP 2 : include the API autoload
require '/path/to/autoloader.php';
This step is facultative if you are using composer
STEP 3 : Create a FileMaker instance
use airmoi\FileMaker\FileMaker;
$fm = new FileMaker($database, $host, $username, $password, $options);
STEP 4 : use it quite the same way you would use the offical API...
...And enjoy code completion using your favorite IDE and php 7 support without notice/warnings.
You may also find sample usage by reading the sample.php
file located in the "demo" folder
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();
}
The 2.1 release aims to improve compatibility with the original FileMaker PHP-API. However, you will need to changes few things in your code in order to use it
The major changes compared to the official package are :
- Call autoloader.php instead of FileMaker.php to load the API
- API now support Exceptions error handling, you may switch between those behaviors by changing property 'errorHandling' to 'default' or 'exception' (default value is 'exception')
- There is no more 'conf.php' use "setProperty" to define specifics API's settings. You may also use an array of properties on FileMaker instanciation, ie : new FileMaker( $db, $host, $user, $pass, ['property' => 'value'])
- All constants are now part of the FileMaker class, use FileMaker::<CONSTANT_NAME> instead of <CONSTANT_NAME>
- Also notice that FILEMAKER_SORT_ASCEND/DESCEND have been renamed to FileMaker::SORT_ASCEND/FileMaker::SORT_DESCEND
You can use the offical PHP-API guide provided by FileMaker® for everything else.
- Finish PHPunit test
- Add functionnal tests
- Improve parsers
- Add new parsers
- Documentation
FileMaker PHP API is licensed under the BSD License - see the LICENSE file for detail
- Thanks to Matthias Kühne for PSR-4 implementation and code doc fixes.
- Thanks to jeremiahsmall for improving error handling.