Hello,
there are lots of nice approaches out there how to setup models and
databases and i really like the idea with the data mapper pattern as
described in the official zend framework quickstart tutorial.
But what i am missing is also an example for webservices. How would you
setup a model to handle a soap/rest request? Is a Data Mapper also useful if
you only need to read data?
For example i want to fetch some items from several shopping provider. Does
this one makes sense? Isnt this too much overhead?
So what would be a good solution if you have different providers but always
want to return the same Item object? Add another method to
Default_Model_Item, for example fetchAllFromProvider2()?
Thank you in advance for your replies.
class Default_Model_Item
{
protected $_title;
protected $_price;
protected $_description;
// getter setter
public function getXXX()
public function setXXX()
public function find($id);
// different providers
public function fetchAllFromProvider1($options);
public function fetchAllFromProvider2($options);
}
class Default_Model_ItemMapper
{
public function find($id, $model);
public function fetchAllFromProvider1($options)
{
$provider = new Default_Model_Webservice_ShoppingProvider1();
$listings = $provider->makeCall($options);
foreach($listings as $item)
{
$entry = new Default_Model_Item();
$entry->setTitle();
$entry->setPrice();
$entry->setDescription();
}
}
public function fetchAllFromProvider2($options)
{
$provider = new Default_Model_Webservice_ShoppingProvider2();
$listings = $provider->makeCall($options);
foreach($listings as $item)
{
$entry = new Default_Model_Item();
$entry->setTitle();
$entry->setPrice();
$entry->setDescription();
}
}
}
class Default_Model_Webservice_ShoppingProvider1 {
public function makeCall($options)
}
class Default_Model_Webservice_ShoppingProvider2 {
public function makeCall($options)
}
--
View this message in context:
http://www.nabble.com/Zend-Model-with-Webservices-%28Soap-Rest%29-tp24689665p24689665.html
Sent from the Zend Framework mailing list archive at Nabble.com.