Yii2 Errore: yii\base\UnknownMethodException: Chiamata di metodo sconosciuto: yii\web\UrlManager::addRules()

Dopo l’aggiornamento di oggi del compositore dipendenze (con il compositore comando di aggiornamento) il mio Yii2 applicazione diventato rotto – getta Metodo Sconosciuto – yii\base\UnknownMethodException: Chiamata di metodo sconosciuto: yii\web\UrlManager::addRules()

Dopo aver ispezionato vendor/yiisoft/yii2/web/UrlManager.php file che ho trovato che non c’è nessun metodo da.
E tutta intera classe UrlManager è diverso dalla classe nel repository.

Mio compositore.json:

"minimum-stability": "dev",
"require": {
    "php": ">=5.4.0",
    "yiisoft/yii2": "*",
    "yiisoft/yii2-bootstrap": "*",
    "yiisoft/yii2-swiftmailer": "*",
    "yiisoft/yii2-gii": "2.0.0-beta",
    "claudejanz/yii2-mygii": "*",
    "kartik-v/yii2-grid": "dev-master",
    "kartik-v/yii2-builder": "dev-master",
    "2amigos/yii2-switch-widget": "*",
    "yiisoft/yii2-jui": "*",
    "DsXack/yii2-underscore": "*",
    "2amigos/yii2-editable-widget": "*",
    "warrence/yii2-kartikgii": "*"
},
"require-dev": {
    "yiisoft/yii2-codeception": "*",
    "yiisoft/yii2-debug": "*"
},
Ho eseguito circa esattamente lo stesso problema dopo la chiamata di “compositore di aggiornamento” dopo l’aggiunta di kartik-v widget per la richiesta di sezione. ancora cercando di capire cosa è successo 🙁

OriginaleL’autore Andy Webov | 2014-09-17

6 Replies
  1. 12

    Qui è una spiegazione del perché questo è accaduto:

    Penso che questo è ancora una volta il compositore di dipendenza resolver fare cose inaspettate:

    • si richiedono yiisoft/yii2 nel compositore.json, ma non hanno il compositore asset plugin installati.
    • quindi il resolver di dipendenza non trova i pacchetti con i vendor bower-asset così non sembra per le altre versioni di yiisoft/yii2 che non sono in conflitto
    • Il risultato è quello di installare la versione beta di yii2 per essere installato

    La soluzione corretta, come già accennato, è quello di installare il compositore-asset-plugin:

    php composer.phar global require "fxp/composer-asset-plugin:1.0.*@dev"

    OriginaleL’autore cebe

  2. 13

    Penso che hanno cambiato il modo in alcune librerie vengono caricate attraverso compositore.

    Per risolverlo:

    Aggiungere al compositore.json

     "extra": {
            "asset-installer-paths": {
                "npm-asset-library": "vendor/npm",
                "bower-asset-library": "vendor/bower"
            }
        }

    e di esecuzione:

    # php composer.phar global require "fxp/composer-asset-plugin:1.0.*@dev"
    # php composer.phar update --dev

    Ulteriori informazioni: Problema su Github e Problema su Github

    Completo di credito: @githubjeka e @SonicGD

    +1 per certo. non ho trovato su Github, Problemi di prima 🙁
    io ho fatto questo, ma il mio problema ancora non risolto ancora dicendo: errore per il tipo di meta tag

    OriginaleL’autore ricardgf

  3. 1

    Sembra che l’aggiornamento è andato tutto sbagliato, dal momento che i file sono diversi da quelli su github – diverse funzioni mancanti.

    Quello che ho dovuto fare per ottenere “liberarsi” di questo errore:

    Copiare il codice dal repository in locale di file:

    https://github.com/yiisoft/yii2/blob/master/framework/web/UrlManager.php

    https://raw.githubusercontent.com/yiisoft/yii2/master/framework/helpers/BaseHtml.php

    Questo risolto, per il momento, per me.

    Grazie, spero di risolvere il problema
    La speranza è di troppo.. ma dicono in docs.. non utilizzare su produzione… ora sappiamo perché 😀
    anche se la copia dei file da github risolve il problema, la soluzione corretta è quella di installare il compositore-asset-plugin. Quindi, si prega di contrassegnare una delle risposte suggerendo l’installazione del plugin come soluzione e non questa.

    OriginaleL’autore Andreas Hinderberger

  4. 1

    ok ho risolto il problema installando yii2 in questo modo :

    compositore globale richiedono “fxp/compositore-asset-plugin:1.0.*@dev”

    compositore creare-progetto-preferiscono-dist –stabilità=dev yiisoft/yii2-app-di base di base

    OriginaleL’autore iltaf khalid

  5. -4

    Provare ad aggiornare il tuo compositore.json nel seguente modo:

    "require": {
        "yiisoft/yii2": "*"
    },

    nella directory del progetto, scrivere questo comando

    php composer.phar update
    se tu avessi guardato nel suo compositore.json… HA questa linea…
    ok ho capito non c’è addRules($regole, $append = true) funzione yiisoft/yii2/web/UrlManager.php. Strano!!!!

    OriginaleL’autore sprytechies

Lascia un commento