19 declare(strict_types=1);
    40         $query = 
'SELECT * FROM ' . self::TABLE_NAME;
    41         $result = $this->db->query($query);
    42         while ($row = $this->db->fetchAssoc($result)) {
    43             $apps[] = $this->
fromDBRow($row, $action_repository);
    53             (
string) $row[
'name'],
    54             $action_repository->getActionsForApp($row[
'id']),
    55             $row[
'favicon'] ? 
new URI($row[
'favicon']) : null
    62         foreach ($apps->
getApps() as $app) {
    63             $actions = array_merge($actions, $app->getActions());
    64             $this->
store($app, $action_repository);
    65             $actions += $app->getActions();
    72         $query = 
'DELETE FROM ' . self::TABLE_NAME;
    73         $this->db->manipulate($query);
    74         $action_repository->
clear();
    79         if ($app->
getId() === 0) {
    81             $query = 
'SELECT * FROM ' . self::TABLE_NAME . 
' WHERE name = %s';
    82             $result = $this->db->queryF($query, [
'text'], [$app->
getName()]);
    83             if ($this->db->numRows($result) > 0) {
    84                 $row = $this->db->fetchAssoc($result);
    94         if ($app->
getId() === 0 || $this->db->queryF(
    95             'SELECT * FROM ' . self::TABLE_NAME . 
' WHERE id = %s',
   100                 $this->db->nextId(self::TABLE_NAME),
   106             $query = 
'INSERT INTO ' . self::TABLE_NAME . 
' (id, name, favicon) VALUES (%s, %s, %s)';
   107             $this->db->manipulateF(
   109                 [
'integer', 
'text', 
'text'],
   113             $query = 
'UPDATE ' . self::TABLE_NAME . 
' SET name = %s, favicon = %s WHERE id = %s';
   114             $this->db->manipulateF(
   116                 [
'text', 
'text', 
'integer'],
   122             $action_repository->
store($action, $app);
 
clearSuperfluous(Action ... $actions)
 
storeCollection(Apps $apps, ActionRepository $action_repository)
 
__construct(private \ilDBInterface $db)
 
fromDBRow(array $row, ActionRepository $action_repository)
 
store(App $app, ActionRepository $action_repository)
 
The scope of this class is split ilias-conform URI's into components. 
 
getApps(ActionRepository $action_repository)
 
store(Action $action, App $for_app)
 
clear(ActionRepository $action_repository)