heimrichhannot / contao-news-pagination-bundle

Automatic or manual content pagination for news or other content in contao.
Other
2 stars 1 forks source link

ClassNotFoundError #3

Closed zonky2 closed 4 years ago

zonky2 commented 4 years ago

ClassNotFoundError

C4.9.1

Symfony\Component\ErrorHandler\Error\ClassNotFoundError:
Attempted to load class "Request" from namespace "HeimrichHannot\Request".
Did you forget a "use" statement for e.g. "Symfony\Component\HttpFoundation\Request", "Nyholm\Psr7\Request", "HeimrichHannot\RequestBundle\Component\HttpFoundation\Request" or "GuzzleHttp\Psr7\Request"?

  at /homexxx/vendor/heimrichhannot/contao-news-pagination-bundle/src/EventListener/HookListener.php:92
  at HeimrichHannot\NewsPaginationBundle\EventListener\HookListener->addNewsPagination(object(FrontendTemplate), array('id' => '2376', 'pid' => '5', 'tstamp' => '1582297992', 'headline' => 'Referentenentwurf zur Änderung des SGB III und der AZAV', 'alias' => 'news-2020-02-referentenentwurf-zur-aenderung-des-sgb-iii-und-der-azav', 'author' => '9', 'date' => '1582297620', 'time' => '1582297620', 'subheadline' => '', 'teaser' => '<p>Das BMAS hat einen Referentenentwurf für das sog. „Arbeit-von-morgen-Gesetz“ veröffentlicht. Sollte das Gesetz in dieser Form beschlossen werden, gäbe es u.a. signifikante Änderungen bei der Zulassung von Maßnahmen nach AZAV.</p>', 'addImage' => '', 'singleSRC' => null, 'alt' => '', 'size' => '', 'imagemargin' => '', 'imageUrl' => '', 'fullsize' => '', 'caption' => '', 'floating' => 'above', 'addEnclosure' => '', 'enclosure' => null, 'source' => 'default', 'jumpTo' => '0', 'articleId' => '0', 'url' => '', 'target' => '', 'cssClass' => '', 'noComments' => '', 'featured' => '', 'published' => '1', 'start' => '', 'stop' => '', 'orderEnclosure' => 'a:1:{i:0;s:1:"8";}', 'canonicalType' => 'donotset', 'canonicalJumpTo' => '0', 'canonicalWebsite' => '', 'languageMain' => '0', 'addGallery' => '', 'slickMultiSRC' => null, 'slickOrderSRC' => null, 'slickSortBy' => '', 'slickUseHomeDir' => '', 'slickSize' => '', 'slickFullsize' => '', 'slickNumberOfItems' => '0', 'slickgalleryTpl' => 'slick_default', 'slickCustomTpl' => '', 'overwriteMeta' => '', 'imageTitle' => '', 'description' => null, 'pageTitle' => ''), object(ModuleSlickNewsList))
     (/homexxx/vendor/contao/news-bundle/src/Resources/contao/modules/ModuleNews.php:222)
  at Contao\ModuleNews->parseArticle(object(NewsModel), false, ' first even', 1)
     (/homexxx/vendor/contao/news-bundle/src/Resources/contao/modules/ModuleNews.php:263)
  at Contao\ModuleNews->parseArticles(object(Collection))
     (/homexxx/vendor/contao/news-bundle/src/Resources/contao/modules/ModuleNewsList.php:151)
  at Contao\ModuleNewsList->compile()
     (/homexxx/vendor/heimrichhannot/contao-slick-bundle/src/Module/ModuleSlickNewsList.php:60)
  at HeimrichHannot\SlickBundle\ModuleSlickNewsList->compile()
     (/homexxx/vendor/contao/core-bundle/src/Resources/contao/modules/Module.php:209)
  at Contao\Module->generate()
     (/homexxx/vendor/contao/news-bundle/src/Resources/contao/modules/ModuleNewsList.php:67)
  at Contao\ModuleNewsList->generate()
     (/homexxx/vendor/heimrichhannot/contao-slick-bundle/src/Module/ModuleSlickNewsList.php:43)
  at HeimrichHannot\SlickBundle\ModuleSlickNewsList->generate()
     (/homexxx/vendor/contao/core-bundle/src/Resources/contao/elements/ContentModule.php:77)
  at Contao\ContentModule->generate()
     (/homexxx/vendor/contao/core-bundle/src/Resources/contao/library/Contao/Controller.php:545)
  at Contao\Controller::getContentElement(object(ContentModel), 'right')
     (/homexxx/vendor/contao/core-bundle/src/Resources/contao/modules/ModuleArticle.php:192)
  at Contao\ModuleArticle->compile()
     (/homexxx/vendor/contao/core-bundle/src/Resources/contao/modules/Module.php:209)
  at Contao\Module->generate()
     (/homexxx/vendor/contao/core-bundle/src/Resources/contao/modules/ModuleArticle.php:74)
  at Contao\ModuleArticle->generate(false)
     (/homexxx/vendor/contao/core-bundle/src/Resources/contao/library/Contao/Controller.php:485)
  at Contao\Controller::getArticle(object(ArticleModel), false, false, 'right')
     (/homexxx/vendor/contao/core-bundle/src/Resources/contao/library/Contao/Controller.php:347)
  at Contao\Controller::getFrontendModule('0', 'right')
     (/homexxx/vendor/contao/core-bundle/src/Resources/contao/pages/PageRegular.php:168)
  at Contao\PageRegular->prepare(object(PageModel))
     (/homexxx/vendor/contao/core-bundle/src/Resources/contao/pages/PageRegular.php:48)
  at Contao\PageRegular->getResponse(object(PageModel), true)
     (/homexxx/vendor/contao/core-bundle/src/Resources/contao/controllers/FrontendIndex.php:339)
  at Contao\FrontendIndex->renderPage(object(PageModel))
     (/homexxx/vendor/symfony/http-kernel/HttpKernel.php:158)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
     (/homexxx/vendor/symfony/http-kernel/HttpKernel.php:80)
  at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
     (/homexxx/vendor/symfony/http-kernel/Kernel.php:201)
  at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
     (/homexxx/web/preview.php:31)     
