Klasse überarbeiten

Ideen für neue Funktionen in CONTENIDO?
Antworten
Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Klasse überarbeiten

Beitrag von Faar » Do 8. Jun 2017, 10:21

Hier gibt es eine Klasse, die überarbeitet werden sollte: https://api.contenido.org/con4911/sourc ... ml#288-370
Und zwar besonders Zeile 353, 354 und 357 sollten gelöscht oder besser nur als Option geschaltet werden.

Die Idee, da jeweils ein Objekt aufzurufen (das selbst auch noch jeden Scheiß aufruft) und vor den Kategorie-IDs zu packen ist ein Unding.
Wer macht denn in PHP sowas?
Ein mancher möchte einfach nur die IDs der Subcats und nicht den kompletten Datenbestand einer Contenido Instanz.
:?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Klasse überarbeiten

Beitrag von frederic.schneider_4fb » Do 8. Jun 2017, 10:25

Vielen Dank für Deine Anregung. Ich mache dazu mal ein Ticket auf für die kommende Version (4.9.14), das zu überarbeiten. Ich kann spontan nicht überprüfen, ob eine Optionalisierung oder sogar Rauslöschung Seiteneffekte hat.
Frederic Schneider
Entwickler bei der four for business AG

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Klasse überarbeiten

Beitrag von Faar » Do 8. Jun 2017, 10:31

frederic.schneider_4fb hat geschrieben:
Do 8. Jun 2017, 10:25
Ich kann spontan nicht überprüfen, ob eine Optionalisierung oder sogar Rauslöschung Seiteneffekte hat.
Durchaus könnte es Seiteneffekte haben, weil vermutlich die Standardmodule auf diese Objekte zurückgreifen.
Folglich bliebe nur eine Option, mit der man die Objekte dort ausschalten kann, aber standardmäßig drinnen sind.
Sonst würde sicher einiges in Contenido nicht mehr funktionieren.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Klasse überarbeiten

Beitrag von frederic.schneider_4fb » Do 8. Jun 2017, 10:33

Genauso sehe ich das auch. Deshalb schauen wir es uns in Ruhe an. Ich wollte mit dem Hinweis nur ausdrücken, dass das nichts ist, was ich gerade beiläufig mal umsetzen und einchecken kann :-)
Frederic Schneider
Entwickler bei der four for business AG

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Klasse überarbeiten

Beitrag von Faar » Do 8. Jun 2017, 10:36

Das weiß ich ja :)
Aber anstupsen muss man es mal irgendwann und hiermit habe ich es getan :roll:
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Klasse überarbeiten

Beitrag von Oldperl » Do 8. Jun 2017, 10:46

Servus,
Faar hat geschrieben:
Do 8. Jun 2017, 10:36
Das weiß ich ja :)
Aber anstupsen muss man es mal irgendwann und hiermit habe ich es getan :roll:
Gibt es eigentlich beim Schubsen auch ein Copyright? :roll:
Faar hat geschrieben:
Do 8. Jun 2017, 10:21
Die Idee, da jeweils ein Objekt aufzurufen (das selbst auch noch jeden Scheiß aufruft) und vor den Kategorie-IDs zu packen ist ein Unding.
Wer macht denn in PHP sowas?
Die Idee diese "Idee" zu überarbeiten ist wirklich gut! :wink:

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Klasse überarbeiten

Beitrag von rethus » Mo 12. Jun 2017, 10:50

Die Idee diese "Idee" zu überarbeiten
erinnert mich irgendwie an Passierschein A38 bei Asterisk und Obelix (https://youtu.be/lIiUR2gV0xk?t=1m10s)
:D
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Klasse überarbeiten

Beitrag von xmurrix » Do 1. Nov 2018, 20:54

Das Ändern der Funktion getSubCategories() in der Klasse cCategoryHelper ist keine gute Idee, zumindest nicht in CONTENIDO 4.9.*.

Die cCategoryHelper->getSubCategories() ist Teil der öffentlichen API von CONTENIDO, d. h. mann muss damit rechnen, dass CONTENIDO-Installationen, die Navigationsmodule verwenden, den Code so programmiert haben, dass sie in $category['item'] eine cApiCategoryLanguage Instanz erwarten. Ändert man dies, werden die CONTENIDO-Installationen Reihenweise Exeptions werfen.

Es wäre aber eine Überlegung wert, dies im nächsten Major-Release von CONTENIDO zu optimieren. Dann kann man auch Änderungen kommunizieren, die nicht abwärtskompatibel sind.

Oder man implementiert in CONTENIDO 4.9.* z. B. eine Funktion getSubCategoriesLight(), die dann eine Struktur ohne item-Objekte liefert, und jeder, der es mag, kann dann die neue Funktion ohne Objekte verwenden.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Klasse überarbeiten

Beitrag von Oldperl » Fr 2. Nov 2018, 07:42

Servus,

xmurrix hat recht, auch wenn viele Entwickler diese Funktion nicht gerne nutzen, kann es sein, dass sie als API-Funktion bereits mehrfach genutzt wird und man durch unüberlegte Änderungen viele Installationen da draußen beim nächsten Release abschießt.

Trotzdem macht eine Art Light-Funktion noch weniger Sinn, denn diese würde die Namenskonventionen ad absurdum führen. Konsistenter wäre ein zusätzlicher Parameter mit einem Default-Wert, ein Boolean, der, je nach Wert, das zurückzuliefernde Array mit oder ohne Objekte erstellt.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Klasse überarbeiten

Beitrag von Faar » Fr 2. Nov 2018, 17:12

Faar hat geschrieben:
Do 8. Jun 2017, 10:31
Durchaus könnte es Seiteneffekte haben, weil vermutlich die Standardmodule auf diese Objekte zurückgreifen.
Folglich bliebe nur eine Option, mit der man die Objekte dort ausschalten kann, aber standardmäßig drinnen sind.
Sonst würde sicher einiges in Contenido nicht mehr funktionieren.
:roll:
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Klasse überarbeiten

Beitrag von xmurrix » Fr 2. Nov 2018, 17:59

Es gibt das Programmierparadigma, die besagt, dass Funktionen immer den selben Typ zurückliefern sollten. Dadurch wird der weitere Umgang mit den Rückgabewerten der Funktion vereinfacht, die Komplexität wird reduziert.

Eine Erweiterung der vorhandenen Funktion getSubCategories() um einen Parameter würde zwar immer noch ein Array liefern, aber streng genommen wird dann der Inhalt von $category['item'] ein anderer Typ sein, also die Struktur des Rückgabe-Arrays wird eine andere sein. Man sollte auch diesen Aspekt berücksichtigen.

Grüße
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Antworten