0

У меня есть сервис итератора, который работает отлично, уже и возвращает правильно структурированные значения в моем гибком приложении через мой сервер Zend АИФРазличный сервис для моего приложения Flex с помощью Zend_Amf

$contacts = array(); 

    mysql_connect('localhost', 'root', 'test'); 
    mysql_select_db('test'); 

    $res = mysql_query('SELECT * FROM contact'); 
    while($contact = mysql_fetch_assoc($res)) { 
      $contacts []= $contact; 
    } 

    return $contacts; 

Однако я бы как настроить это, чтобы я мог использовать мою структуру MVC и добиваться тех же результатов. я поместил отрывок, который может быть доведен до рабочего состояния

$contacts = array(); 

$table = new Model_DbTable_Contact(); 
$result = $table->fetchAll(); 

//Return an array to be consumed by my flex application  
foreach ($result as $row) 
    { 
    /*do something*/ 
    } 

    return $contacts; 

ответ

1

Вы хотите посмотреть в ValueObjects. Zend_Amf поддерживает это, и это хорошая идея использовать это. Таким образом, вы можете иметь объекты, которые являются родными как для PHP, так и для Flex.

$server->setClassMap('ContactVO', 'Contact'); 

Ваш Flex затем иметь класс:

[Bindable] 
[RemoteClass(alias="Contact")] 
public class ContactVO 
{ 
} 

бы сказать вашему серверу, что вы собираетесь сопоставить Контакт класс ContactVO в Flex.

, то вы можете сделать:

$data = array(); 
foreach ($result as $row) 
{ 
    $data[] = new Contact($row); 
    //assuming the Contact constructor parses the array data 
} 
return $data; 

и ваши контактные объекты доберется до Flex как объекты ContactVO

+0

Я использую $ server-> addDirectory (APPLICATION_PATH.)/serv льды/'); вместо этого $ server-> setClassMap ('ContactVO', 'Contact'); рассчитать – davykiash

0

Так вот у меня есть функция в логической модели для базы данных таблицы:

public function fetchAll() {

$resultSet = $this->getDbTable()->fetchAll(); 
    $entries = array(); 
    foreach($resultSet as $row) { 
     $entry = new Model_ClosingData(); 

     $entry->setId($row->id) 
       ->setContractMonth($row->monthId) 
       ->setCommodity($row->commodityId) 
       ->setDate($row->date) 
       ->setPrice($row->price) 
       ->setVolume($row->volume) 
       ->setOutstandingInterest($row->outstandingInterest); 
     $entries[] = $entry; 
    } 
    return $entries; 
}