mirror of
https://github.com/friendica/friendica
synced 2024-09-27 06:44:22 +02:00
Philipp Holzer
8c3aebc376
- replaced usage of "!<unset>!" with null-returns - fixed bool settings (0/1) - fixed overriding config-values - fixed basepath problems
84 lines
1.4 KiB
PHP
84 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Friendica\Core\Config\Adapter;
|
|
|
|
use Friendica\Database\DBA;
|
|
|
|
abstract class AbstractDbaConfigAdapter
|
|
{
|
|
/**
|
|
* The connection state of the adapter
|
|
*
|
|
* @var bool
|
|
*/
|
|
protected $connected = true;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->connected = DBA::connected();
|
|
}
|
|
|
|
/**
|
|
* Checks if the adapter is currently connected
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function isConnected()
|
|
{
|
|
return $this->connected;
|
|
}
|
|
|
|
/**
|
|
* Formats a DB value to a config value
|
|
* - null = The db-value isn't set
|
|
* - bool = The db-value is either '0' or '1'
|
|
* - array = The db-value is a serialized array
|
|
* - string = The db-value is a string
|
|
*
|
|
* Keep in mind that there aren't any numeric/integer config values in the database
|
|
*
|
|
* @param null|string $value
|
|
*
|
|
* @return null|array|string
|
|
*/
|
|
protected function toConfigValue($value)
|
|
{
|
|
if (!isset($value)) {
|
|
return null;
|
|
}
|
|
|
|
switch (true) {
|
|
// manage array value
|
|
case preg_match("|^a:[0-9]+:{.*}$|s", $value):
|
|
return unserialize($value);
|
|
|
|
default:
|
|
return $value;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Formats a config value to a DB value (string)
|
|
*
|
|
* @param mixed $value
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function toDbValue($value)
|
|
{
|
|
// if not set, save an empty string
|
|
if (!isset($value)) {
|
|
return '';
|
|
}
|
|
|
|
switch (true) {
|
|
// manage arrays
|
|
case is_array($value):
|
|
return serialize($value);
|
|
|
|
default:
|
|
return (string)$value;
|
|
}
|
|
}
|
|
}
|