Consultez la formation SEO spéciale Wordpress
par WebRankInfo / Ranking Metrics

Messages: 520

Enregistré le: 30 Juil 2014

Message le Sam Mai 27, 2017 16:12

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 !
Haut
14 Réponses
Messages: 8445

Enregistré le: 14 Mai 2003

Message le Sam Mai 27, 2017 21:54

Si on prend l'exemple des ORM connus (Eloquent, CakePHP, ...)
Opérations CRUD:
CREATE:
Code: Tout sélectionner
$article = new Article(['title' => 'Foo']); // Constructeur: valeurs initiales
$article->content = "Bar"; // Autres valeurs
$article->save(); // On exécute la requête SQL   

RETRIEVE:
Code: Tout sélectionner
$article = Article::find($id); 

UPDATE:
Code: Tout sélectionner
$article = Article::find($id);
$article->content = "Bar";
$article->save(); 

DELETE:
Code: Tout sélectionner
$article = Article::find($id);
$article->delete(); 


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.
Haut
Messages: 520

Enregistré le: 30 Juil 2014

Message le Mar Mai 30, 2017 16:56

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...
Haut
Messages: 8445

Enregistré le: 14 Mai 2003

Message le Mar Mai 30, 2017 18:29

Alorsladaccord a écrit:les deux points ::, je ne sais même pas le traduire...

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.
Haut
Messages: 520

Enregistré le: 30 Juil 2014

Message le Mar Mai 30, 2017 18:41

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...
Haut
Messages: 520

Enregistré le: 30 Juil 2014

Message le Mar Mai 30, 2017 18:46

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.
Haut
Messages: 8445

Enregistré le: 14 Mai 2003

Message le Mar Mai 30, 2017 19:58

Alorsladaccord a écrit:En fait quand tu utilises des "frameworks", spout, cela signifie-t'il que tu utilises des "générateurs d'objets"

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
Haut
Messages: 8445

Enregistré le: 14 Mai 2003

Message le Mar Mai 30, 2017 20:34

Alorsladaccord a écrit: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.
Haut
Messages: 12198

Enregistré le: 23 Nov 2005

Message le Mar Mai 30, 2017 20:50

spout a écrit: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.
Haut
Messages: 520

Enregistré le: 30 Juil 2014

Message le Mer Mai 31, 2017 17:37

spout a écrit:
Alorsladaccord a écrit: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é.
Haut
Messages: 8445

Enregistré le: 14 Mai 2003

Message le Mer Mai 31, 2017 18:52

Alorsladaccord a écrit: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 écrit:Le développement web est devenu beaucoup trop spécialisé.

+1000. Fini le temps où upload, F5, ça marche.
Haut
Messages: 140

Enregistré le: 17 Oct 2009

Message le Jeu Juin 01, 2017 10:19

Alorsladaccord a écrit: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
Haut
Messages: 520

Enregistré le: 30 Juil 2014

Message le Jeu Juin 01, 2017 16:37

spout a écrit:
Alorsladaccord a écrit: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 écrit:
Alorsladaccord a écrit: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.
Modifié en dernier par Alorsladaccord le Jeu Juin 01, 2017 16:47, modifié 1 fois.
Haut
Messages: 12198

Enregistré le: 23 Nov 2005

Message le Jeu Juin 01, 2017 16:47

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.
Haut
Messages: 520

Enregistré le: 30 Juil 2014

Message le Jeu Juin 01, 2017 17:53

Argutatis argutaturum peremptoribus.
Haut

Formation recommandée sur ce thème :

Formation SEO spéciale Wordpress : apprenez à optimiser le référencement naturel d'un site fait avec Wordpress... Formation Ranking Metrics animée par un expert SEO / Wordpress.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.