Re: [TYPO3-german] Caching der eigenen Extension / paginierung mit chash
Hallo Michael, durch das manuelle Erstellen der Links hebelst du einen großen Teil der Typolink-Vorteile aus: - kein RealUrl oder CoolUri mehr (also keine sprechenden URLs) - kein Sprachumschalter - keine sonstigen Parameter, die weitergereicht werden sollen Wenn du also später andere Sprachen brauchst (oder einfach generell weitere Parameter), muss du deinen Code ändern. Und wenn du sprechende Urls brauchst, fängst du an, RealUrl in deiner Extension nachzubauen … Ich habe schon mal eine Installation übernommen, in der das ein Entwickler gemacht hat. Bevor ich RealUrl + Sprachen einrichten konnte musste ich gute 10 Extensions umschreiben … der Kunde war nicht amüsiert. Ich rate von diesem Vorgehen ab. Gruß Peter > Am 30.09.2015 um 10:23 schrieb Michael Kasten: > > Signierter PGP-Teil > Hallo, > > könnte auch für andere hilfreich sein: > > //Die aktuelle Seite > $siteUrl = > \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL') . > 'index.php?id='; > $siteUrl = $siteUrl.intval($GLOBALS['TSFE']->id); > > //Ein Objekt um den Cache Hash zu erzeugen > > $params='=1=2'; > $chash = new \TYPO3\CMS\Frontend\Page\CacheHashCalculator; > $hashstring = $chash->generateForParameters('=1=2'); > > Zusammengebaut dann also: > $siteUrl.$params.'='.$hashstring > > http://localhost/diedeldum/index.php?id=31=1=2=d70b8db3ee05c4bef4f66ac867dc2ded > > Ich bin mir noch nicht sicher ob das die richtige Richtung ist, aber die > einzige die ich derzeit > kenne, das will ja nichts heißen. > > Wenn also Jemand sagt: 'Vollkommener Quatsch' dann bitte ich um Vorschläge :) > > > mit besten Grüßen > > > Am 30.09.2015 um 09:55 schrieb Michael Kasten: > > Hallo, > > > > ich lote hier immer noch meine Möglichkeiten aus: > > > > Nun mal der Versuch mit der Typolinkmethode: > > > > Bei der Suche in der Klassenreferenz gibt es diese Methode nicht, ich > > erhalte nur die > > Methoden: > > > > typoLink_URL und typolinkWrap > > > > typoLink_URL probier ich mal > > > > > > \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::typoLink_URL($conf); > > > > Damit erhalte ich den Fehler > > > > Call to undefined method XXX\XXX\ViewHelpers\XXX::typolink() > > > > > > why? weil: > > > > public function typoLink_URL($conf) { $this->typolink('|', $conf); return > > $this->lastTypoLinkUrl; } > > > > ist also auch nur ein Aufruf von typolink() > > > > Das ist dann wohl auch eine Sackgasse? > > > > > > > > ___ TYPO3-german mailing list > > TYPO3-german@lists.typo3.org > > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > > > > -- > Michael Kasten | http://m-kasten.de > Im wirklichen Leben gibt es kein [Strg]+[Z] > > ___ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german -- Xing: http://www.xing.com/profile/Peter_Linzenkirchner Web: http://www.typo3-lisardo.de Facebook: http://tinyurl.com/lisardo-multimedia ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Caching der eigenen Extension / paginierung mit chash
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hallo, ich lote hier immer noch meine Möglichkeiten aus: Nun mal der Versuch mit der Typolinkmethode: Bei der Suche in der Klassenreferenz gibt es diese Methode nicht, ich erhalte nur die Methoden: typoLink_URL und typolinkWrap typoLink_URL probier ich mal \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::typoLink_URL($conf); Damit erhalte ich den Fehler Call to undefined method XXX\XXX\ViewHelpers\XXX::typolink() why? weil: public function typoLink_URL($conf) { $this->typolink('|', $conf); return $this->lastTypoLinkUrl; } ist also auch nur ein Aufruf von typolink() Das ist dann wohl auch eine Sackgasse? - -- Michael Kasten | http://m-kasten.de Im wirklichen Leben gibt es kein [Strg]+[Z] -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.22 (GNU/Linux) iQEcBAEBAgAGBQJWC5VaAAoJEF1/iIvWnG8NDaIH/1pS8sJ5yqPhbuPcOGhT0Wzj 6uqD+nH/9ySaAX8KD/iCXUeEfsG1sm6ZcU3PdlLlCIXNFs8mL3/muFiPwcZqh1Ml lmiMk3JYPWLSFNbaVtPR/jD/PHruOq1gWKCEytQuldvmjtjCuBjVzb8BK+A2iCbI jMHl+fqAO82CnJpiATTti9H5T0BCbILFIgGQs4HaYhybIMOIQmzCB6LAC8HM6Cil NG4OnzJu3Rivr6r4r/8SXHkbDXt4ETugsF0+KFXZ71d5t87v0Dhil7pDFOIPKa2R vYdMJ5XIuI8Ykkac49OYYqZY1scgpDZjFC00KynkdO+X94l9+Kro6oT3ZnoTLh4= =SLLl -END PGP SIGNATURE- ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Caching der eigenen Extension / paginierung mit chash
Hallo Michael, ich kann mir nicht vorstellen, dass man die Methode statisch aufrufen kannst. Das kann nicht gehen … Ich habe das in einem Viewhelper noch nicht gemacht, aber wenn, dann etwa so: $conf = array( … ); $cObjRenderer = new \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer(); $cObjRenderer->typoLink_URL($conf); Aber ob das ausreicht, um alle Abhängigkeiten aufzulösen, das weiß ich nicht. Hier ist ein Beispiel, das ein Adminpanel in einem Viewhelper erstellt: https://forge.typo3.org/issues/66620 Das müsste ein Singleton-Entwurfsmuster sein. https://de.wikibooks.org/wiki/Websiteentwicklung:_PHP:_Muster_Singleton Aber das verlässt langsam mein Programmierwissen. — Ich würde generell anders vorgehen - warum das Rad neu erfinden. Ich würde mir das PageBrowser-Widget von fluid aus dem TYPO3-Core kopieren und es in meine Extension rein laden und dann so modifizieren, wie ich das brauche. Ein Beispiel findet sich hier: http://blog.teamgeist-medien.de/2014/01/extbase-fluid-widget-paginate-viewhelper-mit-array-unterstuetzung.html das kann man sicherlich anpassen. Alternativ ist es auch möglich, dem Core-Widget neue Templates zuzuweisen, evtl. reicht das ja. http://www.npostnik.de/typo3/eigenes-template-im-fluid-pagination-widget/ Ansonsten kann man in den URL-Viewhelpern von Fluid sehen, wie in den Viewhelpern URLs aufgebaut werden. Gruß Peter > Am 30.09.2015 um 09:55 schrieb Michael Kasten: > > Signierter PGP-Teil > Hallo, > > ich lote hier immer noch meine Möglichkeiten aus: > > Nun mal der Versuch mit der Typolinkmethode: > > Bei der Suche in der Klassenreferenz gibt es diese Methode nicht, ich erhalte > nur die Methoden: > > typoLink_URL und typolinkWrap > > typoLink_URL probier ich mal > > > \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::typoLink_URL($conf); > > Damit erhalte ich den Fehler > > Call to undefined method XXX\XXX\ViewHelpers\XXX::typolink() > > > why? weil: > > public function typoLink_URL($conf) { > $this->typolink('|', $conf); > return $this->lastTypoLinkUrl; > } > > ist also auch nur ein Aufruf von typolink() > > Das ist dann wohl auch eine Sackgasse? > > > > -- > Michael Kasten | http://m-kasten.de > Im wirklichen Leben gibt es kein [Strg]+[Z] > > ___ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german -- Xing: http://www.xing.com/profile/Peter_Linzenkirchner Web: http://www.typo3-lisardo.de Facebook: http://tinyurl.com/lisardo-multimedia ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Caching der eigenen Extension / paginierung mit chash
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hallo, könnte auch für andere hilfreich sein: //Die aktuelle Seite $siteUrl = \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL') . 'index.php?id='; $siteUrl = $siteUrl.intval($GLOBALS['TSFE']->id); //Ein Objekt um den Cache Hash zu erzeugen $params='=1=2'; $chash = new \TYPO3\CMS\Frontend\Page\CacheHashCalculator; $hashstring = $chash->generateForParameters('=1=2'); Zusammengebaut dann also: $siteUrl.$params.'='.$hashstring http://localhost/diedeldum/index.php?id=31=1=2=d70b8db3ee05c4bef4f66ac867dc2ded Ich bin mir noch nicht sicher ob das die richtige Richtung ist, aber die einzige die ich derzeit kenne, das will ja nichts heißen. Wenn also Jemand sagt: 'Vollkommener Quatsch' dann bitte ich um Vorschläge :) mit besten Grüßen Am 30.09.2015 um 09:55 schrieb Michael Kasten: > Hallo, > > ich lote hier immer noch meine Möglichkeiten aus: > > Nun mal der Versuch mit der Typolinkmethode: > > Bei der Suche in der Klassenreferenz gibt es diese Methode nicht, ich erhalte > nur die > Methoden: > > typoLink_URL und typolinkWrap > > typoLink_URL probier ich mal > > > \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::typoLink_URL($conf); > > Damit erhalte ich den Fehler > > Call to undefined method XXX\XXX\ViewHelpers\XXX::typolink() > > > why? weil: > > public function typoLink_URL($conf) { $this->typolink('|', $conf); return > $this->lastTypoLinkUrl; } > > ist also auch nur ein Aufruf von typolink() > > Das ist dann wohl auch eine Sackgasse? > > > > ___ TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > - -- Michael Kasten | http://m-kasten.de Im wirklichen Leben gibt es kein [Strg]+[Z] -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.22 (GNU/Linux) iQEcBAEBAgAGBQJWC5v2AAoJEF1/iIvWnG8NavUH/1/ByvmwzMottY3+A3RgBBIt x/Sp1LDbIbIo+lxYvcXj2NJA7QDIREwpXAY7YeaPOgTuraufIsGqOYNPIHHNsOL2 P8LearQihmCLOgii2+AuswypNMBxDaDF6D9yboTAvIX7DWppCD+JyHitfeDzzihM oVNj8SWaI6B5yU4dsk2pfL7CVKHJyu1bvOMxyfKr2pvbouqblYsJCHd1OvDXVoNh Ezr/atgN45Pxo3U91mSQ25UPQ/zLWscY5fvjPNDijLR9uG5v6gSx76uWXhWuH/36 DhTb0ZLHH3dgJ4efCVJQc50M2GeG3hDZE9qAtX+TUoUOknWnNOrGU09aqv6UDGo= =M6M8 -END PGP SIGNATURE- ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Caching der eigenen Extension / paginierung mit chash
Nachtrag: Diese Mailingliste wird von den Profi-Entwicklern eher wenig gelesen. Erstens lesen die ungern Mailinglisten (habe ich mir sagen lassen :-) und wenn, dann vor allem die englische. Aber eigentlich sind die alle bei Slack (dem TYPO3 Chat). https://forger.typo3.org/slack Stell dort deine Fragen (auf englisch) - Fragen zu API und Extensionsprogrammierung sind dort oft besser aufgehoben. Gruß Peter > Am 30.09.2015 um 10:23 schrieb Michael Kasten: > > Signierter PGP-Teil > Hallo, > > könnte auch für andere hilfreich sein: > > //Die aktuelle Seite > $siteUrl = > \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL') . > 'index.php?id='; > $siteUrl = $siteUrl.intval($GLOBALS['TSFE']->id); > > //Ein Objekt um den Cache Hash zu erzeugen > > $params='=1=2'; > $chash = new \TYPO3\CMS\Frontend\Page\CacheHashCalculator; > $hashstring = $chash->generateForParameters('=1=2'); > > Zusammengebaut dann also: > $siteUrl.$params.'='.$hashstring > > http://localhost/diedeldum/index.php?id=31=1=2=d70b8db3ee05c4bef4f66ac867dc2ded > > Ich bin mir noch nicht sicher ob das die richtige Richtung ist, aber die > einzige die ich derzeit > kenne, das will ja nichts heißen. > > Wenn also Jemand sagt: 'Vollkommener Quatsch' dann bitte ich um Vorschläge :) > > > mit besten Grüßen > > > Am 30.09.2015 um 09:55 schrieb Michael Kasten: > > Hallo, > > > > ich lote hier immer noch meine Möglichkeiten aus: > > > > Nun mal der Versuch mit der Typolinkmethode: > > > > Bei der Suche in der Klassenreferenz gibt es diese Methode nicht, ich > > erhalte nur die > > Methoden: > > > > typoLink_URL und typolinkWrap > > > > typoLink_URL probier ich mal > > > > > > \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::typoLink_URL($conf); > > > > Damit erhalte ich den Fehler > > > > Call to undefined method XXX\XXX\ViewHelpers\XXX::typolink() > > > > > > why? weil: > > > > public function typoLink_URL($conf) { $this->typolink('|', $conf); return > > $this->lastTypoLinkUrl; } > > > > ist also auch nur ein Aufruf von typolink() > > > > Das ist dann wohl auch eine Sackgasse? > > > > > > > > ___ TYPO3-german mailing list > > TYPO3-german@lists.typo3.org > > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > > > > -- > Michael Kasten | http://m-kasten.de > Im wirklichen Leben gibt es kein [Strg]+[Z] > > ___ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german -- Xing: http://www.xing.com/profile/Peter_Linzenkirchner Web: http://www.typo3-lisardo.de Facebook: http://tinyurl.com/lisardo-multimedia ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Caching der eigenen Extension / paginierung mit chash
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hallo Peter, > durch das manuelle Erstellen der Links hebelst du einen großen Teil der > Typolink-Vorteile aus: > > > - kein RealUrl oder CoolUri mehr (also keine sprechenden URLs) - kein > Sprachumschalter - keine > sonstigen Parameter, die weitergereicht werden sollen gnaa, ja auch schon gemerkt, Problem ist aber ohne hin nun gelöst.(andere Mail in diesem Thread) > Wenn du also später andere Sprachen brauchst (oder einfach generell weitere > Parameter), muss du > deinen Code ändern. Und wenn du sprechende Urls brauchst, fängst du an, > RealUrl in deiner > Extension nachzubauen … Ich habe schon mal eine Installation übernommen, in > der das ein > Entwickler gemacht hat. Bevor ich RealUrl + Sprachen einrichten konnte musste > ich gute 10 > Extensions umschreiben … der Kunde war nicht amüsiert. > > Ich rate von diesem Vorgehen ab. Ich nun auch, danke :) mit besten Grüßen > > Gruß Peter > > >> Am 30.09.2015 um 10:23 schrieb Michael Kasten: >> >> Signierter PGP-Teil Hallo, >> >> könnte auch für andere hilfreich sein: >> >> //Die aktuelle Seite $siteUrl = >> \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL') . >> 'index.php?id='; >> $siteUrl = $siteUrl.intval($GLOBALS['TSFE']->id); >> >> //Ein Objekt um den Cache Hash zu erzeugen >> >> $params='=1=2'; $chash = new >> \TYPO3\CMS\Frontend\Page\CacheHashCalculator; >> $hashstring = $chash->generateForParameters('=1=2'); >> >> Zusammengebaut dann also: $siteUrl.$params.'='.$hashstring >> >> http://localhost/diedeldum/index.php?id=31=1=2=d70b8db3ee05c4bef4f66ac867dc2ded >> >> >> Ich bin mir noch nicht sicher ob das die richtige Richtung ist, aber die einzige die ich derzeit >> kenne, das will ja nichts heißen. >> >> Wenn also Jemand sagt: 'Vollkommener Quatsch' dann bitte ich um Vorschläge :) >> >> >> mit besten Grüßen >> >> >> Am 30.09.2015 um 09:55 schrieb Michael Kasten: >>> Hallo, >>> >>> ich lote hier immer noch meine Möglichkeiten aus: >>> >>> Nun mal der Versuch mit der Typolinkmethode: >>> >>> Bei der Suche in der Klassenreferenz gibt es diese Methode nicht, ich >>> erhalte nur die >>> Methoden: >>> >>> typoLink_URL und typolinkWrap >>> >>> typoLink_URL probier ich mal >>> >>> >>> \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::typoLink_URL($conf); >>> >>> Damit erhalte ich den Fehler >>> >>> Call to undefined method XXX\XXX\ViewHelpers\XXX::typolink() >>> >>> >>> why? weil: >>> >>> public function typoLink_URL($conf) { $this->typolink('|', $conf); return >>> $this->lastTypoLinkUrl; } >>> >>> ist also auch nur ein Aufruf von typolink() >>> >>> Das ist dann wohl auch eine Sackgasse? >>> >>> >>> >>> ___ TYPO3-german mailing list >>> TYPO3-german@lists.typo3.org >>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german >>> >> >> -- Michael Kasten | http://m-kasten.de Im wirklichen Leben gibt es kein >> [Strg]+[Z] >> >> ___ TYPO3-german mailing list >> TYPO3-german@lists.typo3.org >> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > > > > -- Xing: http://www.xing.com/profile/Peter_Linzenkirchner Web: > http://www.typo3-lisardo.de > Facebook: http://tinyurl.com/lisardo-multimedia > > ___ TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > - -- Michael Kasten | http://m-kasten.de Im wirklichen Leben gibt es kein [Strg]+[Z] -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.22 (GNU/Linux) iQEcBAEBAgAGBQJWC6fYAAoJEF1/iIvWnG8NoccH/RBBN1kKY9qTJ8ezuvub8WkP burirvE4+7gEqMbhg4PSm/K6PrLmD/p2mIWIQEPwD1+0/3gtQ/BExa6IhEiyJr6Y /LFRwqECIcaGXYub1FA8frJgpXh9NDv9tH+7pM7SIJcVETQ8IztPStAyIQ4MDbyv FnedZBGwpsAl3qvo+XcFDgrNZCaguLO6siZ/czrUSpU0qDNRRyQRtebrjin2eBaU 6Y1trFOKBjo2Xy9gQSfF+lWwHCgPdhj59x9D36dNYI/MNO/ZARjjSzmMENIASGAo +IpZYYZasedn/kNNZNPIhW/MCOFCMmG0f0bzilX7tMwdrKc/50O5urx4fbNd91c= =jmB8 -END PGP SIGNATURE- ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Caching der eigenen Extension / paginierung mit chash / gelöst
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hallo Peter, > ich kann mir nicht vorstellen, dass man die Methode statisch aufrufen kannst. > Das kann nicht > gehen … jep, ich bin da zu tief eingestiegen weil ich dachte ich kann das statisch aufrufen. > Ich habe das in einem Viewhelper noch nicht gemacht, aber wenn, dann etwa so: > > $conf = array( … ); $cObjRenderer = new > \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer(); > $cObjRenderer->typoLink_URL($conf); > Aber ob das ausreicht, um alle Abhängigkeiten aufzulösen, das weiß ich nicht. doch sieht gut aus: $conf = array(); $conf['useCacheHash'] = 1; $conf['parameter'] = intval($GLOBALS['TSFE']->id); $conf['returnLast'] = 'url'; $cObjRenderer = new \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer(); $cObjRenderer->typoLink_URL($conf); > Ich würde mir das PageBrowser-Widget von fluid aus dem TYPO3-Core kopieren > und es in meine > Extension rein laden und dann so modifizieren, wie ich das brauche. Ein > Beispiel findet sich > hier: > http://blog.teamgeist-medien.de/2014/01/extbase-fluid-widget-paginate-viewhelper-mit-array-unterstuetzung.html > > das kann man sicherlich anpassen. Ich hatte mir auch Viewhelper aus anderen Extensions angesehen, hatte aber eher den Eindruck das sich gerade hier eher Individuallösungen tummelten > Alternativ ist es auch möglich, dem Core-Widget neue Templates zuzuweisen, > evtl. reicht das ja. > http://www.npostnik.de/typo3/eigenes-template-im-fluid-pagination-widget/ - -notiz an mich- Und ein Dankeschön an Peter! > > Ansonsten kann man in den URL-Viewhelpern von Fluid sehen, wie in den > Viewhelpern URLs > aufgebaut werden. > > Gruß Peter > > > >> Am 30.09.2015 um 09:55 schrieb Michael Kasten: >> >> Signierter PGP-Teil Hallo, >> >> ich lote hier immer noch meine Möglichkeiten aus: >> >> Nun mal der Versuch mit der Typolinkmethode: >> >> Bei der Suche in der Klassenreferenz gibt es diese Methode nicht, ich >> erhalte nur die >> Methoden: >> >> typoLink_URL und typolinkWrap >> >> typoLink_URL probier ich mal >> >> >> \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::typoLink_URL($conf); >> >> Damit erhalte ich den Fehler >> >> Call to undefined method XXX\XXX\ViewHelpers\XXX::typolink() >> >> >> why? weil: >> >> public function typoLink_URL($conf) { $this->typolink('|', $conf); return >> $this->lastTypoLinkUrl; } >> >> ist also auch nur ein Aufruf von typolink() >> >> Das ist dann wohl auch eine Sackgasse? >> >> >> >> -- Michael Kasten | http://m-kasten.de Im wirklichen Leben gibt es kein >> [Strg]+[Z] >> >> ___ TYPO3-german mailing list >> TYPO3-german@lists.typo3.org >> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > > > > -- Xing: http://www.xing.com/profile/Peter_Linzenkirchner Web: > http://www.typo3-lisardo.de > Facebook: http://tinyurl.com/lisardo-multimedia > > ___ TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > - -- Michael Kasten | http://m-kasten.de Im wirklichen Leben gibt es kein [Strg]+[Z] -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.22 (GNU/Linux) iQEcBAEBAgAGBQJWC6dIAAoJEF1/iIvWnG8Njl0H+QGqWRJFlVLXG1zadJsk8tZl /uQrDqx/KkZO0Umi9mCbfwoRxqYGMot4pIZ20fBP5Kd4XjC6pvQfmxyzbrfMVJTV 6xXjGkQP2xPVzjU+f1y9TULicfEJbBMmTm4PnC85FkbB0XETq3picolsphHTz85A H5b1xqymB0HDRjSuwpOu2kFQ69j7PFGaGREtcC+7Dg9GqHwrVKfndXskDcNFscPn QmjGQTEUfIU3syZqgAe7MVgv7/mXr633SaDoRGzQt8q0LmqMYtuNp+RYmbA950s/ nKR7ASxBaJnMO/dhlSHiHC4Q/Kb7IxCPVRKc/bWLIEMreGzhQ4tmmXSaOHZ+SHE= =oa+M -END PGP SIGNATURE- ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Caching der eigenen Extension
Hallo, ich bin an der Stelle einen anderen Weg gegangen und habe Extbase-Caching gemacht. Vielleicht wäre das auch eher eine Alternative für Dich. Vorteil ist, dass Du Dich nicht mit dem cHash herumschlagen musst, sondern das Caching anhand eines Identifiers machst, den Du selbst berechnen kannst. Damit habe ich komplexe Datenbank-Queries gecached. Ein Pseudo-Beispiel innerhalb der Action: — snip -- $cachingDuration = 3600; $cacheIdentifier = sha1(json_encode(array( "page" => $page, "param2" => $param2, "param3" => $param3 ))); if (($_items = $this->cache->get($cacheIdentifier)) === false) { $this->logger->warning("Cache not hit."); $response = $this->getAPIResult('myModel'); $json = json_decode($response->getBody(), true); $this->cache->set($cacheIdentifier, $json, array("indexAction"), $cachingDuration); } else { $this->logger->warning("Cache hit."); } — snap — Gruß Arne > Am 29.09.2015 um 08:56 schrieb Michael Kasten: > > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > Hallo Liste, > > ich habe eine Extension mit mehreren Plugins, deren Actions ich bisher als > non_cachable gesetzt > habe, nun ist das nicht gerade Ressourcenschonend wenn man dann einige dieser > Plugins auf einer > Seite einbindet. (TYPO3 6.2.15) > > Damit ich die betroffenen Actions cachen kann brauche ich nun aber auch die > entsprechenden chash > Werte in meiner Paginierung. > > Mein Problem: Ich finde ein Haufen Vorschläge die aber mittlerweile obsolete > sind > Nun habe ich also versucht die entsprechenden Funktionen aus der > Klassenreferenz zu ermitteln, > > $siteUrl = > \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL') . > 'index.php?'; > > Klappt soweit > > $cacheHashArray = > \TYPO3\CMS\Frontend\Page\CashHashCalculator::getRelevantParameters( > \TYPO3\CMS\Core\Utility\GeneralUtility::implodeArrayForUrl('', $query)); > > Spätestens hier ist Schluss, da die Methode getRelevantParameters nicht > gefunden wird, allerdings > ist mir nicht klar warum, da ich der Meinung bin mit dem richtigen Pfad auf > die Klasse zu > referenzieren. > > Jemand eine Idee wo mein Denkfehler liegt? > > > mit besten Grüßen > > - -- > Michael Kasten | http://m-kasten.de > Im wirklichen Leben gibt es kein [Strg]+[Z] > -BEGIN PGP SIGNATURE- > Version: GnuPG v2.0.22 (GNU/Linux) > > iQEcBAEBAgAGBQJWCjYyAAoJEF1/iIvWnG8NaToH/RdxGrwMpWxIDpzJoH45n2B6 > j9I25FeiP/eU3mjutgkZozNhxFS5NNxcXOIzR00Pb+xRMZt6ZJ4OtXLKintDI6/V > uNolkXsPr/aWEFg3pfaW43q58c3nBB06nIgGKDvaf3XDPeudyOr2919qBkIXDo0B > xYH0dReeOg/vlwfph7SL4yVJ3zGwS/+wXKJtdl/9SjWg5xCXjmksRdFsP9AMa8p8 > xOcWYJmDJZqISY5pp0JT1HM1cPJNEiZGBx4qU1rwlKMT3b01ULqPAJw6sCcTonh6 > 75wO5RhZXSpPb4P2o8BhWM+Zb8yySSoK79CSr+PbtagPXn48T3YDdMd2cTy+gDE= > =7HuE > -END PGP SIGNATURE- > ___ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
[TYPO3-german] Caching der eigenen Extension
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hallo Liste, ich habe eine Extension mit mehreren Plugins, deren Actions ich bisher als non_cachable gesetzt habe, nun ist das nicht gerade Ressourcenschonend wenn man dann einige dieser Plugins auf einer Seite einbindet. (TYPO3 6.2.15) Damit ich die betroffenen Actions cachen kann brauche ich nun aber auch die entsprechenden chash Werte in meiner Paginierung. Mein Problem: Ich finde ein Haufen Vorschläge die aber mittlerweile obsolete sind Nun habe ich also versucht die entsprechenden Funktionen aus der Klassenreferenz zu ermitteln, $siteUrl = \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL') . 'index.php?'; Klappt soweit $cacheHashArray = \TYPO3\CMS\Frontend\Page\CashHashCalculator::getRelevantParameters( \TYPO3\CMS\Core\Utility\GeneralUtility::implodeArrayForUrl('', $query)); Spätestens hier ist Schluss, da die Methode getRelevantParameters nicht gefunden wird, allerdings ist mir nicht klar warum, da ich der Meinung bin mit dem richtigen Pfad auf die Klasse zu referenzieren. Jemand eine Idee wo mein Denkfehler liegt? mit besten Grüßen - -- Michael Kasten | http://m-kasten.de Im wirklichen Leben gibt es kein [Strg]+[Z] -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.22 (GNU/Linux) iQEcBAEBAgAGBQJWCjYyAAoJEF1/iIvWnG8NaToH/RdxGrwMpWxIDpzJoH45n2B6 j9I25FeiP/eU3mjutgkZozNhxFS5NNxcXOIzR00Pb+xRMZt6ZJ4OtXLKintDI6/V uNolkXsPr/aWEFg3pfaW43q58c3nBB06nIgGKDvaf3XDPeudyOr2919qBkIXDo0B xYH0dReeOg/vlwfph7SL4yVJ3zGwS/+wXKJtdl/9SjWg5xCXjmksRdFsP9AMa8p8 xOcWYJmDJZqISY5pp0JT1HM1cPJNEiZGBx4qU1rwlKMT3b01ULqPAJw6sCcTonh6 75wO5RhZXSpPb4P2o8BhWM+Zb8yySSoK79CSr+PbtagPXn48T3YDdMd2cTy+gDE= =7HuE -END PGP SIGNATURE- ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Caching der eigenen Extension
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Am 29.09.2015 um 13:24 schrieb Peter Linzenkirchner: > Hallo Michael, > >> $siteUrl = >> \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL') . >> 'index.php?‘; > > Das liest sich so, als würdest du versuchen, die Links im Controller-PHP zu > bauen - das ist m. > E. eher unüblich. Normal wäre in der View, also innerhalb der > Fluid-Templates. Die Viewhelper, > die dort zur Verfügung stehen, erstellen die Typolinks automatisch mit dem > cHash - du müsstest > dich also darum gar nicht kümmern. In den Viewhelpern gibt es auch einen > fertigen PageBrowser, > den du nur noch anwenden musst. öhh nö ich will das innerhalb meines Viewhelpers verwenden der die Links der Paginierung erzeugt, der Standard Viewhelper hat hier nicht ausgereicht. > Ansonsten gibt es die entsprechenden Methoden der pi_based-Extensions > natürlich noch: > http://api.typo3.org/typo3cms/current/html/class_t_y_p_o3_1_1_c_m_s_1_1_frontend_1_1_plugin_1_1_abstract_plugin.html#aeabd57e4ae43ffc97aababcf079d4b9b > > in der Plugin-Abstract-Class (die ich allerdings bisher nur in pi_based-Extensions angewendet habe - aber wenn du eh das MVC-Pattern durchbrechen willst, dann warum nicht. Die Methoden werden in späteren TYPO3-Versionen auch nicht verschwinden, falls du da Angst hast. Ne nix pibase > Weiter gibt es noch den Typolink: > http://api.typo3.org/typo3cms/current/html/class_t_y_p_o3_1_1_c_m_s_1_1_frontend_1_1_content_object_1_1_content_object_renderer.html#acd6231ef728bd963126f41e0c04010a6 > in der Content Object Class - das ist die Methode, die den kompletten > Typolink rendert, sie > steht hinter dem Typolink von Typoscript. Wäre dann mein zweiter Ansatz gewesen > Diese Klasse wird aber üblicherweise nicht im Controller aufgerufen, deshalb > hier eine Quelle, > die erläutert, wie du an die Methode ran kommst: > http://lbrmedia.net/codebase/Eintrag/extbase-contentobject-in-controller-nutzen/ will nix im Controller verwenden, s.o. aber vielleicht finde ich da ja was weiterführendes > Vielleicht hilft es weiter. genau mit besten Grüßen > > Gruß Peter > > > -- Xing: http://www.xing.com/profile/Peter_Linzenkirchner Web: > http://www.typo3-lisardo.de > Facebook: http://tinyurl.com/lisardo-multimedia > > ___ TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > - -- Michael Kasten | http://m-kasten.de Im wirklichen Leben gibt es kein [Strg]+[Z] -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.22 (GNU/Linux) iQEcBAEBAgAGBQJWCn1kAAoJEF1/iIvWnG8Nu0cH/jaZ2oLuL3Top+H/1jbem1zq skZfR9f8HRnsS2u8r6xg6pJJDYSdxPm4Yd6ZTve1E1wnJbKvNjRURYfi0QFLR+Wd SlnrUb5hHu+KySC8FWuQmrlqDmqU8vJaF44tKLwQ39xzKwv/cH8bmFhEbaeMokai 0nnmhTzR6QakdOGvRsEpKBYzcUawp3QIadzzFnSWbzYQs4kRsc6nBfIa9Ve+T16o cWCd/xrqF/G2y0QnVtOTbt3MN7RBHNzt95WJNoui2hVmkdHf9cWntOcCpVetRyJS mx/cyatRusm4ui9eJQGHLa2M15wdaLdaPSt88c4X1SdlggBp7iKV1XLk2oiLHYA= =l5JJ -END PGP SIGNATURE- ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Caching der eigenen Extension
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hallo Arne, danke für den Hinweis, allerdings würde ich gern verstehen wo mein Fehler liegt, bevor ich nun einen anderen Weg einschlage. Wenn ich das richtig sehe, dann gibst du der Action ja ein Caching von einer Stunde mit, ich glaube nicht das dieser Ansatz mein Problem löst, das FE Plugin soll ja weiterhin gecached werden nur reagiert das somit nicht auf die Paginierung, klar geht das mit einem no_cache=1 am Link, aber naja. Ich möchte also die Links meiner Paginierung durch TYPO3 erstellen lassen um von den dann generierten cHahes zu profitieren. Nur das ich eben Probleme habe auf die passenden Methoden zugreifen zu können. mit besten Grüßen Am 29.09.2015 um 09:47 schrieb Arne-Kolja Bachstein: > Hallo, > > ich bin an der Stelle einen anderen Weg gegangen und habe Extbase-Caching > gemacht. Vielleicht > wäre das auch eher eine Alternative für Dich. Vorteil ist, dass Du Dich nicht > mit dem cHash > herumschlagen musst, sondern das Caching anhand eines Identifiers machst, den > Du selbst > berechnen kannst. Damit habe ich komplexe Datenbank-Queries gecached. > > Ein Pseudo-Beispiel innerhalb der Action: > > — snip -- $cachingDuration = 3600; $cacheIdentifier = sha1(json_encode(array( > "page" => > $page, "param2" => $param2, "param3" => $param3 ))); > > if (($_items = $this->cache->get($cacheIdentifier)) === false) { > $this->logger->warning("Cache > not hit."); > > $response = $this->getAPIResult('myModel'); $json = > json_decode($response->getBody(), true); > > $this->cache->set($cacheIdentifier, $json, array("indexAction"), > $cachingDuration); } else { > $this->logger->warning("Cache hit."); } — snap — > > Gruß > > Arne > >> Am 29.09.2015 um 08:56 schrieb Michael Kasten: >> > Hallo Liste, > > ich habe eine Extension mit mehreren Plugins, deren Actions ich bisher als > non_cachable > gesetzt habe, nun ist das nicht gerade Ressourcenschonend wenn man dann > einige dieser Plugins > auf einer Seite einbindet. (TYPO3 6.2.15) > > Damit ich die betroffenen Actions cachen kann brauche ich nun aber auch die > entsprechenden > chash Werte in meiner Paginierung. > > Mein Problem: Ich finde ein Haufen Vorschläge die aber mittlerweile obsolete > sind Nun habe ich > also versucht die entsprechenden Funktionen aus der Klassenreferenz zu > ermitteln, > > $siteUrl = > \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL') . > 'index.php?'; > > Klappt soweit > > $cacheHashArray = > \TYPO3\CMS\Frontend\Page\CashHashCalculator::getRelevantParameters( > \TYPO3\CMS\Core\Utility\GeneralUtility::implodeArrayForUrl('', $query)); > > Spätestens hier ist Schluss, da die Methode getRelevantParameters nicht > gefunden wird, > allerdings ist mir nicht klar warum, da ich der Meinung bin mit dem richtigen > Pfad auf die > Klasse zu referenzieren. > > Jemand eine Idee wo mein Denkfehler liegt? > > > mit besten Grüßen > >> ___ TYPO3-german mailing list >> TYPO3-german@lists.typo3.org >> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > > ___ TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > - -- Michael Kasten | http://m-kasten.de Im wirklichen Leben gibt es kein [Strg]+[Z] -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.22 (GNU/Linux) iQEcBAEBAgAGBQJWCmaVAAoJEF1/iIvWnG8N9OQIAJcypAsOiPUkQMxWTUt7c9AC PwevoeFcdSwDlHADBKduM2SvZYKBh9PRQVhezymMrJSDiezkHtg2gylwSFzLUi2U m2IM3UdKWrY9NUGc/K/zSobktjZ9VwYWrKJcNit9ZfV6VCxVCXqKttlU1ms0fjFf gwRqNXpn0ZK3RnUi8EXW14Mld6DTsX387ikjj+7rLXiJ/Fg1SrTIDqi1xYeLx46e aimN3HoD/Qy+inlmiDa+0E9bFI4DCtdQ8F9D2gRv3ca3VdCsUSKtETXu0FXlW5uj oPGUdayzxkR4uPXA2LPbQ5yAL5UHP04HtrVLVQA92hY8uMkg4afgw9qepgjeon8= =c4S2 -END PGP SIGNATURE- ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Caching der eigenen Extension
Hallo Michael, > $siteUrl = > \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL') . > 'index.php?‘; Das liest sich so, als würdest du versuchen, die Links im Controller-PHP zu bauen - das ist m. E. eher unüblich. Normal wäre in der View, also innerhalb der Fluid-Templates. Die Viewhelper, die dort zur Verfügung stehen, erstellen die Typolinks automatisch mit dem cHash - du müsstest dich also darum gar nicht kümmern. In den Viewhelpern gibt es auch einen fertigen PageBrowser, den du nur noch anwenden musst. Ansonsten gibt es die entsprechenden Methoden der pi_based-Extensions natürlich noch: http://api.typo3.org/typo3cms/current/html/class_t_y_p_o3_1_1_c_m_s_1_1_frontend_1_1_plugin_1_1_abstract_plugin.html#aeabd57e4ae43ffc97aababcf079d4b9b in der Plugin-Abstract-Class (die ich allerdings bisher nur in pi_based-Extensions angewendet habe - aber wenn du eh das MVC-Pattern durchbrechen willst, dann warum nicht. Die Methoden werden in späteren TYPO3-Versionen auch nicht verschwinden, falls du da Angst hast. Weiter gibt es noch den Typolink: http://api.typo3.org/typo3cms/current/html/class_t_y_p_o3_1_1_c_m_s_1_1_frontend_1_1_content_object_1_1_content_object_renderer.html#acd6231ef728bd963126f41e0c04010a6 in der Content Object Class - das ist die Methode, die den kompletten Typolink rendert, sie steht hinter dem Typolink von Typoscript. Diese Klasse wird aber üblicherweise nicht im Controller aufgerufen, deshalb hier eine Quelle, die erläutert, wie du an die Methode ran kommst: http://lbrmedia.net/codebase/Eintrag/extbase-contentobject-in-controller-nutzen/ Vielleicht hilft es weiter. Gruß Peter -- Xing: http://www.xing.com/profile/Peter_Linzenkirchner Web: http://www.typo3-lisardo.de Facebook: http://tinyurl.com/lisardo-multimedia ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Caching der eigenen Extension
Hallo Arne, ich bin an der Stelle einen anderen Weg gegangen und habe Extbase-Caching gemacht. Vielleicht wäre das auch eher eine Alternative für Dich. Vorteil ist, dass Du Dich nicht mit dem cHash herumschlagen musst, sondern das Caching anhand eines Identifiers machst, den Du selbst berechnen kannst. Damit habe ich komplexe Datenbank-Queries gecached. Habe hier gerade mitgelesen und folgende Frage: Auch ich habe eine Extbase Extension die sehr ressourcenhungrig ist. Ohne Cache (und der wird regelmäßig geleert) dauert das Generieren einer Extension-Seite (und davon gibt es ~5.000) gute 10 - 20 Sekunden. Das Problem ist: Leert der Redakteuer den "Seitencache", weil er nur mal eben einen Seiteninhalt geändert hat, fliegt ja automatisch *alles* aus dem Cache raus, und die ganzen Seiten der Extenion müssen neu generiert werden. Welche Vorteile kann mir "Extbase-Caching" in diesem Falle bieten? Grüße, Jan ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german