Другой сервис для моего приложения Flex с использованием Zend_Amf - PullRequest
0 голосов
/ 04 февраля 2010

У меня есть итератор, который уже работает нормально и возвращает правильно структурированные значения в мое гибкое приложение через мой 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; 

Ответы [ 2 ]

1 голос
/ 04 февраля 2010

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

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

Ваш Flex будет иметь класс:

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

Сообщит вашему серверу, что вы собираетесь сопоставить свой класс Contact с 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 голосов
/ 04 февраля 2010

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

публичная функция 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...