2016-07-10 32 views
1

Ich habe etwas in Phalcon Dokumentation über Dispatching (view here) gelesen. Ich war vor dem „afterExecuteRoute“ verwendet, aber nur Dokumentation über sie heute überprüfen ... und ich fand etwas, das mich stört (über Parameter):Ist die Dispatching-Funktionalität in Phalcon PHP geändert?

public function afterExecuteRoute(Event $event, Dispatcher $dispatcher) 
{ 
    // Executed before every found action 
} 

Dies ist genau Teil des Codes von der Dokumentation. Aber wenn ich in meinem Code platziert, dass, erhalten i "Abfangbare fataler Fehler" about:

Argument 1 bestanden Adapter \ Controllers :: afterExecuteRoute() muss sein eine Instanz Phalcon \ Events \ Ereignis , Instanz Phalcon \ Mvc \ Dispatcher gegeben

Also ... ist Dokumentation falsch? Oder wird das in der nächsten Phalcon-Version der richtige Weg sein?

Dank

+0

'beforeExecuteRoute'! =' AfterExecuteRoute' – Ultimater

+0

Welche PHP-Version Sie verwenden, und Phalcon Version? – Juri

+0

Phalcon Version ist 2.1.0r :) Danke! –

Antwort

1

Es scheint in der Tat eine Inkonsistenz in der Dokumentation zu sein.

vom controller docs Genommen zeigt dieses Beispiel, dass der erste Parameter von beforeExecuteRoute Bedürfnissen ein Dispatcher Objekt sein.

class PostsController extends Phalcon\Mvc\Controller 
{ 
    public function beforeExecuteRoute($dispatcher) 
    { 
     // ... 
    } 
} 
+0

Wenn es im Controller gemacht wird, dann ja - nur $ Dispatcher wird übergeben, weil es kein Ereignis gibt. Wenn ein Ereignismanager verwendet wird, haben Sie immer Ereignis als erstes Argument und Objekt, das Sie an die Methode fire übergeben. – Juri