2014-09-17 15 views
6

Dopo l'aggiornamento di oggi delle dipendenze del compositore (con il comando di aggiornamento del compositore) la mia applicazione Yii2 si è rotta - Getta Metodo sconosciuto - Yii \ base \ UnknownMethodException: Chiamare metodo sconosciuto: Yii \ web \ UrlManager :: addRules()Errore Yii2: yii base UnknownMethodException: chiamata metodo sconosciuto: yii web UrlManager :: addRules()

Dopo aver ispezionato file di venditore/yiisoft/yii2/web/UrlManager.php ho scoperto che non esiste un metodo addRule. E l'intera classe UrlManager è diversa dalla classe nel repository.

mio composer.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": "*" 
}, 
+0

Ho eseguito esattamente lo stesso problema dopo aver chiamato "compositore update" dopo aver aggiunto i widget kartik-v alla sezione require. ( –

risposta

12

Here è una spiegazione del motivo per cui questo è accaduto:

I think this is again the composer dependency resolver doing unexpected things:

  • you require yiisoft/yii2 in your composer.json but do not have the composer asset plugin installed.
  • then the dependency resolver does not find packages with vendor bower-asset so it looks for other versions of yiisoft/yii2 that do not have conflict
  • The result is to install the beta version of yii2 to be installed

La soluzione corretta come già accennato è quello di installare th e composer-asset-plugin:

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

tenta di aggiornare il tuo composer.json nel modo seguente:

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

nella directory del progetto, scrivere questo Comando

php composer.phar update 
+0

se avessi guardato nel suo compositore.json ... ha questa riga in ... –

+0

ok ho capito non ci sono addRules ($ rules, $ append = true) funzione nel tuo yiisoft/yii2/web/UrlManager.php. Strano !! – sprytechies

1

E ' sembra che l'aggiornamento sia andato completamente storto, 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:

Copia il codice dal repository nei file locali:

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.

+0

Grazie, spero che lo risolvano –

+0

Spero anche questo .. ma dicono nei documenti .. non usare in produzione ... ora sappiamo perché: D –

+1

anche se la copia dei file di github risolve il problema, la soluzione corretta è installare il compositore-asset-plugin, quindi contrassegnare una delle risposte che suggeriscono l'installazione del plug-in come soluzione e non questa. – cebe

13

Penso che abbiano cambiato il modo in cui alcune librerie vengono caricate tramite il compositore.

Per risolverlo:

Aggiungi al compositore.JSON

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

ed eseguire:

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

Maggiori informazioni: Issue on Github e Issue on Github

Punteggio pieno per: @githubjeka e @SonicGD

+1

+1 di sicuro. Non l'ho trovato prima sui problemi di Github :( –

+0

ho fatto questo, ma il mio problema non è stato ancora risolto dicendo ancora errore per il meta tag csrf – Kshitiz

1

ok ho risolto il problema installando yii2 in questo modo:

compositore globale richiede "FXP/compositore-asset-plugin:. 1.0 * @ dev"

compositore Create- progetto --prefer-dist --stability = dev yiisoft/yii2-app-basic basic