demande conseils organisation de travail

demande conseils organisation de travail - PHP - Programmation

Marsh Posté le 23-05-2005 à 13:43:06    

voila...
Etant en train de refondre la petite appli que j'ai commencée ya quelquetemps (creation de document PDF en ligne avec EZPDF)
j'aimerai savoir quelle façon vous me conseillez pour optimiser mon site...
j'ai choisi le XHTML strict 1.0 pour le coté visuel (ça n'a pas vraiment d'interet dans mon site mais au moins c'est censé etre propre et universel)
ensuite je me pose des questions concernant le transport des variables de page en page...
 
j'ai une liste de variables un peu demesurée... et surtout extensible à l'infini (dans le futur proche), actuellement je fonctionne avec des sessions PHP... mais ça me parait lourd à gerer et pas tres propre...
 
je me demandais si le XML pourrait m'etre favorable...
je m'explique, en résumé j'aimerai remplacer mes :
 

Code :
  1. $pagewitdh="210";
  2. $pageheight="297";
  3. $pagebackground="#FFFFFF";
  4. $saisienom="Dupont";
  5. $saisieprenom="Tata";
  6. $couleurnom="#00000";
  7. $sizenom="12";


 
... etc etc etc
 
 par  
 

Code :
  1. <doc pagewidth="210" pageheight="297" pagebackground="#FFFFFF">
  2. <nom couleur="#00000" size="12">Dupont</nom>
  3. <prenom couleur="#00000" size="12">Toto</prenom>
  4. </doc>


 
