0

J'ai un service itérateur qui fonctionne bien déjà et renvoie une correctement structurés valeurs à mon application flex dans mon Zend Amf serveurUn service différent pour mon application Flex à l'aide 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; 

Cependant, je tiens à ajuster cela afin que je puisse tirer parti de ma structure MVC et atteindre les mêmes résultats. J'ai mis un extrait qui peut être mis en état de fonctionnement

$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; 

Répondre

1

Vous voulez regarder dans ValueObjects. Zend_Amf les supporte, et c'est une bonne idée de l'utiliser. De cette façon, vous pouvez avoir des objets natifs de PHP et de Flex.

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

Votre Flex serait alors une classe:

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

raconteraient votre serveur que vous allez mapper votre classe Contact à ContactVO dans Flex.

alors vous pouvez faire:

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

et vos objets de contact se rendre à Flex comme des objets ContactVO

+0

J'utilise $ server-> addDirectory (APPLICATION_PATH. «/SERV glaces/'); à la place, $ server-> setClassMap ('ContactVO', 'Contact'); ne sera pas nécessaire – davykiash

0

je donc ici une fonction dans le modèle logique pour une table de base de données:

fonction publique 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; 
} 
Questions connexes