POO : passe-t'on le paramètre dans la classe ou dans le contenu de la page

WRInaute occasionnel
Bonjour,

Question mal posée s'il en est, je n'en doute pas.
Bon, là j'essaie un script POO simple dans l'idée :
- Je récupère un identifiant via l'url.
- Je crée un objet.
- Cet objet est créé à partir de l'identifiant, qui va récupérer les données de l'objet dans la base.

Ce que je ne pige pas, c'est ça :
L'identifiant (?$d) récupéré via l'URL, je l'utilise directement dans la classe, ou à l'extérieur de la classe, après avoir créé un objet comme ceci : $article= new Article("$id")

:?: :?: :?:

C'est pas pratique la POO, parce qu'on a des bouts de code qui sont écrit après ceux dont l'exécution en dépend...

Merci d'avance !
 
WRInaute accro
Si on prend l'exemple des ORM connus (Eloquent, CakePHP, ...)
Opérations CRUD:
CREATE:
PHP:
<span class="syntaxdefault">$article </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new Article</span><span class="syntaxkeyword">([</span><span class="syntaxstring">'title'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'Foo'</span><span class="syntaxkeyword">]);</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// Constructeur: valeurs initiales<br /></span><span class="syntaxdefault">$article</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">content </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Bar"</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// Autres valeurs<br /></span><span class="syntaxdefault">$article</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">save</span><span class="syntaxkeyword">();</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// On exécute la requête SQL  &nbsp;</span><span class="syntaxdefault"></span>
RETRIEVE:
PHP:
<span class="syntaxdefault">$article </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Article</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">find</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$id</span><span class="syntaxkeyword">);&nbsp;</span><span class="syntaxdefault"></span>
UPDATE:
PHP:
<span class="syntaxdefault">$article </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Article</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">find</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$id</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$article</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">content </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Bar"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$article</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">save</span><span class="syntaxkeyword">();&nbsp;</span><span class="syntaxdefault"></span>
DELETE:
PHP:
<span class="syntaxdefault">$article </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Article</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">find</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$id</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$article</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">delete</span><span class="syntaxkeyword">();&nbsp;</span><span class="syntaxdefault"></span>

Plus en détails: https://laravel.com/docs/5.4/eloquent

Pour ce qui est de la dépendance entre classes, là tu vas finir par découvrir l'injection de dépendance:
https://openclassrooms.com/courses/introduction-a-l-injection-de-depen ... ces-en-php
http://putaindecode.io/fr/articles/php/injection-dependances/
https://www.grafikart.fr/formations/programmation-objet-php/injection

Il y a tellement de trucs et perso je n'ai pas la science infuse, c'est pour ça que j'utilise des frameworks (CakePHP, ZF, SF, Laravel, Django) qui ont tous ces principes de base.
 
WRInaute occasionnel
Salut spout,

Je reviens sur ce topic, je n'ai pas programmé ces derniers jours.
Bon... ORM, CRUD, intéressant, merci, j'ai appris des truc. Ca me fait penser aux cartes mentales.
Ton CRUD, il n'est pas sur le modèle de Wikipédia : create, read, update, delete. D'où sors-tu ce RETRIEVE, Spout ?

Il y a tellement de trucs et perso je n'ai pas la science infuse, c'est pour ça que j'utilise des frameworks (CakePHP, ZF, SF, Laravel, Django) qui ont tous ces principes de base.
C'est ça, perso j'utilise un CMS pour un site qui a de l'avenir. Mais pour un site perso; afin de rester un peu dans le mouvement, je m'essaie à l'objet.
Mais alors quand je te lis, des gouttes de sueur perlent sur mon front.
Purée, je vais me donner le mal de faire ce site en objet, mais alors je sens que je ne suis pas au début de mes peines... Parce que de ton message, je ne comprends qu'un mot sur deux...
Par exemple, rien que ça : "article = Article::find($id); " les deux points ::, je ne sais même pas le traduire...
 
WRInaute occasionnel
Je galère. Faut déjà que j'apprenne le vocabulaire.
C'est marrant, parce que ce que je veux faire, je peux le faire en quelques heures avec un script "old school" et un peu de misqli ou quelques requêtes pdo.

Mais en POO, j'ai l'impression de repartir dix ans en arrière...
 
WRInaute occasionnel
En fait quand tu utilises des "frameworks", spout, cela signifie-t'il que tu utilises des "générateurs d'objets" :
http://www.lafermeduweb.net/billet/php-object-generator-generez-des-cl ... on-42.html

Ca me parait être une facilité, mais est-ce que c'est intéressant ou pas ?
Peut-être pour voir la classe que l'on souhaite créée, bien codée et tout ?
Encore faut-il y ajouter les requêtes sql.

Une sorte de CMS qui crée des objets au lieu de créer des champs dans la base de données, quoi.

Mais j'ai peut-être rien compris au principe.
 
WRInaute accro
Alorsladaccord a dit:
C'est ça, perso j'utilise un CMS pour un site qui a de l'avenir.
Je pense tout l'inverse, si on prend l'exemple de WP qui enregistre énormément dans wp_options (façon EAV), on a pas vraiment la main sur les données.
Tandis qu'avec un framework, j'ai pu en changer plusieurs fois en gardant les même tables.
Je connais ma structure, je reste donc maître des données.
 
WRInaute accro
spout a dit:
si on prend l'exemple de WP qui enregistre énormément dans wp_options

Sachant qu'en plus aucun développeur de plugin ne pense à supprimer les merdes qu'il peut laisser dans cette table lors de la désinstallation.
 
WRInaute occasionnel
spout a dit:
Alorsladaccord a dit:
C'est ça, perso j'utilise un CMS pour un site qui a de l'avenir.
Je pense tout l'inverse, si on prend l'exemple de WP qui enregistre énormément dans wp_options (façon EAV), on a pas vraiment la main sur les données.
Tandis qu'avec un framework, j'ai pu en changer plusieurs fois en gardant les même tables.
Je connais ma structure, je reste donc maître des données.

Ouais, mais quand tu gères toi-même le contenu et que tu passes 80% de temps dans le code et 20% sur les articles, l'option développement personnel s'avère vite un grand calvaire.

Le plan webmestre/rédacteur, ça n'est plus possible depuis au moins 2005. J'avais fait ce constat tout seul vers l'an 2010 et un article de wikipédia m'avait confirmé sur ce point. Le développement web est devenu beaucoup trop spécialisé.
 
WRInaute accro
Alorsladaccord a dit:
l'option développement personnel s'avère vite un grand calvaire.
A la base c'était une passion, et finalement j'en ai fait mon métier, ça reste tjs un plaisir de coder :)

Alorsladaccord a dit:
Le développement web est devenu beaucoup trop spécialisé.
+1000. Fini le temps où upload, F5, ça marche.
 
WRInaute discret
Alorsladaccord a dit:
Ouais, mais quand tu gères toi-même le contenu et que tu passes 80% de temps dans le code et 20% sur les articles, l'option développement personnel s'avère vite un grand calvaire.
C'est en forgeant qu'on devient forgeron !
Dans le développement web, contrairement à d'autres domaines, tu as la chance d'avoir un très grand nombre de solution technique / langage / application.
Personne ne maîtrise tout, mais l'avantage de s'y intéresser plutôt que s'en remettre aveuglément à une application qui peut (va ?) devenir une usine à gaz et attirer les pirates de l'internet c'est que :
1- tu comprend et tu peux contrôler ce qui ce passe.
2- tu es maître de tes données.
3- tu es réactif face à des changements de comportement.

Après oui, c'est fastidieux de passer du temps à apprendre / coder / tester.
À toi de trouver le bon rapport entre code perso / code tout fait / class prête à l'emploi :D
 
WRInaute occasionnel
spout a dit:
Alorsladaccord a dit:
l'option développement personnel s'avère vite un grand calvaire.
A la base c'était une passion, et finalement j'en ai fait mon métier, ça reste tjs un plaisir de coder :)

En ce qui me concerne, c'est surtout une contrainte dont je m'accommode parce que c'est quand même intéressant.

niap a dit:
Alorsladaccord a dit:
Dans le développement web, contrairement à d'autres domaines, tu as la chance d'avoir un très grand nombre de solution technique / langage / application.
D

Mouais... N'y-a-t'il pas plutôt 1001 solutions pour faire une seule et même chose ?
Je veux dire, les sites pro ont tous un plan bien défini, les pros renvoient d'ailleurs souvent vers les frameworks qui servent à poser les rails. On ne fait souvent que choisir de quoi on remplit les wagons. Et si le train est mal fabriqué, tout le monde s'en rend compte.

C'est vrai que y'a plein de solutions, mais en pratique, y'a la solution standard pour les pros et toutes les autres mauvaises pour les amateurs qui mer*ouilles.

Mais je n'affirme rien, hein.
 
WRInaute accro
Non, il n'y a jamais une seule solution. Il n'y a pas un seul langage plébiscité par les pros ni un seul framework.
 
Discussions similaires
Haut