use Org\Mxchange\CoreFramework\Criteria\Storing\StoreableCriteria;
use Org\Mxchange\CoreFramework\Database\FrameworkDatabase;
+// Import SPL stuff
+use \SplFileInfo;
+
/**
* An interface for front-end database classes. The classes should prepare the
* objects for saving in the database. So for server-bases database classes SQL
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
interface DatabaseBackend extends FrameworkDatabase {
+
/**
* Getter for last read file
*
- * @return $lastFile The last read file's name with full path
+ * @return $lastFile An instance of a SplFileInfo class
*/
- function getLastFile ();
+ function getLastFile (): SplFileInfo;
/**
* Getter for last read file's content as an array
*
* @return $lastContent The array with elements 'header' and 'data'.
*/
- function getLastContents ();
+ function getLastContents (): array;
/**
* Getter for file extension
*
* @return $fileExtension The array with elements 'header' and 'data'.
*/
- function getFileExtension ();
+ function getFileExtension (): string;
/**
* Getter for index key
*
* @return $indexKey Index key
*/
- function getIndexKey ();
+ function getIndexKey (): string;
/**
* Makes sure that the database connection is alive
* @return void
* @todo Do some checks on the database directory and files here
*/
- function connectToDatabase ();
+ function connectToDatabase (): void;
/**
* Starts a SELECT query on the database by given return type, table name
* @throws UnsupportedCriteriaException If the criteria is unsupported
* @throws SqlException If an 'SQL error' occurs
*/
- function querySelect (string $tableName, LocalSearchCriteria $searchInstance);
+ function querySelect (string $tableName, LocalSearchCriteria $searchInstance): array;
/**
* "Inserts" a data set instance into a local file database folder
* @return void
* @throws SqlException If an SQL error occurs
*/
- function queryInsertDataSet (StoreableCriteria $dataSetInstance);
+ function queryInsertDataSet (StoreableCriteria $dataSetInstance): void;
/**
* "Updates" a data set instance with a database layer
* @return void
* @throws SqlException If an SQL error occurs
*/
- function queryUpdateDataSet (StoreableCriteria $dataSetInstance);
+ function queryUpdateDataSet (StoreableCriteria $dataSetInstance): void;
/**
* Getter for primary key of specified table or if not found null will be
* @return $data A cleaned up array with only data.
* @todo Add more generic non-data for removal
*/
- function removeNonPublicDataFromArray (array $data);
+ function removeNonPublicDataFromArray (array $data): array;
/**
* Counts total rows of given table
* @param $tableName Table name
* @return $count Total rows of given table
*/
- function countTotalRows(string $tableName);
+ function countTotalRows(string $tableName): int;
}
use Org\Mxchange\CoreFramework\Criteria\Criteria;
use Org\Mxchange\CoreFramework\Criteria\Storing\StoreableCriteria;
use Org\Mxchange\CoreFramework\Database\FrameworkDatabase;
+use Org\Mxchange\CoreFramework\Generic\FrameworkException;
/**
* An interface for middleware database classes
*
* @return $selfInstance An instance of this class
*/
- static function getSelfInstance ();
+ static function getSelfInstance (): DatabaseConnector;
/**
* Setter for database connection
* @param $host Hostname to use
* @return void
*/
- function setConnectionData (string $login, string $pass, string $dbase, string $host = 'localhost');
+ function setConnectionData (string $login, string $pass, string $dbase, string $host = 'localhost'): void;
/**
* Getter for connection data
*
- * @return $connectData Connection data stored with this clas
+ * @return $connectData Connection data stored with this class
*/
- function getConnectionData ();
+ function getConnectionData (): array;
/**
* Getter for index key
*
* @return $indexKey Index key
*/
- function getIndexKey ();
+ function getIndexKey (): string;
/**
* Runs a 'select' statement on the database layer with given table name
* @param $criteriaInstance An instance of a Criteria class
* @return $result The result as an array
*/
- function doSelectByTableCriteria (string $tableName, Criteria $criteriaInstance);
+ function doSelectByTableCriteria (string $tableName, Criteria $criteriaInstance): array;
/**
* Getter for last exception
*
* @return $exceptionInstance Last thrown exception
*/
- function getLastException ();
+ function getLastException (): FrameworkException;
/**
* 'Inserts' a data set instance into a local file database folder
* @param $dataSetInstance A storeable data set
* @return void
*/
- function queryInsertDataSet (StoreableCriteria $dataSetInstance);
+ function queryInsertDataSet (StoreableCriteria $dataSetInstance): void;
/**
* 'Updates' a data set instance with a database layer
* @param $dataSetInstance A storeable data set
* @return void
*/
- function queryUpdateDataSet (StoreableCriteria $dataSetInstance);
+ function queryUpdateDataSet (StoreableCriteria $dataSetInstance): void;
/**
* Getter for primary key column of specified table name
* @param $tableName Name of table we need the primary key column from
* @return $primaryKey Primary key column of requested table
*/
- function getPrimaryKeyOfTable (string $tableName);
+ function getPrimaryKeyOfTable (string $tableName): string;
/**
* Removes non-public data from given array.
* @param $data An array with possible non-public data that needs to be removed.
* @return $data A cleaned up array with only public data.
*/
- function removeNonPublicDataFromArray (array $data);
+ function removeNonPublicDataFromArray (array $data): array;
/**
* Counts total rows of given table
* @param $tableName Table name
* @return $count Total rows of given table
*/
- function countTotalRows (string $tableName);
+ function countTotalRows (string $tableName): int;
}
use Org\Mxchange\CoreFramework\Criteria\Storing\StoreableCriteria;
use Org\Mxchange\CoreFramework\Database\Backend\DatabaseBackend;
use Org\Mxchange\CoreFramework\Generic\FrameworkInterface;
+use Org\Mxchange\CoreFramework\Generic\FrameworkException;
use Org\Mxchange\CoreFramework\Middleware\BaseMiddleware;
use Org\Mxchange\CoreFramework\Registry\Registerable;
use Org\Mxchange\CoreFramework\Result\Search\SearchableResult;
* @param $backendInstance An instance of a DatabaseBackend class
* @todo $debugInstance is currently not used
*/
- public static final function createDatabaseConnection (DatabaseBackend $backendInstance) {
+ public static final function createDatabaseConnection (DatabaseBackend $backendInstance): DatabaseConnector {
// Get instance
//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('DATABASE-CONNECTION: backendInstance=%s - CALLED!', $backendInstance->__toString()));
$databaseInstance = new DatabaseConnection();
*
* @return $selfInstance An instance of this class
*/
- public static final function getSelfInstance () {
+ public static final function getSelfInstance (): DatabaseConnector {
return self::$selfInstance;
}
* @param $backendInstance An instance of a DatabaseBackend class
* @return void
*/
- private function setBackendInstance (DatabaseBackend $backendInstance) {
+ private function setBackendInstance (DatabaseBackend $backendInstance): void {
$this->backendInstance = $backendInstance;
}
* @return void
* @throws InvalidArgumentException If a parameter is empty
*/
- public final function setConnectionData (string $login, string $pass, string $dbase, string $host = 'localhost') {
+ public final function setConnectionData (string $login, string $pass, string $dbase, string $host = 'localhost'): void {
// Check parameter
//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('DATABASE-CONNECTION: login=%s,pass=%s,dbase=%s,host=%s CALLED!', $login, $pass, $dbase, $host));
if (empty($login)) {
*
* @return $connectData Connection data stored with this clas
*/
- public final function getConnectionData () {
+ public final function getConnectionData (): array {
return $this->connectData;
}
*
* @return $indexKey Index key
*/
- public final function getIndexKey () {
+ public final function getIndexKey (): string {
return $this->backendInstance->getIndexKey();
}
* @throws OutOfBoundsException If important array elements are not present
* @throws UnexpectedValueException If $result['status'] is not 'ok'
*/
- public function doSelectByTableCriteria (string $tableName, Criteria $criteriaInstance) {
+ public function doSelectByTableCriteria (string $tableName, Criteria $criteriaInstance): array {
// Validate parameter
//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('DATABASE-CONNECTION: tableName=%s,criteriaInstance=%s - CALLED!', $tableName, $criteriaInstance->__toString()));
if (empty($tableName)) {
*
* @return $exceptionInstance Last thrown exception
*/
- public final function getLastException () {
+ public final function getLastException (): FrameworkException {
// Get instance
//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('DATABASE-CONNECTION: CALLED!');
$exceptionInstance = $this->backendInstance->getLastException();
* @param $dataSetInstance A storeable data set
* @return void
*/
- public function queryInsertDataSet (StoreableCriteria $dataSetInstance) {
+ public function queryInsertDataSet (StoreableCriteria $dataSetInstance): void {
// Connect to the database
//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('DATABASE-CONNECTION: dataSetInstance=%s - CALLED!', $dataSetInstance->__toString()));
$this->backendInstance->connectToDatabase();
* @param $dataSetInstance A storeable data set
* @return void
*/
- public function queryUpdateDataSet (StoreableCriteria $dataSetInstance) {
+ public function queryUpdateDataSet (StoreableCriteria $dataSetInstance): void {
// Connect to the database
//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('DATABASE-CONNECTION: dataSetInstance=%s - CALLED!', $dataSetInstance->__toString()));
$this->backendInstance->connectToDatabase();
* @return $primaryKey Primary key column of requested table
* @throws InvalidArgumentException If a parameter is empty
*/
- public function getPrimaryKeyOfTable (string $tableName) {
+ public function getPrimaryKeyOfTable (string $tableName): string {
// Validate parameter
//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('DATABASE-CONNECTION: tableName=%s - CALLED!', $tableName));
if (empty($tableName)) {
* @return $data A cleaned up array with only public data.
* @throws InvalidArgumentException If a parameter has an invalid value
*/
- public function removeNonPublicDataFromArray (array $data) {
+ public function removeNonPublicDataFromArray (array $data): array {
// Check parameter
//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('DATABASE-CONNECTION: data()=%d - CALLED!', count($data)));
if (count($data) == 0) {
* @return $count Total row count
* @throws InvalidArgumentException If a parameter is empty
*/
- public function countTotalRows (string $tableName) {
+ public function countTotalRows (string $tableName): int {
// Validate parameter
//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('DATABASE-CONNECTION: tableName=%s - CALLED!', $tableName));
if (empty($tableName)) {