Ich benutze Silex framework für Mocking REST-Server. Ich muss uri für OPTIONS http Methode erstellen, aber Application
Klasse bietet nur Methoden für PUT, GET, POST und DELETE. Ist es möglich, eine benutzerdefinierte HTTP-Methode hinzuzufügen und zu verwenden?Silex - OPTIONS Methode
6
A
Antwort
4
Ich habe das gleiche gemacht, aber ich kann mich nicht gut daran erinnern, wie ich es geschafft habe, es zum Laufen zu bringen. Ich kann es jetzt nicht versuchen. Sicherlich müssen Sie die ControllerCollection
erweitern:
class MyControllerCollection extends ControllerCollection
{
/**
* Maps an OPTIONS request to a callable.
*
* @param string $pattern Matched route pattern
* @param mixed $to Callback that returns the response when matched
*
* @return Controller
*/
public function options($pattern, $to)
{
return $this->match($pattern, $to)->method('OPTIONS');
}
}
Und dann in Ihrem benutzerdefinierten verwenden es Application
Klasse:
class MyApplication extends Application
{
public function __construct()
{
parent::__construct();
$app = $this;
$this['controllers_factory'] = function() use ($app) {
return new MyControllerCollection($app['route_factory']);
};
}
/**
* Maps an OPTIONS request to a callable.
*
* @param string $pattern Matched route pattern
* @param mixed $to Callback that returns the response when matched
*
* @return Controller
*/
public function options($pattern, $to)
{
return $this['controllers']->options($pattern, $to);
}
}
3
Da diese Frage immer noch hoch bewertet in Google-Suchanfragen kommt, ich ll beachten sie, dass jetzt, dass es einige Jahre später ist, hinzugefügt Silex eine Behandlungsmethode für OPTIONS
http://silex.sensiolabs.org/doc/usage.html#other-methods
Die aktuelle Liste der Verben, die direkt als Funktionsaufrufe verwendet werden können, sind: get
, post
, put
, delete
, patch
, options
. Also:
$app->options('/blog/{id}', function($id) {
// ...
});
Sollte gut funktionieren.
Verwandte Themen
- 1. Versuch, die Methode "share" für die Klasse "Silex \ Application" in Silex 2 aufzurufen
- 2. Unit-Test-Methode mit Silex \ Application als Parameter
- 3. Silex Routing nicht gefunden
- 4. Silex Route austauschbare Parameter
- 5. Silex Routing Wildcard
- 6. Silex und Lehre ORM
- 7. Mehrere Datenbankanbieter in Silex
- 8. Silex-Token-Authentifizierung
- 9. Silex & phpunit JSON Antwort
- 10. Silex Deployment IIS
- 11. fields_for options-Dokumentation?
- 12. FOSRest OPTIONS Anfrage zurück 405 Methode nicht erlaubt
- 13. OPTIONS Methode nicht erlaubt. Erhalten Sie Works, aber nicht POST
- 14. Silex DoctrineORM: Benutzerdefiniertes Entitäts-Repository
- 15. silex senden Parameter zwischen Steuerungen
- 16. SET OPTIONS .... wo sie
- 17. Reactjs redux: Fetch PUT Methode nur eine OPTIONS-Methode zu senden, auch wenn der Status 200
- 18. Optionen in Form in Silex injizieren
- 19. POST-Nachrichtendaten in Silex-RESTful-API abrufen
- 20. Sollte ein HTTP Allow-Header "OPTIONS" enthalten?
- 21. angular ng-options Wert weglassen
- 22. Making Mathematics Global Options Stick
- 23. Ausgewähltes Options-Tag mit Meteor
- 24. wählen Tag-OPTIONS ausgerichtet rechts
- 25. ng-options Standardwert für Winkeldropdown
- 26. Rails RoutingError (Keine Route stimmt überein [OPTIONS]
- 27. fügen Sie eine Bibliothek zu Silex
- 28. Zweig wird nicht geladen in Silex
- 29. Benutzerdefinierter Authentifizierungsanbieter in der Silex-Anwendung
- 30. Wie php fatale Fehler in Silex-Framework
Großartig, wirklich einfach, danke! –
@PeterKrejci hat es funktioniert? Ich kann es nicht testen ... – gremo
Ja, ohne jedes Problem. –