... ça m'a l'air assez convenable mais je sais pas encore meler du PHP avec du XML (mis à part avec des fread fwrite etc etc...°
 
... Est-ce que les fonctions DOM de php sont adaptées pour ce que je veux faire ?
... Est-ce que j'y gagnerai bcp à tout changer ?
 
Merci
 
freed

Reply

Marsh Posté le 23-05-2005 à 13:43:06   

Reply

Marsh Posté le 23-05-2005 à 15:52:29    

Merci pour l'info.. :jap:
qu'entends tu par serialiser?

Reply

Marsh Posté le 23-05-2005 à 16:06:18    

donc on ecrit pas "physiquement" le XML ?

Reply

Marsh Posté le 23-05-2005 à 16:17:21    

à moins que tu te bases sur des fichiers xml en lecture pour initialiser ton bordel, non...
tu peux très bien maintenir ton "fichier" XML comme un arbre DOM et comme l'explique chase le trimbaler de page en page sans avoir à chaque fois à réécrire physiquement cet arbre dans un fichier...
a moins bien sur que tu veuilles sauvegarder les données à certains moments, que sais-je ?  

Reply

Marsh Posté le 23-05-2005 à 16:20:15    

Cela vous parait il convenable ?

Code :
  1. $dom = new DOMDocument;
  2. $doc = $dom->createElement('doc');
  3. $firschild = $dom->appendChild($doc);
  4. $firstchild_attr1=$dom->setAttribute("pagewidth","210" );
  5. $firstchild_attr2=$dom->setAttribute("pageheight","297" );
  6. $firstchild_attr3=$dom->setAttribute("background","#FFFFFF" );
  7. $firstchild= $dom->createElement('nom');
  8. $childnode0=$dom->appendChild($firstchild);
  9. $childnode0->setAttribute("couleur","#FFFFFF" );
  10. $childnode0->setAttribute("size","12" );
  11. $firstchild=$dom->createElement('prenom');
  12. $childnode1->appendChild($firstchild);
  13. $childnode1->setAttribute("couleur","#FFFFFF" );
  14. $childnode1->setAttribute("size","12" );
  15. print $doc->saveXML();


 
 
 
 

Reply

Marsh Posté le 23-05-2005 à 16:21:35    

denzz a écrit :

à moins que tu te bases sur des fichiers xml en lecture pour initialiser ton bordel, non...
tu peux très bien maintenir ton "fichier" XML comme un arbre DOM et comme l'explique chase le trimbaler de page en page sans avoir à chaque fois à réécrire physiquement cet arbre dans un fichier...
a moins bien sur que tu veuilles sauvegarder les données à certains moments, que sais-je ?


bah eventuellement si la personne veut modifier le contenu de son document ou un parametre... je sais pas si je dois utiliser une bdd ou un fichier XML... que me conseillez vous ?
 
le probleme de la bdd c'est que mon systeme doit etre extensible (pas de limite de nombre de variables)
et dans une bdd.. bah tu peux enregistrer autant de choses que tu as de champs.. mais pas au dela ! (sauf avec des systemes de séparateurs ou je ne sais quoi)
 
en XML on a pas ces limites là ... mais bon je sais pas si on peut faire confiance en un fichier "physique"..(apres tout... pourquoi pas! lol !)


Message édité par freed102 le 23-05-2005 à 16:27:38
Reply

Marsh Posté le 23-05-2005 à 16:38:46    

bah c surtout pour des raisons de confidentialité.. c peut etre mieux d'utiliser une bdd non ? les moteurs de recherche ne vont ils pas butiner les fichiers XML sur le serveur ?

Reply

Marsh Posté le 23-05-2005 à 16:51:03    

ça commence bien :
 
Fatal error: Cannot instantiate non-existent class: domdocument in /u/clonecop/public_html/essaiDOM.php on line 2
 
:lol:


Message édité par freed102 le 23-05-2005 à 16:51:19
Reply

Marsh Posté le 23-05-2005 à 16:52:15    

mmmhh .. et si tu faisais un zouli  
include(monfichierdelaclassedom.php);
ca marcherait-t-y pas mieux ?

Reply

Marsh Posté le 23-05-2005 à 16:53:14    

bah j'ai cru comprendre un truc :
 

Citation :


Installation
Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.


 
http://fr2.php.net/manual/fr/ref.dom.php


Message édité par freed102 le 23-05-2005 à 16:54:45
Reply

Marsh Posté le 23-05-2005 à 16:53:14   

Reply

Marsh Posté le 23-05-2005 à 16:56:42    

... c'est PHP5 c ça ?

Reply

Marsh Posté le 23-05-2005 à 17:01:13    

ouai mais faut installer l'extension... C pas dit que je l'ai!

Reply

Marsh Posté le 23-05-2005 à 17:27:51    

http://www.clonecopy.net/phpinfo.php ... je crois que c mort !

Reply

Marsh Posté le 25-05-2005 à 16:37:40    

mon hebergeur a bien voulu installer l'extension DOMXML... maintenant question... j'ai lu que PHP5 incluait ses propres fonctions DOM pour remplacer l'extension DOMXML...
 
donc la question est : ces fonctions sont elles compatibles?
je veux dire vais-je pas etre un jour obligé de tout reprendre si on passe sur PHP5....
d'ailleurs la question que je me suis pas encore posé c'est est ce que PHP5 sait interpreter du PHP4 ?

Reply

Marsh Posté le 25-05-2005 à 16:41:40    

en lisant les posts des utilisateurs sur php.net je crois avoir la reponse (du moins une solution!):
 
http://alexandre.alapetite.net/doc [...] p4_to_php5


Message édité par freed102 le 25-05-2005 à 16:43:53
Reply

Marsh Posté le 25-05-2005 à 18:27:00    

Alors mes premiers pas en DOMXML se passe plutot bien...
 
un bout de code :

Code :
  1. $dom=domxml_new_doc("1.0" );
  2. $doc = $dom->create_element('doc');
  3. $firschild = $dom->append_child($doc);
  4. $firschild->set_attribute("pagewidth","210" );
  5. $firschild->set_attribute("pageheight","297" );
  6. $firschild->set_attribute("background","#FFFFFF" );
  7. $firstchild=$dom->create_element('nom');
  8. $childnode0=$dom->append_child($firstchild);
  9. $childnode0->set_attribute("couleur","#FFFFFF" );
  10. $childnode0->set_attribute("size","12" );
  11. $childnode0=$dom->append_child($dom->create_text_node($_SESSION['CVnom']));
  12. $firstchild=$dom->create_element('prenom');
  13. $childnode1=$dom->append_child($firstchild);
  14. $childnode1->set_attribute("couleur","#FFFFFF" );
  15. $childnode1->set_attribute("size","12" );
  16. $childnode1=$dom->append_child($dom->create_text_node($_SESSION['CVprenom']));
  17. echo nl2br(htmlentities($dom->dump_mem(true),ENT_QUOTES));


 
 
j'ai juste une question concernant le XML  
 
.. tout d'abord il me retourne ça :
 

Code :
  1. <?xml version="1.0"?>
  2. <doc pagewidth="210" pageheight="297" background="#FFFFFF"/>
  3. <nom couleur="#FFFFFF" size="12"/>
  4. Dupond
  5. <prenom couleur="#FFFFFF" size="12"/>
  6. Jacques


 
... la question est... est-ce que c'est correct ?
 
je suis habitué à entourer mes données en ouvrant et fermant les balises
 
comme suit:
<nom attr1="12">Dupont</nom>
 
et là il me fait :
<nom attr1="12" />Dupont
 
... je pense que c correct mais je demande confirmation
 
 :jap:

Reply

Marsh Posté le 26-05-2005 à 11:28:15    

bouuuuuuuuuuuh !!! comment qu'on ferme des balises XML avec DOMXML ??? :(
 

Code :
  1. function CreateDOMTextElement($dom,$parentNode,$newNodename,$couleur,$size,$text)
  2. {
  3. $firstchildname=$dom->get_elements_by_tagname($parentNode);
  4. $firstchildname=$dom->create_element($newNodename);
  5. $childnode=$dom->append_child($firstchildname);
  6. $childnode->set_attribute("couleur",$couleur);
  7. $childnode->set_attribute("size",$size);
  8. $childnode=$dom->append_child($dom->create_text_node($text));
  9. }
  10. $dom=domxml_new_doc("1.0" );
  11. $doc = $dom->create_element('doc');
  12. $firschild = $dom->append_child($doc);
  13. $firschild->set_attribute("pagewidth","210" );
  14. $firschild->set_attribute("pageheight","297" );
  15. $firschild->set_attribute("background","#FFFFFF" );
  16. CreateDOMTextElement($dom,"doc","nom","#CCCCCC","12",$_SESSION['CVnom']);
  17. CreateDOMTextElement($dom,"doc","prenom","#CCCCCC","12",$_SESSION['CVprenom']);
  18. CreateDOMTextElement($dom,"doc","titre","#CCCCCC","12",$_SESSION['CVtitre']);
  19. CreateDOMTextElement($dom,"doc","adresse","#CCCCCC","16",$_SESSION['CVadresse']);
  20. CreateDOMTextElement($dom,"doc","cp","#CCCCCC","8",$_SESSION['CVcp']);
  21. CreateDOMTextElement($dom,"doc","ville","#CCCCCC","8",$_SESSION['CVville']);
  22. CreateDOMTextElement($dom,"doc","telephone","#CCCCCC","8",$_SESSION['CVtelephone']);
  23. CreateDOMTextElement($dom,"doc","fax","#CCCCCC","8",$_SESSION['CVfax']);
  24. CreateDOMTextElement($dom,"doc","mobile","#CCCCCC","8",$_SESSION['CVmobile']);
  25. CreateDOMTextElement($dom,"doc","email","#CCCCCC","8",$_SESSION['CVemail']);
  26. CreateDOMTextElement($dom,"doc","url","#CCCCCC","16",$_SESSION['CVurl']);
  27. echo nl2br(htmlentities($dom->dump_mem(true, 'UTF-8' ),ENT_QUOTES));


Message édité par freed102 le 26-05-2005 à 11:29:53
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed