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";
> 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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
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) ?
> 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.
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) { }
...
}
...
...
...
}