Usando PUT e DELETE no Silex

Uma pequena dica no Silex que deve ser a dúvida de MUITA gente trabalhando com ele: como usar outros métodos sem ser GET e POST no Formulário.

Antes, era mais simples, mas nas versões mais novas, precisamos de duas etapas. Primeiro, em qualquer local antes do famoso $app->run, coloque o seguinte:

Symfony\Component\HttpFoundation\Request::enableHttpMethodParameterOverride();

Este trecho está dizendo ao Silex que estou permitindo sobrescrita do métodos HTTP. Assim, posso configurar um formulário para usar PUT e DELETE ao invés dos “consagrados” GET e POST:

<form action="form.php" method="post">
  <input type="hidden" name="_method" value="put" />
  ...
</form>

Assim, mudamos o método de post (que está configurado na tag form) para put (configurado usando uma tag input do tipo hidden com valor put). Não se restringe a esses dois métodos. Podemos usar outros, como HEAD, PATCH, OPTIONS, etc.

Espero que esta dica tenha ajudado, pois demorei pra achar como faz isso no Silex e essas pequenas dicas ajudam no dia a dia. E serve pra futuras referências pra mim! 😀