[Frage] TYPO3\CMS\Core\Utility\GeneralUtility\GeneralUtility not found TYPO3-Version: 6.2.7

  • jp_dev jp_dev
    T3PO
    0 x
    28 Beiträge
    0 Hilfreiche Beiträge
    13. 02. 2015, 15:37

    Hallo,

    habe folgendes Problem:
    Ich rufe per ajax eine selbst angelegte Datei Ordner "Classes/Utility" auf. Hir möchte ich nun eine Repository-Abfrage starten.

    Leider scheitere ich bereits an den ersten Metern:

    1. <?php
    2. namespace TYPO3\MyExtension\Utility;
    3.  
    4. class doAjax {
    5. private $arrData;
    6. protected $Repository;
    7.  
    8. public function __construct() {
    9. $this->$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
    10. $this->$Repository = $objectManager->create('Vendor\Myextension\Domain\Repository\AccessoryRepository');
    11. }
    12. ...

    Mein Ajax gibt im Post folgendes zurück:

    1. <br />
    2. <b>Fatal error</b>: Class 'TYPO3\CMS\Core\Utility\GeneralUtility\GeneralUtility' not found in <b>C:\xampp\htdocs\seite\typo3conf\ext\myextension\Classes\Utility\doAjax.php</b> on line <b>9</b><br />

    Edit:
    hab einen Schreibfehler gefunden, leider ändert das nix am Ergebnis

    1. <?php
    2. namespace TYPO3\MyExtension\Utility;
    3.  
    4. class doAjax {
    5. private $arrData;
    6. protected $Repository;
    7.  
    8. public function __construct() {
    9. $this->$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
    10. $this->$Repository = $objectManager->create('Vendor\Myextension\Domain\Repository\AccessoryRepository');
    11. }
    12. ...


  • 1
  • jp_dev jp_dev
    T3PO
    0 x
    28 Beiträge
    0 Hilfreiche Beiträge
    16. 02. 2015, 09:47

    Leider bin ich immer noch nicht weiter gekommen.
    Aus einigen andren Extensions habe ich jetzt einen etwas andren aufbau gewählt, aber gehen tut es immer noch nicht:

    1. <?php
    2. namespace TYPO3\XXXproducts\Utility;
    3.  
    4. use TYPO3\CMS\Core\Utility\GeneralUtility;
    5. class doCompare {
    6. private $arrData;
    7. protected $Repository;
    8.  
    9. public function __construct() {
    10. $this->$objectManager = GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager');
    11. $this->$Repository = $objectManager->create('XXXProducts\XXXproducts\Domain\Repository\XXXProductRepository');
    12. }

    1. <br />
    2. <b>Fatal error</b>: Class 'TYPO3\CMS\Core\Utility\GeneralUtility' not found in <b>C:\xampp\htdocs\seite\typo3conf\ext\myextension\Classes\Utility\doCompare.php</b> on line <b>10</b><br />

    Interessanter weise wird der Fehler für die Aufrufszeile und nicht die Use-Zeile angezeigt.

    Hat irgendjemand irgendeine Idee was hier falsch läuft oder eine alternativ Lösung???

  • jenshh jenshh
    Padawan
    0 x
    37 Beiträge
    0 Hilfreiche Beiträge
    30. 04. 2016, 15:05

    Sorry, dein Post hat mir zumindest geholfen, da ich das gleiche Problem hatte.
    Dein Problem waren fehlende doppel \\ und zu viele $. Es muss wie folgt aussehen:

    1. $this->objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
    2. $this->$Repository = $objectManager->create('\\Vendor\\Myextension\\Domain\\Repository\\AccessoryRepository');

    So funktioniert es jedenfalls bei mir.

  • freshman17 freshman1...
    Sternenflotten-Admiral
    0 x
    218 Beiträge
    2 Hilfreiche Beiträge
    02. 05. 2016, 10:09

    Dem Fehler nach

    1. <b>Fatal error</b>: Class 'TYPO3\CMS\Core\Utility\GeneralUtility' not found in <b>C:\xampp\htdocs\seite\typo3conf\ext\myextension\Classes\Utility\doCompare.php</b> on line <b>10</b><br />
    wird nach der Klasse in deinem Extensionordner gesucht. Da fehlt einfach nur ein Slash am Anfgang, muss also so heißen
    1. use \TYPO3\CMS\Core\Utility\GeneralUtility;

    Desweiteren ist die Nutzung der Methode create nicht zu empfehlen. Diese ist veraltet und wird ab TYPO3 6.3 entfernt. Nutzte die get-Methode stattdessen
    1. $objectManager->get('Foo\Bar');

  • 1