Unlike actions and components, you can only insert and use your own data sources in apps via add-ons. Depending on the context, various base classes are available to you:
-
DataSource for all data sources
-
Database for relational database systems
-
RestAPI for queries from REST API functions
Namespace
edoc\appserver\addons\<addon-name>\datasources;
Base class for data sources
All data sources in edoc automate must be derived from the DataSource class. The name of the data source must start with an upper case letter followed by lower case letters, e.g. Datevconnect.
<?php
namespace edoc\appserver\datasources;
abstract class DataSource
{
/**
* Returns an array with text as readable status for the data source.
*
* @return string[]
*/
abstract public function details();
/**
* This method is executed when an instance of the data source is generated.
* Properties can be defined and the connection status can be validated.
*
*/
abstract protected function init();
/**
* Method to define a property of the data source.
*
* @param $name The property name.
* @param $type The property type: text, password, number, boolean.
* @param $defaultValue Default value for the property.
*/
protected function addProperty($name, $type, $defaultValue = null)
/*
* Method to query all specified properties of the data source.
*
*/
public function properties();
/*
* Methode to set parameters, e.g. for placeholders in the action "database\Query".
*
* @param $params Associative array with name and value.
*/
public function setParams(array $params);
/*
* Method to set the status of the data source.
*
* @param $ready "true", if the data source is ready, otherwise "false".
*
*/
protected function setReady($ready = true);
/*
* Method to set an error message if, for example, there the conntection to the data source cannot be established.
*
* @param $message Error message text.
*/
protected function setErrorMessage($message)
}
Base class for relational database systems
Data sources that are used with rational database systems should inherit from the Database class. Only through inheritance can you then use this data source directly with the actions of the database group.
You may need to load the appropriate driver for PHP for the database connection.
<?php
namespace edoc\appserver\datasources;
abstract class Database extends DataSource
{
abstract public function querySingle($SQL);
abstract public function query($SQL);
abstract public function lastInsertId();
abstract public function escape($string, bool &$addedQuotes);
protected function parseQuery($Sql);
}
Base class for querying REST API functions
The RestAPI class is a special class for querying REST APIs.
<?php
namespace edoc\appserver\datasources;
abstract class RestAPI extends DataSource
{
protected function initAPI($host);
public function addRequesOption($name, $value);
protected function requestGet($url, $headerFields = [], &$responseHeader = null);
protected function requestPost($url, $postData, $headerFields = [], &$responseHeader = null);
protected function requestPatch($url, $postData, $headerFields = [], &$responseHeader = null);
protected function requestDelete($url, $postData, $headerFields = [], &$responseHeader = null);
protected function requestPut($url, $postData, $headerFields = [], &$responseHeader = null);
protected function processResponse($url, $status, $body, $header);
}