Hello,
( using CakePHP 2.1 )
I'm building an application that synchronizes data between different
instances of my application. (download and upload)
My application is REST enabled and thus I can call controller actions
from external applications and get the result in clean xml. However it
is not only a REST server, but also a REST client.
Downloading data from the other instance is easy. I do a $xml =
Xml::build($xmlurl); and process the $xml variable to import
everything into my database. Perfect.
However I am stuck in the other direction: Uploading data.
I could simply do a $xmldata = Xml::fromArray($event)->asXML() however
there is some cleaning to be done. This cleaning is what I do in my
REST view as my REST clients should see the same xml as what I'm
uploading to the other instance.
So if I already do all the work in my rest view, why recoding exactly
the same filtering?
The url /events/view/5.xml calls EventsController->view(5) with XML
layout and outputs everything in XML, exactly as I want it.
I have a ServersController->push() function.
This function needs to do get the same output as /events/view/5.xml ,
and upload it using a REST POST request to the other instance.
You could say I could simply call the /events/view/5.xml page using an
HTTP request from the application.
However it seems absurd as i) it seems absurd (and inefficient/slow)
to do HTTP requests to yourself to extract data and ii) I have
authentication on my REST calls which makes it a lot more difficult.
I tried with :
$eventsController = new EventsController();
$eventsController->set('event', $event);
$view = new View($eventsController);
$viewdata = $view->render('view');
But this only outputs the data in HTML, and not XML.
I tried to play with the CakeResponse object in that newly created
$eventsController, but that doesn't work. (there are no request or
response instances created, and creating them myself doesn't work)
So my question is:
What is the best way to get the output of /events/view/5.xml
(EventsController->view(5) ) inside another controller ?
Thanks for your expertise.
Christophe
--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.
To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php
Thursday, April 26, 2012
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment