Hallo zusammen,
ich versuche gerade eine meiner Erweiterungen von Contao 3.5 auf Contao 4.8 zu portieren und verzweifle gerade an einer Fehlermeldung, die für mich keinen Sinn ergibt. Möglicherweise habe ich aber noch nicht alle Zusammenhänge zwischen Contao, Symfony und den Namespaces verstanden. Bisher hat alles wunderbar funktioniert. Ich scheitere jedoch zurzeit an der Einbindung einer zusätzlichen Klasse.
Die composer.json des Bundles sieht wie folgt aus:
Code:
{
"name":"bohnmedia/playerrating-bundle",
"description":"Rate players for football matches",
"keywords":["contao","json","api"],
"type":"contao-bundle",
"homepage":"https://bohn.media",
"license":"MIT",
"authors":[
{
"name":"bohn.media",
"homepage":"https://bohn.media",
"role":"Developer"
}
],
"require": {
"contao/core-bundle":">=4.8"
},
"conflict": {
"contao/core": "*",
"contao/manager-plugin": "<2.0 || >=3.0"
},
"extra": {
"contao-manager-plugin": "BohnMedia\\PlayerRatingBundle\\ContaoManager\\Plugin"
},
"autoload":{
"psr-4": {
"BohnMedia\\PlayerRatingBundle\\": "src/"
}
}
}
Über Autoload wurde der Ordner "src/" angegeben. Im Ordner "src/Model" liegt die Datei "PrMatchPlayerModel.php".
PHP-Code:
<?php
namespace BohnMedia\PlayerRatingBundle\Model;
use Contao\Model;
class PrMatchPlayerModel extends Model
{
protected static $strTable = 'tl_pr_match_player';
}
Innerhalb eines Scripts versuche ich nun auf diese Klasse zuzugreifen.
PHP-Code:
...
if ($rating >= 1 && $rating <= 6 && !$this->Session->get("playerrating_id".$id)) {
if ($result = \BohnMedia\PlayerRatingBundle\Model\PrMatchPlayerModel::findById($id))
{
...
Leider erhalte ich beim Aufruf der Seite eine 500 Seite und folgenden Hinweis im LOG-File.
Code:
[2020-02-07 18:24:26] request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\ClassNotFoundException: "Attempted to load class "PrMatchPlayerModel" from the global namespace. Did you forget a "use" statement for "BohnMedia\PlayerRatingBundle\Model\PrMatchPlayerModel"?" at /var/www/vhosts/bohn.media/spielerzeugnis.bohn.media/vendor/contao/core-bundle/src/Resources/contao/library/Contao/Model/Registry.php line 101 {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\ClassNotFoundException(code: 0): Attempted to load class \"PrMatchPlayerModel\" from the global namespace.\nDid you forget a \"use\" statement for \"BohnMedia\\PlayerRatingBundle\\Model\\PrMatchPlayerModel\"? at /var/www/vhosts/bohn.media/spielerzeugnis.bohn.media/vendor/contao/core-bundle/src/Resources/contao/library/Contao/Model/Registry.php:101)"} []
Hat jemand eine Idee?
Lesezeichen