Example #1
0
 public function parse($xml)
 {
     if (empty($xml)) {
         throw new FileMakerException($this->_fm, 'Did not receive an XML document from the server.');
     }
     $this->_xmlParser = xml_parser_create('UTF-8');
     xml_set_object($this->_xmlParser, $this);
     xml_parser_set_option($this->_xmlParser, XML_OPTION_CASE_FOLDING, false);
     xml_parser_set_option($this->_xmlParser, XML_OPTION_TARGET_ENCODING, 'UTF-8');
     xml_set_element_handler($this->_xmlParser, '_start', '_end');
     xml_set_character_data_handler($this->_xmlParser, '_cdata');
     if (!@xml_parse($this->_xmlParser, $xml)) {
         throw new FileMakerException($this->_fm, sprintf('XML error: %s at line %d', xml_error_string(xml_get_error_code($this->_xmlParser)), xml_get_current_line_number($this->_xmlParser)));
     }
     xml_parser_free($this->_xmlParser);
     if (!empty($this->_errorCode)) {
         throw new FileMakerException($this->_fm, null, $this->_errorCode);
     }
     if (version_compare($this->_serverVersion['version'], FileMaker::getMinServerVersion(), '<')) {
         throw new FileMakerException($this->_fm, 'This API requires at least version ' . FileMaker::getMinServerVersion() . ' of FileMaker Server to run (detected ' . $this->_serverVersion['version'] . ').');
     }
     $this->_isParsed = true;
     return true;
 }
Example #2
0
use tranduchieu\FileMaker\FileMaker;
use tranduchieu\FileMaker\FileMakerException;
use tranduchieu\FileMaker\FileMakerValidationException;
require '../autoloader.php';
require '../FileMaker.php';
echo "==========================================" . PHP_EOL;
echo " FILEMAKER API UNIT TEST" . PHP_EOL;
echo "==========================================" . PHP_EOL . PHP_EOL;
try {
    echo "------------------------------------------" . PHP_EOL;
    echo " Test FileMaker object's main methods" . PHP_EOL;
    echo "------------------------------------------" . PHP_EOL;
    $fm = new FileMaker('filemaker-test', '192.168.1.22', 'filemaker', 'filemaker');
    /* API infos */
    echo "API version : " . $fm->getAPIVersion() . PHP_EOL;
    echo "Min server version : " . $fm->getMinServerVersion() . PHP_EOL . PHP_EOL;
    /* get databases list */
    echo "Get databases list...";
    $databases = $fm->listDatabases();
    echo implode(', ', $databases) . '...<span style="color:green">SUCCESS</span>' . PHP_EOL . PHP_EOL;
    /* get layouts list */
    echo "Get layouts list...";
    $layouts = $fm->listLayouts();
    if (sizeof($layouts) != 2) {
        echo '<span style="color:red">FAIL</span> !' . PHP_EOL;
        exit;
    }
    echo implode(', ', $layouts) . '...<span style="color:green">SUCCESS</span>' . PHP_EOL . PHP_EOL;
    /* get layouts list */
    echo "Get scripts list...";
    $scripts = $fm->listScripts();