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

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Alorsladaccord, 27 Mai 2017.

  1. Alorsladaccord
    Alorsladaccord WRInaute occasionnel
    Inscrit:
    30 Juillet 2014
    Messages:
    481
    J'aime reçus:
    0
    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 !
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 162
    J'aime reçus:
    337
    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.
     
  3. Alorsladaccord
    Alorsladaccord WRInaute occasionnel
    Inscrit:
    30 Juillet 2014
    Messages:
    481
    J'aime reçus:
    0
    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 ?

    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...
     
  4. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 162
    J'aime reçus:
    337
    C'est l'opérateur de résolution de portée (avec un nom ultra bizarre en PHP: Paamayim Nekudotayim): http://php.net/manual/fr/language.oop5.paamayim-nekudotayim.php

    Dans les exemples que j'ai donné, c'est parce que c'est des méthodes statiques.
     
  5. Alorsladaccord
    Alorsladaccord WRInaute occasionnel
    Inscrit:
    30 Juillet 2014
    Messages:
    481
    J'aime reçus:
    0
    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...
     
  6. Alorsladaccord
    Alorsladaccord WRInaute occasionnel
    Inscrit:
    30 Juillet 2014
    Messages:
    481
    J'aime reçus:
    0
    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.
     
  7. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 162
    J'aime reçus:
    337
    Non, et perso je n'aime pas ce principe, c'est pas DRY du tout.

    Les ORMs que j'utilise, utilisent plutôt les méthodes magiques __set, __get,... : http://php.net/manual/fr/language.oop5.magic.php
     
  8. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 162
    J'aime reçus:
    337
    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.
     
  9. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 971
    J'aime reçus:
    121
    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.
     
  10. Alorsladaccord
    Alorsladaccord WRInaute occasionnel
    Inscrit:
    30 Juillet 2014
    Messages:
    481
    J'aime reçus:
    0
    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é.
     
  11. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 162
    J'aime reçus:
    337
    A la base c'était une passion, et finalement j'en ai fait mon métier, ça reste tjs un plaisir de coder :)

    +1000. Fini le temps où upload, F5, ça marche.
     
  12. niap
    niap WRInaute discret
    Inscrit:
    17 Octobre 2009
    Messages:
    137
    J'aime reçus:
    0
    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
     
  13. Alorsladaccord
    Alorsladaccord WRInaute occasionnel
    Inscrit:
    30 Juillet 2014
    Messages:
    481
    J'aime reçus:
    0
    En ce qui me concerne, c'est surtout une contrainte dont je m'accommode parce que c'est quand même intéressant.

    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.
     
  14. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 971
    J'aime reçus:
    121
    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.
     
  15. Alorsladaccord
    Alorsladaccord WRInaute occasionnel
    Inscrit:
    30 Juillet 2014
    Messages:
    481
    J'aime reçus:
    0
    Argutatis argutaturum peremptoribus.
     
Chargement...
Similar Threads - POO paramètre classe Forum Date
POO : variable avec paramètres Développement d'un site Web ou d'une appli mobile 26 Mai 2017
Avis sur mon site www.pooq.be Demandes d'avis et de conseils sur vos sites 11 Septembre 2019
Quel livre PHP sur la POO approfondie ? Développement d'un site Web ou d'une appli mobile 4 Janvier 2019
Spoofing d'ip sur mon VPS. Administration d'un site Web 12 Septembre 2018
Quand - exactement - utilise-t'on la POO ? Administration d'un site Web 12 Novembre 2015
POO, question de débutant Développement d'un site Web ou d'une appli mobile 2 Juillet 2015
Où fixez-vous vos limites avec POO ? Dénormalisation. Développement d'un site Web ou d'une appli mobile 19 Mai 2012
code POO Développement d'un site Web ou d'une appli mobile 29 Avril 2012
POO ORM Entité Développement d'un site Web ou d'une appli mobile 23 Mars 2011
Spoon browser - tester son site sur différents navigateurs Développement d'un site Web ou d'une appli mobile 17 Août 2010
Problème POO Développement d'un site Web ou d'une appli mobile 22 Janvier 2010
mon tous premier site (fc.liverpool) Débuter en référencement 22 Novembre 2009
mon tous premier site (fc.liverpool) Débuter en référencement 15 Novembre 2009
mon tous premier site (fc.liverpool) Débuter en référencement 7 Novembre 2009
Script de Panier en PHP5 POO Développement d'un site Web ou d'une appli mobile 8 Mars 2009
POO ou pas POO ? Développement d'un site Web ou d'une appli mobile 2 Mars 2009
Question sur la POO : empêcher l'héritage d'une fonction public ? Développement d'un site Web ou d'une appli mobile 8 Janvier 2009
Référencement en php5, et POO- problème Développement d'un site Web ou d'une appli mobile 20 Mai 2007
Php en poo ou procédurale ? Développement d'un site Web ou d'une appli mobile 25 Avril 2006
POO et vairable publique (global) Administration d'un site Web 25 Avril 2006