koertho commented 4 years ago

Looks not good, but the fix will take a little time. As temporary workaround it should be enough to install https://github.com/heimrichhannot/contao-request.

zonky2 commented 4 years ago

warum könnt ihr nicht mit den Standartpaketen von Symfony arbeiten? rolleyes

Defcon0 commented 4 years ago

Weil unser Request-Bundle einen Schutz gegen xss/sql injection bietet. Die Symfony Core Request Klasse hatte das zumindest damals, wo dieses Modul geschrieben wurde, nicht.

Symfony arbeitet bei der xss/sql injection prevention mit dem default escaping bei twig. Leider wird in Contao längst nicht alles in Twig Templates ausgegeben. Außerdem hatten wir die Anforderung nach xss/sql injection prevention schon in Contao 3 Zeiten, wo an Symfony noch nicht zu denken war. Daher hatten wir damals das request-Modul für Contao 3 geschrieben. Später haben wir das dann für Symfony und Contao 4 hochgezogen.

Übrigens erbt unser https://github.com/heimrichhannot/contao-request-bundle von der Standard-Request-Klasse.

Ich schaue mir das ganze heute mal an. Sollte auf das Austauschen des Imports hinauslaufen.

Defcon0 commented 4 years ago

Ich habe die Abhängigkeit zum alten Contao 3 Request-Modul entfernt. Version ist 2.1.10. @zonky2 Kannst du bitte mal testen, ob es jetzt bei dir funktioniert?

koertho commented 4 years ago

@Defcon0 Das Request-Bundle müsste noch die composer.json

Defcon0 commented 4 years ago

Nein, das brauchen wir nicht, da das request bundle eine Abhängigkeit vom utils-bundle ist, was wiederum eine vom head-bundle ist.

zonky2 commented 4 years ago

habt ihr keine Testcases?

Too few arguments to function HeimrichHannot\NewsPaginationBundle\EventListener\HookListener::__construct(), 6 passed in /home/xxx/var/cache/dev/ContainerK58e7Qi/getHuh_NewsPagination_Listener_HooksService.php on line 11 and exactly 7 expected
Defcon0 commented 4 years ago

Wir können das aus Zeitgründen leider nicht bei allen Bundles leisten.

Bug ist behoben in 2.1.11.

zonky2 commented 4 years ago
Call to a member function getGet() on null

  at /home/xxx/vendor/heimrichhannot/contao-news-pagination-bundle/src/EventListener/HookListener.php:92
  at HeimrichHannot\NewsPaginationBundle\EventListener\HookListener->addNewsPagination(object(FrontendTemplate), array('id' => '2376', 'pid' => '5', 'tstamp' => '1582297992', 'headline' => 'Referentenentwurf zur Änderung des
Defcon0 commented 4 years ago

Ach Mensch, diese Schnellschüsse am frühen Morgen. Wenn es mit dem letzten Update nicht geht, installiere ich es mir kurz ;-) Schau bitte noch mal (2.1.12).

koertho commented 4 years ago

@Defcon0 Direkt Abhängigkeiten sollten immer mit in die composer.json. Könnte ja bspw. in einer zukünftigen Release von Head oder Utils-Bundle rausfallen. Zumal es hier die Abhängigkeit einer Abhängigkeit einer Abhängikeit ist :octopus:

zonky2 commented 4 years ago

jo, mit 2.1.12 habe ich (erstmal) keine Fehlermeldungen... thx

fritzmg commented 4 years ago

Nein, das brauchen wir nicht, da das request bundle eine Abhängigkeit vom utils-bundle ist, was wiederum eine vom head-bundle ist.

Wie @koertho bereits erwähnt hat, muss jede Komponente, die ein Paket benutzt, als Abhängigkeit eingetragen werden. Du kannst dich nicht auf Abhängigkeiten deiner Abhängigkeiten verlassen - auch nicht von eigenen Paketen, denn du denkst ja unter Umständen nicht daran, wenn du evt. mal eine Abhängigkeit entfernst.

Defcon0 commented 4 years ago

Stimmt, das macht Sinn. Werde ich in Zukunft mit einbeziehen. Danke für den Hinweis.