mirror of
https://github.com/friendica/friendica
synced 2024-11-19 08:23:40 +00:00
Add docs
This commit is contained in:
parent
d74e57ef2c
commit
74c5c66cb5
1 changed files with 32 additions and 0 deletions
|
@ -23,8 +23,18 @@ namespace Friendica\Util\Writer;
|
||||||
|
|
||||||
use Friendica\Database\Definition\ViewDefinition;
|
use Friendica\Database\Definition\ViewDefinition;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SQL writer utility for the db view definition
|
||||||
|
*/
|
||||||
class ViewDefinitionSqlWriter
|
class ViewDefinitionSqlWriter
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Creates a complete SQL definition bases on a give View Definition class
|
||||||
|
*
|
||||||
|
* @param ViewDefinition $definition The View definition class
|
||||||
|
*
|
||||||
|
* @return string The SQL definition as a string
|
||||||
|
*/
|
||||||
public static function create(ViewDefinition $definition): string
|
public static function create(ViewDefinition $definition): string
|
||||||
{
|
{
|
||||||
$sqlString = '';
|
$sqlString = '';
|
||||||
|
@ -40,11 +50,26 @@ class ViewDefinitionSqlWriter
|
||||||
return $sqlString;
|
return $sqlString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates the SQL definition to drop a view
|
||||||
|
*
|
||||||
|
* @param string $viewName the view name
|
||||||
|
*
|
||||||
|
* @return string The SQL definition
|
||||||
|
*/
|
||||||
public static function dropView(string $viewName): string
|
public static function dropView(string $viewName): string
|
||||||
{
|
{
|
||||||
return sprintf("DROP VIEW IF EXISTS `%s`", static::escape($viewName)) . ";\n";
|
return sprintf("DROP VIEW IF EXISTS `%s`", static::escape($viewName)) . ";\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates the SQL definition to create a new view
|
||||||
|
*
|
||||||
|
* @param string $viewName The view name
|
||||||
|
* @param array $viewStructure The structure information of the view
|
||||||
|
*
|
||||||
|
* @return string The SQL definition
|
||||||
|
*/
|
||||||
public static function createView(string $viewName, array $viewStructure): string
|
public static function createView(string $viewName, array $viewStructure): string
|
||||||
{
|
{
|
||||||
$sql_rows = [];
|
$sql_rows = [];
|
||||||
|
@ -59,6 +84,13 @@ class ViewDefinitionSqlWriter
|
||||||
implode(",\n\t", $sql_rows) . "\n\t" . $viewStructure['query'] . ";\n\n";
|
implode(",\n\t", $sql_rows) . "\n\t" . $viewStructure['query'] . ";\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Standard escaping for SQL definitions
|
||||||
|
*
|
||||||
|
* @param string $sqlString the SQL string to escape
|
||||||
|
*
|
||||||
|
* @return string escaped SQL string
|
||||||
|
*/
|
||||||
public static function escape(string $sqlString): string
|
public static function escape(string $sqlString): string
|
||||||
{
|
{
|
||||||
return str_replace("'", "\\'", $sqlString);
|
return str_replace("'", "\\'", $sqlString);
|
||||||
|
|
Loading…
Reference in a new issue