use named parameters for ActionDescriptor and ValueDescriptor
parent
b033aceed4
commit
20a8544e6a
|
@ -19,35 +19,24 @@ namespace Dotclear\Plugin\Uninstaller;
|
|||
*/
|
||||
class ActionDescriptor
|
||||
{
|
||||
/** @var string $id The action ID */
|
||||
public readonly string $id;
|
||||
|
||||
/** @var string $ns The namespace (for defined action) */
|
||||
public readonly string $ns;
|
||||
|
||||
/** @var string $query The generic message (used for self::values() management) */
|
||||
public readonly string $select;
|
||||
|
||||
/** @var string $query The query message */
|
||||
public readonly string $query;
|
||||
|
||||
/** @var string $success The succes message */
|
||||
public readonly string $success;
|
||||
|
||||
/** @var string $error The error message */
|
||||
public readonly string $error;
|
||||
|
||||
/**
|
||||
* Contructor populate descriptor properties.
|
||||
*
|
||||
* @param string $id The action ID
|
||||
* @param string $query The query message
|
||||
* @param string $success The succes message
|
||||
* @param string $error The error message
|
||||
* @param string $ns The namespace (for defined action)
|
||||
* @param string $select The generic message (used for self::values() management)
|
||||
*/
|
||||
public function __construct(array $description)
|
||||
{
|
||||
$this->id = (string) ($description['id'] ?? 'undefined');
|
||||
$this->ns = (string) ($description['ns'] ?? '');
|
||||
$this->select = (string) ($description['select'] ?? 'undefined');
|
||||
$this->query = (string) ($description['query'] ?? 'undefined');
|
||||
$this->success = (string) ($description['success'] ?? 'undefined');
|
||||
$this->error = (string) ($description['error'] ?? 'undefined');
|
||||
public function __construct(
|
||||
public readonly string $id,
|
||||
public readonly string $query,
|
||||
public readonly string $success,
|
||||
public readonly string $error,
|
||||
public readonly string $ns = '',
|
||||
public readonly string $select = ''
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -24,7 +24,7 @@ use Dotclear\Plugin\Uninstaller\{
|
|||
/**
|
||||
* Cleaner for Dotclear cache directory used by modules.
|
||||
*
|
||||
* It allows modules to delete an entire sub folder
|
||||
* It allows modules to delete an entire sub folder
|
||||
* of DC_TPL_CACHE directory path.
|
||||
*/
|
||||
class Caches extends AbstractCleaner
|
||||
|
@ -44,21 +44,21 @@ class Caches extends AbstractCleaner
|
|||
{
|
||||
return [
|
||||
// delete a $ns folder and thier files.
|
||||
new ActionDescriptor([
|
||||
'id' => 'delete',
|
||||
'select' => __('delete selected cache directories'),
|
||||
'query' => __('delete "%s" cache directory'),
|
||||
'success' => __('"%s" cache directory deleted'),
|
||||
'error' => __('Failed to delete "%s" cache directory'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'delete',
|
||||
select: __('delete selected cache directories'),
|
||||
query: __('delete "%s" cache directory'),
|
||||
success: __('"%s" cache directory deleted'),
|
||||
error: __('Failed to delete "%s" cache directory')
|
||||
),
|
||||
// delete $ns folder files but keep folder
|
||||
new ActionDescriptor([
|
||||
'id' => 'empty',
|
||||
'select' => __('empty selected cache directories'),
|
||||
'query' => __('empty "%s" cache directory'),
|
||||
'success' => __('"%s" cache directory emptied'),
|
||||
'error' => __('Failed to empty "%s" cache directory'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'empty',
|
||||
select: __('empty selected cache directories'),
|
||||
query: __('empty "%s" cache directory'),
|
||||
success: __('"%s" cache directory emptied'),
|
||||
error: __('Failed to empty "%s" cache directory')
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@ class Caches extends AbstractCleaner
|
|||
'cbfeed',
|
||||
'cbtpl',
|
||||
'dcrepo',
|
||||
'versions'
|
||||
'versions',
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -77,9 +77,8 @@ class Caches extends AbstractCleaner
|
|||
$res = [];
|
||||
foreach (self::getDirs(DC_TPL_CACHE) as $dir) {
|
||||
$res[] = new ValueDescriptor(
|
||||
$dir['key'],
|
||||
'',
|
||||
(int) $dir['value']
|
||||
ns: $dir['key'],
|
||||
count: (int) $dir['value']
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -47,13 +47,13 @@ class Logs extends AbstractCleaner
|
|||
{
|
||||
return [
|
||||
// delete all $ns log_table entries
|
||||
new ActionDescriptor([
|
||||
'id' => 'delete_all',
|
||||
'select' => __('delete selected logs tables'),
|
||||
'query' => __('delete "%s" logs table'),
|
||||
'success' => __('"%s" logs table deleted'),
|
||||
'error' => __('Failed to delete "%s" logs table'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'delete_all',
|
||||
select: __('delete selected logs tables'),
|
||||
query: __('delete "%s" logs table'),
|
||||
success: __('"%s" logs table deleted'),
|
||||
error: __('Failed to delete "%s" logs table')
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -84,9 +84,8 @@ class Logs extends AbstractCleaner
|
|||
$res = [];
|
||||
while ($rs->fetch()) {
|
||||
$res[] = new ValueDescriptor(
|
||||
$rs->f('log_table'),
|
||||
'',
|
||||
(int) $rs->f('counter')
|
||||
ns: (string) $rs->f('log_table'),
|
||||
count: (int) $rs->f('counter')
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -43,13 +43,13 @@ class Plugins extends AbstractCleaner
|
|||
{
|
||||
return [
|
||||
// delete $ns plugin folder
|
||||
new ActionDescriptor([
|
||||
'id' => 'delete',
|
||||
'select' => __('delete selected plugins files and directories'),
|
||||
'query' => __('delete "%s" plugin files and directories'),
|
||||
'success' => __('"%s" plugin files and directories deleted'),
|
||||
'error' => __('Failed to delete "%s" plugin files and directories'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'delete',
|
||||
select: __('delete selected plugins files and directories'),
|
||||
query: __('delete "%s" plugin files and directories'),
|
||||
success: __('"%s" plugin files and directories deleted'),
|
||||
error: __('Failed to delete "%s" plugin files and directories')
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -66,9 +66,8 @@ class Plugins extends AbstractCleaner
|
|||
$res = [];
|
||||
foreach ($dirs as $dir) {
|
||||
$res[] = new ValueDescriptor(
|
||||
$dir['key'],
|
||||
'',
|
||||
(int) $dir['value']
|
||||
ns: $dir['key'],
|
||||
count: (int) $dir['value']
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -47,36 +47,36 @@ class Preferences extends AbstractCleaner
|
|||
{
|
||||
return [
|
||||
// delete global $ns preferences workspace
|
||||
new ActionDescriptor([
|
||||
'id' => 'delete_global',
|
||||
'select' => __('delete selected global preferences workspaces'),
|
||||
'query' => __('delete "%s" global preferences workspace'),
|
||||
'success' => __('"%s" global preferences workspace deleted'),
|
||||
'error' => __('Failed to delete "%s" global preferences workspace'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'delete_global',
|
||||
select: __('delete selected global preferences workspaces'),
|
||||
query: __('delete "%s" global preferences workspace'),
|
||||
success: __('"%s" global preferences workspace deleted'),
|
||||
error: __('Failed to delete "%s" global preferences workspace')
|
||||
),
|
||||
// delete users $ns preferences workspace
|
||||
new ActionDescriptor([
|
||||
'id' => 'delete_local',
|
||||
'select' => __('delete selected users preferences workspaces'),
|
||||
'query' => __('delete "%s" users preferences workspace'),
|
||||
'success' => __('"%s" users preferences workspace deleted'),
|
||||
'error' => __('Failed to delete "%s" users preferences workspace'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'delete_local',
|
||||
select: __('delete selected users preferences workspaces'),
|
||||
query: __('delete "%s" users preferences workspace'),
|
||||
success: __('"%s" users preferences workspace deleted'),
|
||||
error: __('Failed to delete "%s" users preferences workspace')
|
||||
),
|
||||
// delete user and global $ns preferences workspace
|
||||
new ActionDescriptor([
|
||||
'id' => 'delete_all',
|
||||
'select' => __('delete selected preferences workspaces'),
|
||||
'query' => __('delete "%s" preferences workspace'),
|
||||
'success' => __('"%s" preferences workspace deleted'),
|
||||
'error' => __('Failed to delete "%s" preferences workspace'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'delete_all',
|
||||
select: __('delete selected preferences workspaces'),
|
||||
query: __('delete "%s" preferences workspace'),
|
||||
success: __('"%s" preferences workspace deleted'),
|
||||
error: __('Failed to delete "%s" preferences workspace')
|
||||
),
|
||||
// delete users and globals specific $ws:$id settings using 'pref_ws:pref_id;pref_ws:pref_id;' as $ns
|
||||
new ActionDescriptor([
|
||||
'id' => 'delete_related',
|
||||
'query' => __('delete related preferences'),
|
||||
'success' => __('related preferences deleted'),
|
||||
'error' => __('Failed to delete related preferences'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'delete_related',
|
||||
query: __('delete related preferences'),
|
||||
success: __('related preferences deleted'),
|
||||
error: __('Failed to delete related preferences')
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -112,9 +112,8 @@ class Preferences extends AbstractCleaner
|
|||
$res = [];
|
||||
while ($rs->fetch()) {
|
||||
$res[] = new ValueDescriptor(
|
||||
$rs->f('pref_ws'),
|
||||
'',
|
||||
(int) $rs->f('counter')
|
||||
ns: (string) $rs->f('pref_ws'),
|
||||
count: (int) $rs->f('counter')
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -141,9 +140,8 @@ class Preferences extends AbstractCleaner
|
|||
$res = [];
|
||||
while ($rs->fetch()) {
|
||||
$res[] = new ValueDescriptor(
|
||||
$ns,
|
||||
$rs->f('pref_id'),
|
||||
(int) $rs->f('counter')
|
||||
id: (string) $rs->f('pref_id'),
|
||||
count: (int) $rs->f('counter')
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -47,36 +47,36 @@ class Settings extends AbstractCleaner
|
|||
{
|
||||
return [
|
||||
// delete global $ns settings namespace
|
||||
new ActionDescriptor([
|
||||
'id' => 'delete_global',
|
||||
'select' => __('delete selected global settings namespaces'),
|
||||
'query' => __('delete "%s" global settings namespace'),
|
||||
'success' => __('"%s" global settings namespace deleted'),
|
||||
'error' => __('Failed to delete "%s" global settings namespace'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'delete_global',
|
||||
select: __('delete selected global settings namespaces'),
|
||||
query: __('delete "%s" global settings namespace'),
|
||||
success: __('"%s" global settings namespace deleted'),
|
||||
error: __('Failed to delete "%s" global settings namespace')
|
||||
),
|
||||
// delete blogs $ns settings namespace
|
||||
new ActionDescriptor([
|
||||
'id' => 'delete_local',
|
||||
'select' => __('delete selected blog settings namespaces'),
|
||||
'query' => __('delete "%s" blog settings namespace'),
|
||||
'success' => __('"%s" blog settings namespace deleted'),
|
||||
'error' => __('Failed to delete "%s" blog settings namespace'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'delete_local',
|
||||
select: __('delete selected blog settings namespaces'),
|
||||
query: __('delete "%s" blog settings namespace'),
|
||||
success: __('"%s" blog settings namespace deleted'),
|
||||
error: __('Failed to delete "%s" blog settings namespace')
|
||||
),
|
||||
// delete blogs and global settings namespace
|
||||
new ActionDescriptor([
|
||||
'id' => 'delete_all',
|
||||
'select' => __('delete selected settings namespaces'),
|
||||
'query' => __('delete "%s" settings namespace'),
|
||||
'success' => __('"%s" settings namespace deleted'),
|
||||
'error' => __('Failed to delete "%s" settings namespace'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'delete_all',
|
||||
select: __('delete selected settings namespaces'),
|
||||
query: __('delete "%s" settings namespace'),
|
||||
success: __('"%s" settings namespace deleted'),
|
||||
error: __('Failed to delete "%s" settings namespace')
|
||||
),
|
||||
// delete blogs and globals specific $ns:$id settings using 'setting_ns:setting_id;setting_ns:setting_id;' as $ns
|
||||
new ActionDescriptor([
|
||||
'id' => 'delete_related',
|
||||
'query' => __('delete related settings'),
|
||||
'success' => __('related settings deleted'),
|
||||
'error' => __('Failed to delete related settings'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'delete_related',
|
||||
query: __('delete related settings'),
|
||||
success: __('related settings deleted'),
|
||||
error: __('Failed to delete related settings')
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -116,9 +116,8 @@ class Settings extends AbstractCleaner
|
|||
$res = [];
|
||||
while ($rs->fetch()) {
|
||||
$res[] = new ValueDescriptor(
|
||||
$rs->f('setting_ns'),
|
||||
'',
|
||||
(int) $rs->f('counter')
|
||||
ns: (string) $rs->f('setting_ns'),
|
||||
count: (int) $rs->f('counter')
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -145,9 +144,8 @@ class Settings extends AbstractCleaner
|
|||
$res = [];
|
||||
while ($rs->fetch()) {
|
||||
$res[] = new ValueDescriptor(
|
||||
$ns,
|
||||
$rs->f('setting_id'),
|
||||
(int) $rs->f('counter')
|
||||
id: (string) $rs->f('setting_id'),
|
||||
count: (int) $rs->f('counter')
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -50,21 +50,21 @@ class Tables extends AbstractCleaner
|
|||
{
|
||||
return [
|
||||
// delete $ns database table
|
||||
new ActionDescriptor([
|
||||
'id' => 'delete',
|
||||
'select' => __('delete selected tables'),
|
||||
'query' => __('delete "%s" table'),
|
||||
'success' => __('"%s" table deleted'),
|
||||
'error' => __('Failed to delete "%s" table'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'delete',
|
||||
select: __('delete selected tables'),
|
||||
query: __('delete "%s" table'),
|
||||
success: __('"%s" table deleted'),
|
||||
error: __('Failed to delete "%s" table')
|
||||
),
|
||||
// truncate (empty) $ns database table
|
||||
new ActionDescriptor([
|
||||
'id' => 'empty',
|
||||
'select' => __('empty selected tables'),
|
||||
'query' => __('empty "%s" table'),
|
||||
'success' => __('"%s" table emptied'),
|
||||
'error' => __('Failed to empty "%s" table'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'empty',
|
||||
select: __('empty selected tables'),
|
||||
query: __('empty "%s" table'),
|
||||
success: __('"%s" table emptied'),
|
||||
error: __('Failed to empty "%s" table')
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -109,9 +109,8 @@ class Tables extends AbstractCleaner
|
|||
$sql = new SelectStatement();
|
||||
|
||||
$res[] = new ValueDescriptor(
|
||||
$v,
|
||||
'',
|
||||
(int) $sql->from($tables[$k])->fields([$sql->count('*')])->select()?->f(0)
|
||||
ns: (string) $v,
|
||||
count: (int) $sql->from($tables[$k])->fields([$sql->count('*')])->select()?->f(0)
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -44,13 +44,13 @@ class Themes extends AbstractCleaner
|
|||
{
|
||||
return [
|
||||
// delete $ns theme folder
|
||||
new ActionDescriptor([
|
||||
'id' => 'delete',
|
||||
'select' => __('delete selected themes files and directories'),
|
||||
'query' => __('delete "%s" theme files and directories'),
|
||||
'success' => __('"%s" theme files and directories deleted'),
|
||||
'error' => __('Failed to delete "%s" theme files and directories'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'delete',
|
||||
select: __('delete selected themes files and directories'),
|
||||
query: __('delete "%s" theme files and directories'),
|
||||
success: __('"%s" theme files and directories deleted'),
|
||||
error: __('Failed to delete "%s" theme files and directories')
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -71,9 +71,8 @@ class Themes extends AbstractCleaner
|
|||
$res = [];
|
||||
foreach ($dirs as $dir) {
|
||||
$res[] = new ValueDescriptor(
|
||||
$dir['key'],
|
||||
'',
|
||||
(int) $dir['value']
|
||||
ns: $dir['key'],
|
||||
count: (int) $dir['value']
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ use Dotclear\Plugin\Uninstaller\{
|
|||
/**
|
||||
* Cleaner for Dotclear VAR directory used by modules.
|
||||
*
|
||||
* It allows modules to delete an entire sub folder
|
||||
* It allows modules to delete an entire sub folder
|
||||
* of DC_VAR directory path.
|
||||
*/
|
||||
class Vars extends AbstractCleaner
|
||||
|
@ -44,13 +44,13 @@ class Vars extends AbstractCleaner
|
|||
{
|
||||
return [
|
||||
// delete a $ns folder and their files
|
||||
new ActionDescriptor([
|
||||
'id' => 'delete',
|
||||
'select' => __('delete selected var directories'),
|
||||
'query' => __('delete "%s" var directory'),
|
||||
'success' => __('"%s" var directory deleted'),
|
||||
'error' => __('Failed to delete "%s" var directory'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'delete',
|
||||
select: __('delete selected var directories'),
|
||||
query: __('delete "%s" var directory'),
|
||||
success: __('"%s" var directory deleted'),
|
||||
error: __('Failed to delete "%s" var directory')
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -64,9 +64,8 @@ class Vars extends AbstractCleaner
|
|||
$res = [];
|
||||
foreach (self::getDirs(DC_VAR) as $dir) {
|
||||
$res[] = new ValueDescriptor(
|
||||
$dir['key'],
|
||||
'',
|
||||
(int) $dir['value']
|
||||
ns: $dir['key'],
|
||||
count: (int) $dir['value']
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ use Dotclear\Plugin\Uninstaller\{
|
|||
/**
|
||||
* Cleaner for Dotclear modules versions.
|
||||
*
|
||||
* It allows modules to delete their versions
|
||||
* It allows modules to delete their versions
|
||||
* from Dotclear dcCore::VERSION_TABLE_NAME database table.
|
||||
*/
|
||||
class Versions extends AbstractCleaner
|
||||
|
@ -43,13 +43,13 @@ class Versions extends AbstractCleaner
|
|||
{
|
||||
return [
|
||||
// delete $ns version
|
||||
new ActionDescriptor([
|
||||
'id' => 'delete',
|
||||
'select' => __('delete selected versions numbers'),
|
||||
'query' => __('delete "%s" version number'),
|
||||
'success' => __('"%s" version number deleted'),
|
||||
'error' => __('Failed to delete "%s" version number'),
|
||||
]),
|
||||
new ActionDescriptor(
|
||||
id: 'delete',
|
||||
select: __('delete selected versions numbers'),
|
||||
query: __('delete "%s" version number'),
|
||||
success: __('"%s" version number deleted'),
|
||||
error: __('Failed to delete "%s" version number')
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -85,9 +85,9 @@ class Versions extends AbstractCleaner
|
|||
$res = [];
|
||||
while ($rs->fetch()) {
|
||||
$res[] = new ValueDescriptor(
|
||||
$rs->f('module'),
|
||||
$rs->f('version'),
|
||||
1
|
||||
ns: (string) $rs->f('module'),
|
||||
id: (string) $rs->f('version'),
|
||||
count: 1
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -257,13 +257,13 @@ class Uninstaller
|
|||
}
|
||||
|
||||
// fill action properties
|
||||
$this->actions[$group][$this->module->getId()][$cleaner][] = new ActionDescriptor([
|
||||
'id' => $action,
|
||||
'ns' => $ns,
|
||||
'select' => $this->cleaners->get($cleaner)->actions[$action]->select,
|
||||
'query' => sprintf($this->cleaners->get($cleaner)->actions[$action]->query, $ns),
|
||||
'success' => sprintf($this->cleaners->get($cleaner)->actions[$action]->success, $ns),
|
||||
'error' => sprintf($this->cleaners->get($cleaner)->actions[$action]->error, $ns),
|
||||
]);
|
||||
$this->actions[$group][$this->module->getId()][$cleaner][] = new ActionDescriptor(
|
||||
id: $action,
|
||||
ns: $ns,
|
||||
select: $this->cleaners->get($cleaner)->actions[$action]->select,
|
||||
query: sprintf($this->cleaners->get($cleaner)->actions[$action]->query, $ns),
|
||||
success: sprintf($this->cleaners->get($cleaner)->actions[$action]->success, $ns),
|
||||
error: sprintf($this->cleaners->get($cleaner)->actions[$action]->error, $ns),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,9 +30,9 @@ class ValueDescriptor
|
|||
* @param int $count The count of ID on the namespace
|
||||
*/
|
||||
public function __construct(
|
||||
public readonly string $ns,
|
||||
public readonly string $id,
|
||||
public readonly int $count,
|
||||
public readonly string $ns = '',
|
||||
public readonly string $id = '',
|
||||
public readonly int $count = 0,
|
||||
) {
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue