Drittanbieter Klassen werden nicht gefunden
Hi,
ich versuche gerade meine Erweiterung Botdetection auf Contao 4.3 Managed-Edition zu trimmen. (reine Contao 4.3 Erweiterung)
Die Installation und Registrierung über das Manager Plugin scheint zu funktionieren, denn ich sehe es im Backend, kann FE Module anlegen.
ABER: Botetection hat noch in der composer.json weitere Requirements und zieht zwei Pakete nach, welche keine Contao Erweiterungen sind.
Diese Klasse wird jedoch von Contao nicht gefunden.
Link zur Erweiterung: https://github.com/BugBuster1701/con...tection-bundle
Bei diesem Aufruf:
PHP-Code:
$found = \Nabble\SemaltBlocker\Blocker::blocked();
Kommt es zur Fehlermeldung:
Code:
2017-03-30 23:33:13] app.CRITICAL: An exception occurred. {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\ClassNotFoundException(code: 0):
Attempted to load class \"Blocker\" from namespace \"Nabble\\SemaltBlocker\".
Did you forget a \"use\" statement for another namespace?
at /daten/contao4go/vendor/bugbuster/contao-botdetection-bundle/src/Resources/contao/classes/CheckBotReferrer.php:48)"} []
Muss ich da was ändern in der composer.json? Offenbar landen diese Klassen nicht in den generierten autoload.php Dateien.
Muss eventuell das hier doch wieder rein?
PHP-Code:
"contao-community-alliance/composer-plugin":"~3.0"
[halb gelöst] Drittanbieter Klassen werden nicht gefunden
Nee, das ist gaaaanz anders. *kotz*
Composer installiert wie erwartet alle Abhängigkeiten. Nur gibt es da einen Konflikt, da Contao 4 etwas anders macht als Contao 3, es wird die Punycode 1.x Lib installiert.
Meine Erweiterung benötigt eine Lib die wiederum Punycode 2.x benötigt.
Das geht natürlich nicht, also sucht Composer solange abwärts in der einen Lib bis diese auch nur Punycode 1.x benötigt.
Diese Lib ist dann aber so alt, das es die Klasse die ich benutze noch gar nicht gibt. :(
Jetzt habe ich zufällig entdeckt, das Punycode 1.x nicht PHP7 kompatibel ist und hoffe nun stark, das Contao 4 auf Punycode 2.x hochgeht.
Ticket habe ich erstellt. https://github.com/contao/core-bundle/issues/748
Nebenbei: Die Datei /composer/vendor/autoload.php gibt es nicht mehr, aber die gesuchte wäre /vendor/autoload.php, diese wird auch geladen. Aber wenn es die Klasse gar nicht gibt dann hilft das nicht ;)