PHP objet: questions!

Nouveau WRInaute
Bonjour à tous!

Voilà, je débute en PHP et en programmation Objet et j'ai quelques questions spécifique au fait de faire du PHP avec de l'objet.

J'aimerais créer les bonnes classes pour permettre de facilement créer les éléments de mes pages web (liens, images, header, menus, listes, tableaux etc), et disons que je m'embrouille un peu! Je n'arrive pas à voir quelles classes et quelles méthodes, et comment organiser mes classes pour disposer d'un ensemble d'outils faciles à utiliser.

Auriez vous des exemples (complets si possible car j'ai trouvé plein d'exemples très bien, mais dès que j'essaie de les appliquer plus globalement, ça ne convient pas) ou bien des idées ou des conseils?

Merci!

/glattering, débutant.
 
WRInaute passionné
Hello,

pour ma part pondre une classe histoire de remplacer
Code:
<img src="<?=$imgSrc?>" alt="bidule" />
par
Code:
$img = new img( $imgSrc );
$img->alt = 'bidule';
echo $img;

Je ne vois vraiment pas l'intérêt.
Là où j'utilise l'objet c'est pour l'accès et le traitement des données. Pas pour faire du "HTML Objet".
 
Nouveau WRInaute
Évidemment, ce n'est pas pour faire une bête balise img, mais bien pour tout organiser.
Si un jour au lieu du html, je veux créer une page en xml, il suffira de rajouter la fonction qui génère le xhtml et hop, la structure sera la même j'aurais juste besoin d'appeler une méthode getXML() à la place de la méthode getHTML(). Même chose pour générer un fichier texte plutôt qu'une page web.
C'est la structure , l'organisation qui importe, ensuite ce qu'on veut afficher se change facilement.
 
WRInaute passionné
Et bien je ne vois toujours pas l'intérêt : j'utilise pourtant beaucoup les objets, suis un modèle "pseudo MVC", mais là ça me semble complètement disproportionné et inadapté.
 
Nouveau WRInaute
Salut,

Je dirais que pour l'aspect rendu (donc le format généré par ton outil gérant ton site) doit se baser sur des templates.
Ainsi, tu peux tout à fait mettre des templates qui donne du html, d'autres du xml, et du csv par exemple.

Ensuite, tu dois séparer tes différentes couches :
- Accès aux données
- Traitement des données
- Affichage (c'est là qu'interviennent les templates)

Depuis ta couche de traitement de données, tu propulses l'information nécessaire pour tes templates (une liste provenant d'une base de données)

Et au niveau de tes templates, il te faut un système pour exploiter ces données.
Tu peux le faire en mettant un peu de php :
<img src='<? echo $image_src1; ?>'> par exemple
ou utiliser un moteur de template type smarty.
Dans la couche de template, il y a souvent des éléments que l'on appelle helper (des fonctions simples) permettant de faire des manipulations pour l'affichage (formatage de date ou autre).

Ce que je te décris là est ce qu'on appelle le modèle MVC pour Model (base données) View(template) Control(couche de traitement).

Personnellement, j'ai commencé à développer, il y a très longtemps et je me suis réalisé un framework basé sur ce concept que je fais évolué régulièrement.
Entre temps, il y a eu des gros projet basé sur ce concept et qui embarque toute la logique classique d'un site internet (traitement des urls, contrôle des variables soumises, gestion des formulaires, gestion de l'identification ...)

Plusieurs projets :
- Symphony : http://fr.wikipedia.org/wiki/Symfony
- Zend framework : http://fr.wikipedia.org/wiki/Zend_Framework
- CakePHP : http://fr.wikipedia.org/wiki/CakePHP
- CodeIgniter
- Jelix : http://www.jelix.org/

Personnellement, si je devais refaire, je testerais l'ensemble de ces projets, je prendrais celui qui semble le plus adéquat par rapport à mes besoins (facilité de développement, évolution possible, communauté, etc ...) et j'investirais dessus en terme de connaissance et j'ajouterais une brique me permettant de mutualiser mes développements.

Je te conseille donc de ne pas réinventer la roue, des milliers de personnes ont déjà planchées sur ces problèmes et en ont sorti des solutions.
De mon côté, je me retrouve un peu coincé, avec mon framework qui est sympatique tout plein, mais qui n'évolue que par moi et qui n'est pas connu dans l'industrie (problème pour former des intervenants, etc ...)

J'espère t'avoir aiguillé quelque peu ! :)

Bon courage !
 
WRInaute occasionnel
tout a fait d'accord avec gnarco !

Sinon il ne faut pas oublier une chose c'est que php n'est pas java !
oui ca peut paraitre trivial, mais le full objet n'est pas recommande pour php (c'est pas moi qui le dit mais les concepteurs du langage, c'est dire)
En clair l'objet apporte ennnooormement a php et je suis d'ailleurs un grand utilisateurs des objets en php. Mais il ne faut pas tomber dans l'objet pour l'objet.
 
Discussions similaires
Haut