[TYPO3-german] Instanzierung von Klassen in anderen Extensions

Falk Gebauer fgebauer at 3pc.de
Fri Aug 10 14:48:20 CEST 2018


Versuchs mal so:

** @var TypoScriptFrontendController $tsfe */
$tsfe = GeneralUtility::makeInstance(TypoScriptFrontendController::class, $GLOBALS['TYPO3_CONF_VARS'], 0, 0);
$tsfe->connectToDB();
$tsfe->initFEuser();
$tsfe->determineId();
$tsfe->initTemplate();
$tsfe->getConfigArray();

In $tsfe->tmpl->setup findest du dann z.B. das Typoscript-Setup.


> Am 10.08.2018 um 14:45 schrieb Rainer Schleevoigt <rainer.schleevoigt at uni-hamburg.de>:
> 
> Hallo Falk,
> 
> ich will lediglich eine textuelle Sitemap generieren, aber nicht aus dem Seitenbaum (es gibt nur einen Zweig), sondern dynamisch aus dem SolrIndex, dazu verwende ich diese Solarium-Extension, die auch der Controler verwendet. In dem EID brauche ich also nur eine Instanz von Solarium (habe ich nun schon)  und einen Zugriff auf mein TS, in dem der Endpunkt des SolrIndex steht.
> 
> 
> Am 10.08.18 um 14:38 schrieb Falk Gebauer:
>> Dein Beispiel funktioniert out-of-the-box nur im Frontend-Context.
>> 
>> Wenn du im EID-Context Typoscript, Extbase o.ä. brauchst, musst du dir diese Fit. selbst initialisieren, je nachdem wieviel Frontend-Fkt. du brauchst, solltest du erwägen, statt EID ein Extbase-Plugin zu schreiben.
> das wollte ich möglichst vermeiden. ;-)
> 
> Hast Du eine Idee?
> 
> Gruss Rainer
>> Ungefähr so:
>> 
>> /** @var TypoScriptFrontendController $tsfe */
>> $tsfe = GeneralUtility::makeInstance(TypoScriptFrontendController::class, $GLOBALS['TYPO3_CONF_VARS'], 0, 0);
>> $tsfe->connectToDB();
>> $tsfe->initFEuser();
>> $tsfe->determineId();
>> $tsfe->initTemplate();
>> $tsfe->getConfigArray();
>> 
>> In $tsfe->tmpl->setup findest du dann z.B. das Typoscript-Setup.
>> 
>> 
>> 
>> 
>> 
>>> Am 10.08.2018 um 13:54 schrieb Rainer Schleevoigt <rainer.schleevoigt at uni-hamburg.de>:
>>> 
>>> Das ist so und klappt soweit.
>>> 
>>> Mit
>>> 
>>> /use Solarium\Client;////use Solarium\Exception\HttpException;////use TYPO3\CMS\Core\Utility\GeneralUtility;////$Solr = GeneralUtility::makeInstance(Solarium\Client::class);/
>>> 
>>> komme ich jetzt an das Solr ran.
>>> 
>>> Mit
>>> 
>>> $ConfigurationManager = GeneralUtility::makeInstance(TYPO3\CMS\Extbase\Configuration\ConfigurationManager::class);
>>> var_dump($ConfigurationManager);
>>> $TS = $ConfigurationManager->getConfiguration(\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_FULL_TYPOSCRIPT);
>>> var_dump($TS);
>>> 
>>> versuche ich an das Typoscript ranzukommen.
>>> 
>>> Schon der erste var_dum sagt mir, dass da was nicht stimmt:
>>> 
>>> object(TYPO3\CMS\Extbase\Configuration\ConfigurationManager)#270 (3) { ["objectManager":protected]=> NULL ["concreteConfigurationManager":protected]=> NULL ["environmentService":protected]=> NULL }
>>> 
>>> Habe das von hier: https://www.andrerinas.de/tutorials/typo3-typoscipt-settings-mit-configurationmanager-bekommen.html
>>> 
>>> Was läuft da nur schief? Wieder ein TYPO?
>>> 
>>> Gruss Rainer
>>> 
>>> Am 10.08.18 um 13:22 schrieb Falk Gebauer:
>>>> Normalerweise sollte ja ein `composer require solarium/solarium` im Root von Typo3 reichen. Damit steht das Paket in der composer.json von Typo3 und die Autloading-Infos sollten aktualisiert sein.
>>>> 
>>>> Was sagt denn `composer dumpautoload` im Typo3-Root?
>>>> 
>>>> 
>>>>> Am 10.08.2018 um 13:16 schrieb Rainer Schleevoigt <rainer.schleevoigt at uni-hamburg.de>:
>>>>> 
>>>>> Hallo Falk,
>>>>> 
>>>>> 
>>>>> Am 10.08.18 um 13:14 schrieb Falk Gebauer:
>>>>>> Hallo Rainer,
>>>>>> 
>>>>>> die kurze Antwort: $sol und $solr sind nicht dasselbe. ;-)
>>>>> total!
>>>>>> Aber ich gehe mal davon aus, dass dieser Schreibfehler nur in der Mail existiert.
>>>>> leider nein.  ;-)
>>>>>> Bei Typo3 mit Composer: Die autoloading Informationen müssen in der composer.json sein.
>>>>>> Test: composer dumpautoload
>>>>> Ich arbeite mit composer. In welcher composer.josn, der von Solarium?
>>>>>> Bei Typo3 ab 8 ohne Composer: Das Extensionverzeichnis wird bei Extension-Installation gescannt und eine classmap generiert.
>>>>>> Test: php typo3/cli_dispatch.phpsh extbase extension:dumpclassloadinginformation
>>>>>> 
>>>>>> Eventuell einfach die Extension mit dem Solarium nochmal installieren.
>>>>>> 
>>>>>> Gruß Falk
>>>>>> 
>>>>>> 
>>>>>>> Am 10.08.2018 um 13:01 schrieb Rainer Schleevoigt <rainer.schleevoigt at uni-hamburg.de>:
>>>>>>> 
>>>>>>> Hallo Freunde des guten Codes,
>>>>>>> 
>>>>>>> in einer Extension möchte ich in einem eID-Script beispielsweise Solarium instanziieren:
>>>>>>> 
>>>>>>> ``` $sol = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(Solarium\Client::class);var_dump($solr);
>>>>>>> 
>>>>>>> ```
>>>>>>> 
>>>>>>> Das war mein erster, laienhafter Versuch. $solr ist NULL.
>>>>>>> 
>>>>>>> Ich dachte, der ganze T3-Prozess stellt alle Klassen bereit … Woran hängt es?
>>>>>>> 
>>>>>>> Codestrong!
>>>>>>> 
>>>>>>> --
>>>>>>> Dipl.-Ing. Rainer Schleevoigt
>>>>>>> Staats- und Universitaetsbibliothek Hamburg Carl von Ossietzky
>>>>>>> IT, Forschung und Entwicklung
>>>>>>> Hamburg Open Science
>>>>>>> Von-Melle-Park 3, 20146 Hamburg
>>>>>>> Telefon (040) 4283 88870 | Fax (040) 41345070
>>>>>>> Mail: rainer.schleevoigt at sub.uni-hamburg.de
>>>>>>> http://www.sub.uni-hamburg.de
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> TYPO3-german mailing list
>>>>>>> TYPO3-german at lists.typo3.org
>>>>>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>>>>>> _______________________________________________
>>>>>> TYPO3-german mailing list
>>>>>> TYPO3-german at lists.typo3.org
>>>>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>>>>> --
>>>>> Dipl.-Ing. Rainer Schleevoigt
>>>>> Staats- und Universitaetsbibliothek Hamburg Carl von Ossietzky
>>>>> IT, Forschung und Entwicklung
>>>>> Hamburg Open Science
>>>>> Von-Melle-Park 3, 20146 Hamburg
>>>>> Telefon (040) 4283 88870 | Fax (040) 41345070
>>>>> Mail: rainer.schleevoigt at sub.uni-hamburg.de <mailto:rainer.schleevoigt at sub.uni-hamburg.de>
>>>>> http://www.sub.uni-hamburg.de <http://www.sub.uni-hamburg.de/>
>>>>> 
>>>>> _______________________________________________
>>>>> TYPO3-german mailing list
>>>>> TYPO3-german at lists.typo3.org <mailto:TYPO3-german at lists.typo3.org>
>>>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german <http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german>
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> TYPO3-german mailing list
>>>>> TYPO3-german at lists.typo3.org
>>>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>>> --
>>> Dipl.-Ing. Rainer Schleevoigt
>>> Staats- und Universitaetsbibliothek Hamburg Carl von Ossietzky
>>> IT, Forschung und Entwicklung
>>> Hamburg Open Science
>>> Von-Melle-Park 3, 20146 Hamburg
>>> Telefon (040) 4283 88870 | Fax (040) 41345070
>>> Mail: rainer.schleevoigt at sub.uni-hamburg.de
>>> http://www.sub.uni-hamburg.de
>>> 
>>> _______________________________________________
>>> TYPO3-german mailing list
>>> TYPO3-german at lists.typo3.org
>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>> 
>> 
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
> 
> --
> Dipl.-Ing. Rainer Schleevoigt
> Staats- und Universitaetsbibliothek Hamburg Carl von Ossietzky
> IT, Forschung und Entwicklung
> Hamburg Open Science
> Von-Melle-Park 3, 20146 Hamburg
> Telefon (040) 4283 88870 | Fax (040) 41345070
> Mail: rainer.schleevoigt at sub.uni-hamburg.de <mailto:rainer.schleevoigt at sub.uni-hamburg.de>
> http://www.sub.uni-hamburg.de <http://www.sub.uni-hamburg.de/>
> 
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org <mailto:TYPO3-german at lists.typo3.org>
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german <http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german>


More information about the TYPO3-german mailing list