$identityHandler = null; /** * Configure an optional Psr\Log\LoggerInterface implementation to assist with debugging. In this case, we'll write a * connection.log to the same directory as this simplefm_example.php file using Monolog\Logger. */ $logger = new Logger('connection'); $connectionLogPath = dirname(__FILE__) . '/connection.log'; $logger->pushHandler(new StreamHandler($connectionLogPath)); /** * Create a Soliant\SimpleFM\Connection\Connection with all the required dependencies injected. */ $connection = new Connection($httpClient, $uri, $database, $identityHandler, $logger); /** * Create a Soliant\SimpleFM\Client\ResultSet\ResultSetClient with the new Connection and a DateTimeZone; */ $resultSetClient = new ResultSetClient($connection, new DateTimeZone('UTC')); /** * Now that you have configured a ResultSetClient, you can execute it with a Soliant\SimpleFM\Connection\Command. The * Command expects a layout name and a command array. The command array accepts the name/values defined by the XML API * syntax for FileMaker Server. Some of the FileMaker XML API commands are a key only (with no value). For example * `-find`. For a command with no explicit value, use a null value in the command array. * See doc/filemaker/fms15_cwp_guide.pdf, Chapter 5 on page 40 for XML API command documentation. */ $command = new Command('Task Details', ['-max' => 2, '-skip' => 1, '-findall' => null]); /** * When the Command is ready, execute it on the Client */ $records = $resultSetClient->execute($command); /** * Handle the result: *
/** * @dataProvider specialCharacterProvider */ public function testQuoteString(string $testString, string $expectedResult) { $client = new ResultSetClient($this->prophesize(ConnectionInterface::class)->reveal(), new DateTimeZone('UTC')); $this->assertSame($expectedResult, $client->quoteString($testString)); }