preprocessing en PHP ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : preprocessing en PHP ?

par AB » 13 juin 2008, 20:44

C'est très compliqué à expliquer ce sujet de stage. La, pour l'instant, on m'a demandé d'écrire le langage à la main (nouveau_fchier, fermer_fichier, ecrire ...) avec le code PHP correspondant.
Et il est où le code correspondant ?

Je rejoins Berzemus et Calimero. à mon avis tu as compris le sujet de travers.

Une fois ton algo défini il faut bien que tu écrives le code PHP correspondant pour exécuter par exemple "aller chercher le titre de la photo". Pour créer ce fonctionnement tu dois utiliser des fonctions PHP pour créer l'objet (ou la classe) correspondant.

Je vois plutôt un sujet de stage posé en ces termes. Ou alors ton stage va durer une éternité pour un résultat non évolutif qui risque de ne profiter à personne.

Remarque d'ailleurs que le pb posé est assez surprenant dans la méthode : créer autant de fichiers html que de lignes dans ta bdd :-k tout ça pour faire des fiches photos avec une légende :?:

Habituellement on aurait plutôt tendance à ne faire que deux fichiers niveau visiteur :
- Le premier qui permettra de faire le choix de la fiche à afficher (à partir d'un tableau ou d'une bdd)
- Le deuxième qui génèrera à la volée le fichier html avec la photo et sa légende.

et un fichier administrateur qui permettra d'ajouter de nouvelles photos et légendes en complétant la bdd ou le tableau.

par mcorgnet » 13 juin 2008, 15:36

Pour un projet de stage qui devait offrir des fonctionnalités réseau, on avait créé une petite librairie C pour PHP.

Sans rire, je suis nul en C, j'ai rien compris. Et la brute du C qui était avec nous a mis bien du temps à comprendre le comment faire, avec le moteur zend.

Bon courage.

par Berzemus » 13 juin 2008, 14:58

alors, si on recadre, ton sujet de stage est d'ajouter quelques fonctionnalités à PHP ? C'est un exercice, ça ne vise pas une utilité dans le monde réel ?

C'est vrai que dans un cadre purement académique, ou le but c'est d'essayer, ou de prouver qu'on peut le faire, ou le faire parce que c'est spécifiquement demandé, a la limite, je peux concevoir. Mais alors, il te faudra plutôt plonger dans les sources de php, et te rendre dans des forums dédiés au dev. de php même, et non pas dans un forum ou on développe avec Php.

Mais dans le monde réel ousqu'on risque de l'argent, c'est clair que c'est une approche des plus suicidaires, et des plus inutiles.. (quand on parle du détachement de l'académique par rapport au marché..)

par Sékiltoyai » 13 juin 2008, 14:57

Pour apporter une petite précision, PHP n'a pas de preprocesseur, le preprocessing en C/C++ et en PHP n'a rien à voir. En C/C++ le préprocessing produit le fichier source à compiler, en prenant en compte les constantes, en incluant les headers, en tenant compte de l'environnement. La pré-interprétation en PHP a pour seul but de créer un fichier bytecode déjà organisé et plus facile à lire par PHP…

Et au passage, pour aller dans le sens des messages précédents, si tu veux faire un langage, j'espère que t'es callé dans les notions de grammaire LL(1), d'automates à états finis ou à piles, ou encore de tokenizer…

par Vurtu » 13 juin 2008, 14:20

Il est sûr que ce que tu demandes et tout à fait faisable ... mais c'est un peu comme prendre une masse pour enfoncer un clou ... (me rappel plus le vrai dicton ...)

Il y a les fonctions et l'objet en PHP qui te permettront très bien de faire ce que tu as besoin.
Ça marchera aussi bien, et sera beaucoup plus facile à faire évoluer

par Calimero » 13 juin 2008, 14:16

bah ecoute j'aimerais bien coder ca en PHP (jsui en niveau Licence Info) mais bon c'est mon sujet de stage, je ne peux pas faire autrement.
Alors je ne vais pas mâcher mes mots : soit tu bosses pour quelqu'un d'une prodigieuse incompétence (et dans ce cas rien ne t'interdit de le lui faire remarquer), soit tu as compris le sujet de travers (faute d'expérience en php ?) et tu t'obstines, et c'est mal .

(Je pencherai plutôt pour la deuxième solution.)

Dans les deux cas, rappelle toi que c'est toi qui est chargé de la réalisation et que tu seras seul responsable du choix des solutions techniques mises en oeuvre. Si tu persistes dans cette voie envers et contre tout, saches que l'aide que tu demandes sort du cadre de ce forum.

par psgkiki » 13 juin 2008, 13:51

bah ecoute j'aimerais bien coder ca en PHP (jsui en niveau Licence Info) mais bon c'est mon sujet de stage, je ne peux pas faire autrement.

Est-ce que vous savez quel fichier contient toutes les fonctions prédéfinies du PHP ?

Merci

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par Calimero » 13 juin 2008, 13:37

Je rejoins et plussoie Berzemus qui tente de te convaincre que c'est faisable en quelques lignes de php tout à fait standard qui seront 1000 fois préférable à une espèce de nouveau langage boiteux qui ne servira à personne et qui ne sera jamais maintenu. Oublie ta piste actuelle et commence à coder en php.

Je ne sais pas quel est ton niveau d'étude mais là il y a quelqu'un qui a forcément surpensé le truc, et à mon avis c'est toi :?

par psgkiki » 13 juin 2008, 11:00

ah bah ca c'est une bonne question.lol. J'ai pas le choix, il m'a donné cela à faire. lol

Voici un exemple de mon programme avec mon nouveau langage (que j'ai appelé jml par exemple) :

fichier.jml

Code : Tout sélectionner

<%? POUR chaque image (id, titre, leg) { NOUVEAU_FICHIER(photo.id, extension) OUVRIR_FICHIER (photo.id) ?%> <DEBUT> <1> <2> <%? photo.titre ?%> <3> <4> <%? photo.id ?%> <5> <6> <%? photo.leg ?%> <7> <FIN> <%? FERMER_FICHIER (photo.id + extension) } %?>

Mon programme .exe ou .dll nous donnera cela :
<?php
for ....
fopen (fic.htm, w)
?>
<HTML>...<BODY>...<H2>

<?php
aller chercher le titre de la photo
?>

</H2><img src="../  <?php  aller chercher l'id de la photo ?> .jpg><h2>

<?php
aller chercher la legende de la photo ?>

</body></html>

par Berzemus » 13 juin 2008, 10:42

Oui, sans doute. Mais quand je parlais de bibliothèque de fonctions, je parlais de fonctions php, a simplement inclure dans le script..

Ceci dit, j'aimerais bien savoir quel genre d'opérations la personne devra fournir, qui nécessite tellement de complications (parce que j'ai l'impression que tu vas faire une truc gargentuesquement compliqué, alors que c'est assez simple en fait).

par psgkiki » 13 juin 2008, 10:33

ouai en fait c'est ca que je dois faire en fait, une petite bibliotheque de fonctions.

J'ai parlé de créer mon propre langage mais bon il est pas long du tout.

Est-ce que je peux faire ca :

- ecrire une page en utilisant HTML et mon nouveau langage (avec mes quelques nouvelles fonctions)
- ecrire une DLL par exemple avec laquelle on recompilera PHP et qui permettra de générer le code PHP correspondant à mes fonctions créées.
- fichier .HTM généré

C'est faisable ?

par Berzemus » 13 juin 2008, 10:15

En créant une bibliothèque de fonctions, ou de classes, il y aurait plus ou moins possibilité d'adapter le langage..

Mais créer un langage de toute pièce, excuse-moi, mais c'est du suicide.. ça ne rendra service à personne, et bien que peut-être viable sur du court terme, sur du long terme c'est la cata assurée.

Je trouve zarbi la personne qui ne peut/doit/veut pas apprendre les bases de l'un ou l'autre lange répandue, mais qui se voit imposée/proposée un langage unique, fait de toute pièce, et qui ne servira jamais qu'a ça..

Si vraiment il faut simplifier, autant coder et faire une application avec des boutons ou il suffit de choisir l'un ou l'autre paramètre (=>étudier l'input réel que la personne aura à apporter), et si il faut rester large, autant lui mettre du php. C'est déjà facile à la base, et en plus le support francophone est, comme tu le vois, bien présent et actif.

par psgkiki » 13 juin 2008, 09:57

C'est très compliqué à expliquer ce sujet de stage. La, pour l'instant, on m'a demandé d'écrire le langage à la main (nouveau_fchier, fermer_fichier, ecrire ...) avec le code PHP correspondant.

Comme je l'ai dis ci-dessus, pour chaque photo trouvé dans le dossier voici le programme :

Code : Tout sélectionner

POUR chaque image (id, titre, legende) FAIRE NOUVEAU_FICHIER (nom, extension) ECRIRE debut ECRIRE <1> + image.titre + <2> ECRIRE <3> + image.titre + <4> ECRIRE <5> + image.titre + <6> ECRIRE fin FERMER_FICHIER FIN_POUR
sachant que j'ai préalablement crée un fichier token.txt qui contient pour chaque balise, le code html correspondant.

Exemple :

debut --> <HTML>....<BODY>
<1> ---> <h2>
<2> ---> </h2>
<3> ---> <img src = ".../.../
<4> ---> .jpg>
<5> ---> <h2>
<6> ---> </h2>
<fin> --> </BODY> </HTML>


Voilà un peu quelque chose de plus explicite

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par mcorgnet » 12 juin 2008, 17:07

Pour encore un peu plus de précision, je voudrais en gros créer mon propre langage quoi.

Quand la personne rentrera par exemple dans le fichier :

nouveau_fichier(test.txt) et bien le programme à la compilation va créer la fichier à l'aide de la fonction fopen par exemple.

Dans quel fichier sont défini les fonction fopen, fwrite, echo .....
Quand on veut "créer son propre langage", le mieux est de s'orienter vers la programmation orientée objets.

Tu appelles des méthodes que tu définies, pour un objet (fichier, connexion, étoile, prout ...) donné. Du coup, la personne qui utilise tes classes (définitions des objets), fait plus ou moins abstraction de php.

Plus ou moins hun ...

par Vurtu » 12 juin 2008, 17:06

Tu peux faire ça par PEAR

Plus d'infos ici : http://pear.php.net/manual/fr/