Menu

BAV_AutoloaderException Notices

Bugreport
2007-04-11
2013-04-25
  • Nobody/Anonymous

    Hallo,

    ich bekomme beim Einsatz der neuen BAV Version folgende Meldungen:

    Notice: BAV_AutoloaderException caused in : in **********/typo3conf/ext/BestellFormular/pi1/BAV/classes/autoloader/BAV_Autoloader.php on line 254

    Notice: Class ux_tx_moceaffiliatecookie_pi1 was not registered. in **********/typo3conf/ext/BestellFormular/pi1/BAV/classes/autoloader/BAV_Autoloader.php on line 260

    Ich benutze BAV in einer Typo3-Extension. Ich habe die neuste Version installiert und in meiner Extensions Klasse wie in der example.php gezeigt eingebunden.

    kleiner Auszug:

    class tx_BestellFormular_pi1 extends tslib_pibase {

        var $cObj;
        var $prefixId = "tx_BestellFormular_pi1";        // Same as class name
        var $scriptRelPath = "pi1/class.tx_BestellFormular_pi1.php";    // Path to this script relative to the extension dir.
        var $extKey = "BestellFormular";    // The extension key.
        var $enableFields;
        /**
         * [Put your description here]
         */
        function main($content,$conf)    {
            $this->conf=$conf;
    ...
    ...
    ...
          require_once dirname(__FILE__)."/BAV/classes/autoloader/BAV_Autoloader.php";

          BAV_Autoloader::add('BAV/classes/dataBackend/exception/BAV_DataBackendException.php');
          BAV_Autoloader::add('BAV/classes/dataBackend/exception/BAV_DataBackendException_BankNotFound.php');
         
          BAV_Autoloader::add('BAV/classes/dataBackend/BAV_DataBackend_File.php');
          $databack = new BAV_DataBackend_File();
    ...
    ...

    die Meldungen erscheinen schon nach dem Aufruf des require_once...

    Irgendwelche Ideen oder Vorschläge zur Lösung des Problems?

    Die Typo3 Version müsste noch das alte PHP4 "Klassen/Objekte-Modell" verwenden, kann es da zu Problemen kommen mit dem Autoloader (PHP5) ?

     
    • Markus Malkusch

      Markus Malkusch - 2007-04-12

      > Notice: Class ux_tx_moceaffiliatecookie_pi1 was not registered.

      Das heißt wohl, dass Du an einer Stelle die Klassendefinition von ux_tx_moceaffiliatecookie_pi1 brauchst, wo sie PHP noch nicht bekannt ist und deshalb den Autoloader anschmeißt, der sie ebenfalls nicht kennt.

       
    • Nobody/Anonymous

      Es liegt an TYPO3, bzw. der Indizierung der verwendeten Klassen von "bav". Wie du oben schon bemerkt hast, verwendet TYPO3 noch das alte Klassen/Objekt-Modell, also sollten die "bav"-Klassen als Kind-Elemente eingefügt werden.

      Ich habe es folgendermaßen in TYPO3 gelöst:

      Ordnerstruktur:
      typo3conf/ext/meineExtension/
      typo3conf/ext/meineExtension/pi1
      typo3conf/ext/meineExtension/pi1/class.tx_meineExtension_pi1.php
      typo3conf/ext/meineExtension/bav
      typo3conf/ext/meineExtension/bav/...   <-- das "bav" Archiv hier(rein) entpacken.

      in die Extensionklasse (typo3conf/ext/meineExtension/pi1/class.tx_meineExtension_pi1.php) habe ich dann folgende Funktion eingefügt:

      class tx_meineExtension_pi1 extends tslib_pibase {
      ...
      ...
      ...
          function bankdata($intInstitute, $intAccount) {
              ...
              // Validate the bank account
              require_once(dirname(__FILE__).'/../bav/classes/autoloader/BAV_Autoloader.php');
              BAV_Autoloader::add('../bav/classes/dataBackend/exception/BAV_DataBackendException.php');
              BAV_Autoloader::add('../bav/classes/dataBackend/exception/BAV_DataBackendException_BankNotFound.php');
              BAV_Autoloader::add('../bav/classes/dataBackend/BAV_DataBackend_File.php');
              $databack = new BAV_DataBackend_File();
              try {
                  $databack->install();
              } catch (BAV_DataBackendException $error) {
                  die("Installation failed");
              }
              try {
                  $bank = $databack->getBank((int)$intInstitute);
                  echo "Account $intAccount is ", $bank->isValid($intAccount) ? "valid" : "invalid", "\n";
              } catch (BAV_DataBackendException_BankNotFound $error) {
                  if (! $databackend->bankExists($error->getBankID())) {
                      die("Bank {$error->getBankID()} does not exist.");
                  }
              } catch (BAV_DataBackendException $error) {
                  die("Some error happened in the data backend.");
              }
              try {
                  $databack->uninstall();
              } catch (BAV_DataBackendException $error) { }
              ...
          }
      ...
      ...
      ...
      }

       

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.