Ergebnis 1 bis 10 von 10

Thema: Contao 4.6.0-RC1 und codefog/contao-news_categories

  1. #1
    Contao-Fan
    Registriert seit
    29.07.2010.
    Beiträge
    516

    Standard Contao 4.6.0-RC1 und codefog/contao-news_categories

    Hallo,

    sobald codefog/contao-news_categories installiert wird, lassen sich die Nachrichten/News im BE nicht mehr aufrufen und werden beantwortet mit:

    Code:
    Attempted to load class "codefog_news_categories.listener.data_container.feed" from the global namespace. Did you forget a "use" statement?
    logs:

    Code:
    [2018-07-27 09:33:42] request.INFO: Matched route "contao_backend". {"route":"contao_backend","route_parameters":{"_route":"contao_backend","_scope":"backend","_token_check":true,"_controller":"Contao\\CoreBundle\\Controller\\BackendController::mainAction"},"request_uri":"http://core-medition:8888/contao?do=news&ref=s21nmvsW","method":"HEAD"} []
    [2018-07-27 09:33:42] request.INFO: Matched route "contao_backend". {"route":"contao_backend","route_parameters":{"_route":"contao_backend","_scope":"backend","_token_check":true,"_controller":"Contao\\CoreBundle\\Controller\\BackendController::mainAction"},"request_uri":"http://core-medition:8888/contao?do=news&ref=s21nmvsW","method":"GET"} []
    [2018-07-27 09:33:42] request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\ClassNotFoundException: "Attempted to load class "codefog_news_categories.listener.data_container.feed" from the global namespace. Did you forget a "use" statement?" at /Applications/MAMP/htdocs/core-medition/vendor/contao/core-bundle/src/Resources/contao/library/Contao/System.php line 173 {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\ClassNotFoundException(code: 0): Attempted to load class \"codefog_news_categories.listener.data_container.feed\" from the global namespace.\nDid you forget a \"use\" statement? at /Applications/MAMP/htdocs/core-medition/vendor/contao/core-bundle/src/Resources/contao/library/Contao/System.php:173)"} []
    [2018-07-27 09:33:42] app.CRITICAL: An exception occurred. {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\ClassNotFoundException(code: 0): Attempted to load class \"codefog_news_categories.listener.data_container.feed\" from the global namespace.\nDid you forget a \"use\" statement? at /Applications/MAMP/htdocs/core-medition/vendor/contao/core-bundle/src/Resources/contao/library/Contao/System.php:173)"} []
    Ähnliche listener-Fehlermeldung erscheint in den logs auch bei der Installation von bsw. mvo/contao-facebook-import

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Vermutlich verwendest du Symfony 4. Ab Symfony 4 müssen Services explizit "public" sein, damit sie vom Container geholt werden können.

  3. #3
    Contao-Fan
    Registriert seit
    29.07.2010.
    Beiträge
    516

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Vermutlich verwendest du Symfony 4. Ab Symfony 4 müssen Services explizit "public" sein, damit sie vom Container geholt werden können.
    Ja Symfony 4, ist eine jungfräuliche 4.6.0-RC1 ausschliesslich zum Test.

  4. #4
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von NetMediaWork Beitrag anzeigen
    Ja Symfony 4, ist eine jungfräuliche 4.6.0-RC1 ausschliesslich zum Test.
    Dann kannst du die Fehler getrost als Bugs bei den entsprechenden Erweiterungen melden ;-)

  5. #5
    Contao-Fan
    Registriert seit
    29.07.2010.
    Beiträge
    516

    Standard

    Zitat Zitat von webstar Beitrag anzeigen
    Dann kannst du die Fehler getrost als Bugs bei den entsprechenden Erweiterungen melden ;-)
    Tja, dachten wir uns auch ... https://github.com/codefog/contao-ne...ment-408371117

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Setze den Service auf public, teste es und stelle die Änderung dann als Pull Request zur Verfügung.

  7. #7
    Contao-Fan
    Registriert seit
    29.07.2010.
    Beiträge
    516

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Setze den Service auf public, teste es und stelle die Änderung dann als Pull Request zur Verfügung.
    # Data container ab Zeile 32

    => vendor/codefog/contao-news_categories/src/Resources/config/listener.yml

    Code:
        
       # Data container
        codefog_news_categories.listener.data_container.content:
            class: Codefog\NewsCategoriesBundle\EventListener\DataContainer\ContentListener
            public: true
            arguments:
                - "@database_connection"
    
        codefog_news_categories.listener.data_container.feed:
            class: Codefog\NewsCategoriesBundle\EventListener\DataContainer\FeedListener
            public: true
            arguments:
                - "@database_connection"
                - "@session"
    
        codefog_news_categories.listener.data_container.news_archive:
            class: Codefog\NewsCategoriesBundle\EventListener\DataContainer\NewsArchiveListener
            public: true
            arguments:
                - "@codefog_news_categories.permission_checker"
    
        codefog_news_categories.listener.data_container.news_category:
            class: Codefog\NewsCategoriesBundle\EventListener\DataContainer\NewsCategoryListener
            public: true
            arguments:
                - "@database_connection"
                - "@codefog_news_categories.permission_checker"
                - "@session"
    
        codefog_news_categories.listener.data_container.news:
            class: Codefog\NewsCategoriesBundle\EventListener\DataContainer\NewsListener
            public: true
            arguments:
                - "@database_connection"
                - "@codefog_news_categories.permission_checker"
    Damit können die Nachrichten zumindest im BE erstmal gestartet werden und Kategorien angelegt werden, ohne Fehlermeldung in den logs.

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Ja, alle DCA Listener müssen auf jeden Fall auf public gesetzt werden. Bzw. generell alle Callbacks und Hooks, die Contao dann verwendet.

    Kannst du wie gesagt gleich als PR submitten

  9. #9
    Contao-Fan
    Registriert seit
    29.07.2010.
    Beiträge
    516

    Standard

    Also wenn ich das jetzt richtig gesehen habe, muss alles in der listener.yml ( bis auf _instanceof: ) public gesetzt werden, damit auch die Module und das Frontend funktionieren und auch einiges in der services.yml, wobei ich es dort erst mal pauschal alles ( bis auf _instanceof: ) auf public gesetzt habe, was bestimmt nicht notwendig ist.

    Muss ich aber noch mal genau schauen im Detail.

  10. #10
    Contao-Fan
    Registriert seit
    29.07.2010.
    Beiträge
    516

    Standard

    So sieht es ganz gut aus für codefog/contao-news_categories, wäre aber schön, wenn das auch mal jemand testet

    contao-news_categories in der composer.json => "codefog/contao-news_categories": "3.0.11",

    => vendor/codefog/contao-news_categories/src/Resources/config/listener.yml
    Code:
    services:
        _instanceof:
            Contao\CoreBundle\Framework\FrameworkAwareInterface:
                calls:
                    - ["setFramework", ["@contao.framework"]]
    
        codefog_news_categories.listener.ajax:
            class: Codefog\NewsCategoriesBundle\EventListener\AjaxListener
            public: true
            arguments:
                - "@monolog.logger.contao"
    
        codefog_news_categories.listener.change_language:
            class: Codefog\NewsCategoriesBundle\EventListener\ChangeLanguageListener
            public: true
            arguments:
                - "@codefog_news_categories.manager"
    
        codefog_news_categories.listener.insert_tags:
            class: Codefog\NewsCategoriesBundle\EventListener\InsertTagsListener
            public: true
            arguments:
                - "@codefog_news_categories.manager"
    
        codefog_news_categories.listener.news:
            class: Codefog\NewsCategoriesBundle\EventListener\NewsListener
            public: true
            arguments:
              - "@codefog_news_categories.news_criteria_builder"
    
        codefog_news_categories.listener.template:
            class: Codefog\NewsCategoriesBundle\EventListener\TemplateListener
            public: true
            arguments:
                - "@codefog_news_categories.manager"
    
        # Data container
        codefog_news_categories.listener.data_container.content:
            class: Codefog\NewsCategoriesBundle\EventListener\DataContainer\ContentListener
            public: true
            arguments:
                - "@database_connection"
    
        codefog_news_categories.listener.data_container.feed:
            class: Codefog\NewsCategoriesBundle\EventListener\DataContainer\FeedListener
            public: true
            arguments:
                - "@database_connection"
                - "@session"
    
        codefog_news_categories.listener.data_container.news_archive:
            class: Codefog\NewsCategoriesBundle\EventListener\DataContainer\NewsArchiveListener
            public: true
            arguments:
                - "@codefog_news_categories.permission_checker"
    
        codefog_news_categories.listener.data_container.news_category:
            class: Codefog\NewsCategoriesBundle\EventListener\DataContainer\NewsCategoryListener
            public: true
            arguments:
                - "@database_connection"
                - "@codefog_news_categories.permission_checker"
                - "@session"
    
        codefog_news_categories.listener.data_container.news:
            class: Codefog\NewsCategoriesBundle\EventListener\DataContainer\NewsListener
            public: true
            arguments:
                - "@database_connection"
                - "@codefog_news_categories.permission_checker"
    => vendor/codefog/contao-news_categories/src/Resources/config/services.yml
    Code:
    services:
        _instanceof:
            Contao\CoreBundle\Framework\FrameworkAwareInterface:
                calls:
                    - ["setFramework", ["@contao.framework"]]
    
        codefog_news_categories.manager:
            class: Codefog\NewsCategoriesBundle\NewsCategoriesManager
            public: true
    
        codefog_news_categories.picker:
            class: Codefog\NewsCategoriesBundle\Picker\NewsCategoriesPickerProvider
            public: false
            arguments:
                - "@knp_menu.factory"
                - "@router"
            calls:
                - [setTokenStorage, ["@security.token_storage"]]
            tags:
                - { name: contao.picker_provider, priority: 132 }
    
        codefog_news_categories.permission_checker:
            class: Codefog\NewsCategoriesBundle\PermissionChecker
            public: false
            arguments:
                - "@database_connection"
                - "@security.token_storage"
    
        codefog_news_categories.news_criteria_builder:
            class: Codefog\NewsCategoriesBundle\Criteria\NewsCriteriaBuilder
            public: true
            arguments:
                - "@database_connection"
                - "@codefog_news_categories.manager"

    Wenn für codefog/contao-news_categories "Multilingual features" verwendet werden soll, in der composer.json => "terminal42/dc_multilingual": "3.0.2", dann muss bei terminal42/dc_multilingual - terminal42.dc_multilingual.querybuilder_factoryin ebenfalls auf public gesetzt werden.

    => vendor/terminal42/dc_multilingual/src/Resources/config/services.yml
    Code:
    services:
        terminal42.dc_multilingual.querybuilder_factory:
            class: Terminal42\DcMultilingualBundle\QueryBuilder\MultilingualQueryBuilderFactory
            public: true
            arguments:
                - "@database_connection"

    Zum Schluss Cache löschen => var/cache/prod und domain.tld/contao/install
    In var/logs sollten dann keine Beanstandungen mehr sein.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •