Flex PHP – A ne pas oublier quand vous déplacez votre projet Flex
Tutorial Flex écrit par Serge Boujo . Publiez vous aussi sur flex-tutorial!
Deux petits problèmes concernant AMFPHP, qui me sont arrivés coup sur coup, un jour de grand ménage et de réorganisation de mes projets. Ce n’est, certes, pas d’une portée technique terrifiante, mais ça pourra, je l’espère, éviter à certains de perdre un temps précieux.
L'accès à la base de données ne fonctionne plus
Le symptôme est le suivant : votre développement Flex accédant à une base de données ne fonctionne plus.
Certain de votre code, vous décidez, en utilisant le browser AMFPHP, de tester vos méthodes. Dans le browser, voulant tester le service, vous obtenez:
Evidement, vous passez et repassez votre php en revue : tout à l’air parfait, le service comme le VO (Value Object). Et, évidement toujours, il ne viendrait pas à l’esprit d’examiner votre objet depuis le browser : pour obtenir ça, à quoi bon ?
Et c’est là que vous auriez eu tort… Parce que vous auriez obtenu ça :
Le remède : virez tous les retour-chariot qui suivent la balise fermante…
Tout rentrera dans l’ordre. Ce problème des retours-chariots surnuméraires concerne également les services, quel que soit l’éditeur externe à Flex que j’utilise.
Le canal de destination ne peut plus être atteint
Le symptôme est le suivant:
Pourtant, tout fonctionnait avant que vous ne déplaciez le projet d’un workspace / espace de travail à un autre. Vous n’avez rien touché au code. C’est à n’y rien comprendre.
Le remède : Allez vérifier les paramètres de compilation de votre projet:
J’ai systématiquement le problème en Flex 4, jamais en Flex 3 : ce qui est dans l’ovale rouge disparait.
Jeu-concours !
1 – Au bout de combien de mois cela m’est-il arrivé pour la première fois ?
2 – Combien de temps ai-je perdu, lorsque ça m’est arrivé ?
Il est interdit de se moquer…
Articles similaires
- Adobe Air – Composant mx:HTML avec contenu SWF et Garbage Collection
- Flex 4 – (1) Le projet Flex 4 en fil rouge sur flex-tutorial: FTViewer
- AFCS devient LiveCycle Collaboration Service (LCCS) et pricing
- Flex LocalConnection – Communication en Cross-Domain
- Flex LocalConnection – Exemple de LocalConnection simple
Aucun trackbacks pour l'instant












29 juin 2010
En parlant d'AMF et de PHP, je suis tombé sur ça hier : http://www.insideria.com/2010/06/a-whole-lot-of-people.html
Quelqu'un utilise Zend_Amf ?
29 juin 2010
Haribo, oui on l'utilise couramment pour nos projets, mieux qu'amfphp qui se fait vieux…
29 juin 2010
Bonsoir,
Haribo, merci pour ce lien.
Jérôme, ton objection concernant l'âge d'AMF PHP est, certes, fondée.
Mais je l'ai choisi car j'ai trouvé que c'était :
- bien plus performant que Zend, (voir nombreux tests sur le net)
- infiniment plus rapide à installer, moins gourmand à l'exécution.
Si, de plus, on se donne la peine de s'écrire un p'tit bout de source qui génère, depuis la structure de la table, les VO Flex et Php et une trame des services, on gagne en efficacité.
Et je n'ai rien trouvé de suffisant, à ce jour, en terme d'avantages chez Zend pour revenir sur ce choix. Ma position changera peut-être avec des volumes d'échanges plus importants. Si tu as des infos la-dessus, ce serait intéressant…
Ceci dit, chacun est, heureusement, libre d'utiliser ce qui lui plait ; mon propos n'est pas de partir en croisade …
—-
Une petite astuce en prime : j'ai remarqué que le tout premier appel était sensiblement plus lent que les suivants – ce qui est logique, et constaté avec de nombreuses bases de données et bibliothèques. Le biais est alors de positionner judicieusement, dans la séquence de chargement de l'application, un appel à une lecture d'un tout petit flux de données…
29 juin 2010
Salut Serge,
J'utilise ZendAMF pour un soucis de mise à niveau. Je ne veux pas dire de bétise mais il me semble que ZendAMF fût développé par des membres venu d'amfphp mais c'est à vérifier.
Le changement c'est orienté de notre côté vers une solution plus 'jeune', j'ai eu dans le passé utilisé amfphp et c'est vraiment la même chose…
Après, c'est la solution mise en avant par Adobe donc bon, ça nous a conforté dans l'idée que ça devait être mieux, mais honnêtement le changement est très minime pour une utilisation basique (Mapping, RowSet, BitmapData etc..) à voir ce que cela peut donner pour une utilisation bien plus lourde.
30 juin 2010
Salut, concernant la balise PHP fermante, le mieux est de l'éliminer tout simplement – cela évite bien des soucis
3 juillet 2010
Perso, pour ne pas voir de soucis lorsque je déplace un projet, je n'ai jamais utilisé la technique de la déclaration du fichier dans les options du compilateur
Devoir recompiler un projet jusque parce qu'on change de serveur m'a toujours semblé lourd
Je place mon répertoire amfphp à la racine du src/ (flex 3) et construit dans mes Models mes remote objets, ça donne quelque chose dans ce goût là :
monService = new RemoteObject( ) ;
monService.endpoint = "amfphp/gateway.php" ;
monService.destination = "amfphp" ;
monService.source = "LeServiceAMFPHP" ;
monService.showBusyCursor = true ;
PS : je n'utilise pas non plus la déclaration des remotes objects en MXML, ça me permet de n'avoir dans le MXML que les éléments graphiques, le reste c'est dans des classes actionscript
4 juillet 2010
Merci de vos réactions.
@switcherdav
A la première lecture de ton mail, je me suis dit : Il exagère… on ne change pas de serveur tous les quatre matins.. (je suis gracieux et aimable, non ?)
Puis j'ai réfléchi, tout arrive…
- J'ai regardé et j'ai appris que l'utilisation du recours à une directive de compil n'était pas un point de passage obligé. Je ne le savais pas, je ne m'en doutais même pas, les tutos que j'avais lus ne présentant que cette solution.
- Il me semble donc que la solution 'bonnes pratiques' consiste donc en une déclaration du service au lancement, à partir de caractéristiques que l'on aura stockées dans un xml, par exemple.
Mes maigres compétences m'interdisant de le faire tout seul, la piste à suivre est le billet intitulé
Flex BlazeDS – Spécifier la configuration BlazeDS à l'exécution (services-config.xml et context-root)
du 22 nov 09.
(je ne sais pas comment intégrer un lien ici)
On est pas en BlazeDS, mais la philo est la même.
Du coup, mon billet me parait un peu vide de sens.
Au lieu de 'A ne pas oublier quand vous déplacez……', j'aurais été plus inspiré de faire 'A faire pour être libre de déplacer….'.
J'espère qu'il servira à d'autres… s'ils ont le courage de lire aussi les commentaires.
8 juillet 2011
Bonjour,
J'utilise actuellement le couple (wamp–amfphp) pour mes projets et j'avoue que je commence à être fatigué par les longues requêtes de mes services . Hier, je suivait un tuto de video2brain sur l'introspection des bases de données avec Flash Builder. Dans ce tuto l'introspection à été réalisée sur une seule table et je voudrai savoir s'il est possible de la réalisé sur 2 tables liées ( exemple : des étudiants et des classes ).
Aussi, sous java j'ai eu à développer des applications avec un ORM (Object Relationnal Mapping ) en l'occurrence Hibernate . Je voudrais savoir si de pareils outils existent pour flex ou php et aussi comment les coupler avec amfphp.
13 octobre 2011
Bonsoir,
J'ai un problème récurent d'encodage entre FLEX & AMFPHP. Aussi AMFPHP n'enregistre pas les apostrophes. Quelqu'un peut m'aider à régler ce problème ?
Merci d'avance.
Eddoh
23 février 2012
Bonsoir,
Je viens de déployer une application flex et j'utilise AMFPHP pour l'accès aux données, quand je lance l'appli de puis le navigateur j'ai une érreur 2048 me disant que mon fichier swf ne peut accéder au fichier gateway.php.
Je ne comprends pas ce qui ce passe.
merci pour votre aide.