Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je viens de me lancer dans la nouvelle version de Zend (La version1.7).
Je voulais tester le composant Zend_Amf mais il me sort une erreurs.
IndexController.php (/controllers)
require_once 'Zend/Controller/Action.php'; class IndexController extends Zend_Controller_Action { /** * The default action - show the home page */ public function indexAction() { // TODO Auto-generated IndexController::indexAction() action $amfObject = new Zend_Amf_Server(); $amfObject -> setClass('ContactService'); $amfObject -> handle(); } }
ContactService.php (/models)
class ContactService { /** * get contacts * * @return array **/ function getContacts() { $dbh = mysql_connect('localhost', 'root'); $listAll = 'SELECT * FROM contacts.contacts'; $result = mysql_query($listAll, $dbh); $contactsArray = array(); while ($row = mysql_fetch_array($result)) { $contact = new Contact(); $contact->name = $row['name']; $contact->email = $row['email']; $contact->phone = $row['phone']; array_push($contactsArray, $contact); } return $contactsArray; } /** * save * * @param Contact $contact * @return null **/ function saveContact(Contact $contact) { $name = $contact->name; $email = $contact->email; $phone = $contact->phone; $dbh = mysql_connect('localhost', 'root'); $insert = "INSERT INTO contacts.contacts (id, name, email, phone) VALUES (NULL, '$name', '$email', '$phone')"; $doInsert = mysql_query($insert, $dbh); } }
Contact.php (/models)
class Contact { public $id = 0; public $name = ""; public $email = ""; public $phone = ""; }
Et pour le code flex :
AmfZend.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="myservice.getContacts()"> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.automation.codec.ArrayPropertyCodec; import mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent; import ContactVO; import mx.controls.Alert; import mx.utils.ArrayUtil; [Bindable] public var dp:ArrayCollection; public function handleContacts(event:ResultEvent):void { dp = new ArrayCollection(ArrayUtil.toArray(event.result)); myDG.dataProvider = dp; } public function handleFault(event:FaultEvent):void { Alert.show(event.fault.faultDetail, event.fault.faultCode); } public function saveContact():void { var newContact:ContactVO = new ContactVO(); newContact.name = nameInput.text; newContact.email = emailInput.text; newContact.phone = phoneInput.text; myservice.saveContact(newContact); } public function handleSave(event:ResultEvent):void { myservice.getContacts(); nameInput.text = ''; emailInput.text = ''; phoneInput.text = ''; } ]]> </mx:Script> <mx:RemoteObject endpoint="http://localhost/ZendFramework17/public/" id="myservice" destination="zend" source="ContactService" fault="handleFault(event)"> <mx:method name="getContacts" result="handleContacts(event)" fault="handleFault(event)"/> <mx:method name="saveContact" result="handleSave(event)" fault="handleFault(event)"/> </mx:RemoteObject> <mx:DataGrid id="myDG" width="276" x="10" y="10" height="244"/> <mx:Panel x="10" y="262" width="276" height="217"> <mx:TextInput id="nameInput" /> <mx:TextInput id="emailInput" /> <mx:TextInput id="phoneInput" /> <mx:Button click="saveContact()" name="save" label="Save"/> </mx:Panel> </mx:Application>
et ContactVO.as
package { public class ContactVO { public var id:int; public var name:String; public var email:String; public var phone:String; public function ContactVO() { } } }
Et le plus important, le message d'erreur au chargement de la page (creationComplete) et quand je click sur le bouton "Save" :
Channel.Connect.Failed error NetConnection.Call.BadVersion: : url: 'http://localhost/ZendFramework17/public/'
Quelqu'un peut m'aider?
Merci beaucoup,
Cordialement
Clément , http://www.dator.fr
PS: j'avais déjà posté cela, mais pas dans la bonne section, désolé
Hors ligne
Salut,
Juste une piste de réponse pour les autres utilisateurs de Zend_Amf passant par ici : ce genre d'erreur (BadVersion) est très commune et est le signe d'une erreur dans le script php. En utilisant firebug dans l'onglet requêtes, on peut voir les requêtes amf et dans response, il y a généralement l'information sur l'erreur php (quand tout va bien, l'onglet response de la requête est vide).
Hors ligne
Dator, vas-tu nous faire un beau tutoriel dans ton blog Il m'a aidé ce blog en tk...
Pour l'instant, je buche sur la même erreur que toi !
Hors ligne
Pages: 1