Dear Devs,
i'm working on a Symfony2 project with the also very fresh EXTJS4 framework.
Everything pretty exciting so far. EXTJS4 brought for the first time a
concept of "models" (and "stores") with its new release. "Models"
communicate directly with servers through different proxies, one of them is
a REST JSON proxy (POST/PUT/GET ...).
On the Symfony2 side i tried to use the form framework to validate the
incoming data (which would be nice and easy):
...
$form->bindRequest($request);
...
This will fail because the JSON data is in the body of the request and it
won't be populated to the $request property. But this will work:
...
$jsonData = json_decode($request->getContent(), true); // "true" to get an
associative array
$form->bind($jsonData);
...
So this is neither a bug nor a feature report, this is just to notify
someone. Maybe this could be handled in the $form->bindRequest() method:
public function bindRequest(Request $request)
{
// Store the bound data in case of a post request
switch ($request->getMethod()) {
case 'POST':
case 'PUT':
$jsonData = json_decode($request->getContent(), true);
$data = array_replace_recursive(
$request->request->get($this->getName(), array()),
$request->files->get($this->getName(), array()),
$jsonData
);
break;
case 'GET':
$data = $request->query->get($this->getName(), array());
break;
default:
throw new FormException(sprintf('The request method "%s" is not
supported', $request->getMethod()));
}
return $this->bind($data);
}
This is not for production, just a suggestion. At least it would also work
the same way for REST JSON data like it works for HTML forms.
Michael
--
If you want to report a vulnerability issue on symfony, please send it to
security at symfony-project.com
You received this message because you are subscribed to the Google
Groups "symfony developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/symfony-devs?hl=en