Modify

Opened 5 years ago

Closed 5 years ago

#1908 closed Aufgabe (wontfix)

xtDBquery flexibel machen wie xtc_db_fetch_array

Reported by: noRiddle Owned by: somebody
Priority: normal Milestone:
Component: Shop Version: 2.0.5.1
Keywords: Cc:
Blocked By: Blocking:

Description

Vorab wofür es sinnvoll wäre:
In letzter Zeit habe ich Module gebaut oder umgebaut, die bestimmte Artikel in begrenzter Anzahl aus der DB holen, entweder sortiert nach einem DB-Feld wie products_id oder at random, also zufällig.
Bei zufälliger Sortierung ist die Nutzung des Cache und DB-Cache nicht möglich.
Je nach Einstellung im Modul kann ich nun in der Funktion xtc_db_fetch_array() den zweiten Parameter true oder false setzen und somit die Cache-Verwendung steuern. Mit xtDBquery() geht dies jedoch nicht, sodaß man es folgendermaßen umschreiben muß:
Beispiel:

$use_cache = defined('MODULE_BLABLABLA_USE_SOANDSO') && MODULE_BLABLABLA_USE_SOANDSO = 'true' ? false : true;
$use_cache ? $my_query = xtDBquery(SQL) : $my_query = xtc_db_query(SQL);

während man bei xtc_db_fetch_array() schlicht dies machen kann:

$my_array = xtc_db_fetch_array($my_query, $use_cache);

Es wäre also gut auch in der Funktion xtDBquery() einen Steuerparameter zu haben.
Leider müsste man hier den Default auf true setzen, anstatt wie bei xtc_db_fetch_array() auf false, um nicht 1. viel Code ändern zu müssen und 2. irgendwelche Erweiterungen und Module zu brechen wo erstgenannte Funktion verwendet wird.

Gebe zu, mein Vorschlag ist diskussionswürdig.

Gruß,
noRiddle

Attachments (0)

Change History (7)

comment:1 by noRiddle, 5 years ago

Korrektur:
Meinte natürlich verständlicher anstatt

$use_cache ? $my_query = xtDBquery(SQL) : $my_query = xtc_db_query(SQL);

so

$my_query = $use_cache ? xtDBquery(SQL) : xtc_db_query(SQL);

Gruß,
noRiddle

comment:2 by Gerhard Waldemair, 5 years ago

Du hast doch bereits die Möglichkeit der Unterscheidung mit

xtc_db_query (ohne Caching)

oder

xtDBquery (mit Caching)

comment:3 by Torsten Riemer, 5 years ago

Ich sehe darin ehrlich gesagt keinen Vorteil, da wir die Funktionen beide bereits haben und es nur um 27 Zeichen geht, die man einsparen könnte.

$use_cache = defined('MODULE_BLABLABLA_USE_SOANDSO') && MODULE_BLABLABLA_USE_SOANDSO = 'true' ? false : true;
$my_query = $use_cache ? xtDBquery($my_query) : xtc_db_query($my_query);

vs (fiktive Funktion xtDBquery mit zweitem Parameter für Cache):

$use_cache = defined('MODULE_BLABLABLA_USE_SOANDSO') && MODULE_BLABLABLA_USE_SOANDSO = 'true' ? false : true;
$my_query = xtDBquery($my_query, $use_cache);

comment:4 by noRiddle, 5 years ago

@GTB
Schon klar, aber ich sagte ja, wenn du ein Modul hast wo du sowohl mit als auch ohne Cache haben kannst, eben wegen Einstellungsmöglichkeiten at random oder normale Sortierung.

@Tomcraft
Ja, schon klar, Code-Ersparnis ist nicht das Argument.
Mir ging es eher um konsistente Vorgehensweisen.

Aber ich sagte ja auch "ist diskussionswürdig", war nur so 'ne Idee...

Gruß,
noRiddle

comment:5 by Volker Strähle, 5 years ago

Und warum nicht xtc_db_query($query, $link='db_link', $chaching=false) ?

comment:6 by Gerhard Waldemair, 5 years ago

Dann halt so:

$function = 'xtc_db_query';
if (defined('MODULE_BLABLABLA_USE_SOANDSO') && MODULE_BLABLABLA_USE_SOANDSO = 'true') {
  $function = 'xtDBquery';
}
$my_query = $function($my_query);

comment:7 by Gerhard Waldemair, 5 years ago

Milestone: modified-shop-2.0.5.2
Resolution: wontfix
Status: newclosed

Modify Ticket

Action
as closed The owner will remain somebody.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.