CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP-POO]Passer variables dans layout

deepblue
deepblue
Niveau 16
07 février 2013 à 18:45:13

Certe, mais la version que j'ai corrigée est celle-ci : http://dev-jvc.deblan.org/pflimlin/App-corrige/Web/frontend.php

Pseudo supprimé
Pseudo supprimé 11 avril 2013 à 00:20:17

Bonsoir.

J'essaie depuis un moment d'obtenir une archive de l'application complète du tutoriel entièrement fonctionnelle.
Sera-t-il possible une fois que cette dernière fonctionnerai de faire un zip de celle-ci ?

J'avais demandé la chose à l'auteur même du tutoriel, mais il refuse de répondre à mes MPs. Un ami à moi voudrait partir de ce tuto pour un projet de test...et avec mon job, je n'ai pas vraiment le temps de m'y pencher.

Merci beaucoup, ce serait vraiment sympathique :D !

3615_mylife
3615_mylife
Niveau 10
11 avril 2013 à 12:07:32

http://www.fichier-zip.cocom/2013/04/11/vik12-tuto-poo/

Cependant, ce micro framework est difficilement extensible sans devoir modifier la classe Application à chaque fois, il aurait du introduire la notion de DIC en même temps.

Fire_Storm
Fire_Storm
Niveau 10
11 avril 2013 à 12:56:55

Un avis d'ailleurs sur ce mini framework ? Je veux dire globalement c'est correct ou y a des trucs aberrants a changer ? Perso c'est ce que j'utilise depuis quelques mois pour mes développements, voulant démarrer l'objet (au début ça va quand on reste avec l'exemple de la voiture ou du perso, par contre quand on fait un site je trouve ça assez abstrait comme concept et pas facile a assimiler au départ). Certes ça doit etre minime mais je ne cherche pas le big framework justement, par contre si je veux réellement progresser autant travailler sur un outil qui est correct et non bourré de fautes (car en debutant on ne sait justement pas toujours si la logique est bonne ou pas)

3615_mylife
3615_mylife
Niveau 10
11 avril 2013 à 13:35:16

Il est très minimaliste. Si t'as rien d'autres à ajouter ça passe, mais si tu veux ajouter d'autres fonctionnalités faut que t'instancies tout dans le constructeur de l'application.
C'est là qu'un DIC aurait été plus judicieux.

Ensuite il ouvre la connexion à la base de donnée dans le constructeur, se qui rend parfois pas les choses évidentes.
De plus si tu veux ajouter un autre ORM comme Doctrine ou Propel tu devras modifier le backcontroller.

Pas de possibilité d'ajouter un moteur de template sans modifier la classe Page. D'ailleurs celle-ci ne gère pas le cas des requêtes AJAX et ses fonctions sont très limitées.

La connexion et l'authentification des visiteurs manquent des sécurités.

On ne peut utiliser que le XML pour les fichiers de configuration, alors qu'il explique dans un précédent tuto le Pattern Strategy. Il aurait pu le réutiliser pour créer différents parser.

Voilà, ce mini framework est vraiment très simple, chose qu'on ne peut pas lui en vouloir parce qu'il n'est présenté qu'à titre éducatif et indicatif (savoir comment fonctionne un framework de façon général). Mais à ta place je ne l'utiliserais pas pour mes propres développements et je me dirigerais vers quelque chose de plus solide comme CakePHP, Symfony2 ou ZendFramework2 ou si t'as les connaissances suffisantes dans un framework personnel qui corrigerait les erreurs de conceptions du tuto.

Pseudo supprimé
Pseudo supprimé 11 avril 2013 à 13:49:32

Merci :) !

Voilà qu'il va être ravi !

Mais effectivement, si je compare avec le site que j'ai développé avec un framework, un kernel et un système de plugins pouvant se greffer, on voit que ce tutoriel présente bien des défauts. J'ai quand même conseillé à mon collègue de partir de ça pour s'entraîner, analyser le code, son fonctionnement, les étapes entre la demande du visiteur et le retour du traitement qui affiche la vue à celui-ci. Par la suite, et quand j'aurai du temps devant moi, je lui montrerai d'autres directives. Et puis, y'a aussi les ORM effectivement comme tu en as parlé (le noSQL), mais aussi les webapplications Java (permettant de lâcher un peu le côté PHP), bref...beaucoup de choix :).

Et on ne parle pas évidemment des frameworks existants : rien que de connaître Symphony ou Zend, c'est déjà bien ! :)

Pseudo supprimé
Pseudo supprimé 11 avril 2013 à 13:51:09

Sorry for the double post.

Et en effet aussi, j'ai zieuté vite fait le code au niveau des vérifications, et ça manque cruellement de sécurité. Chose qui chagrine, car même dans un tutoriel/cours pour débutants, c'est bien un point qu'il ne faudrait JAMAIS outrepasser ou même néglier. C'est sécurité comme il se doit, ou pas de sécurité du tout, mais entre les deux...

Encore merci pour mon collègue ! :D

Pseudo supprimé
Pseudo supprimé 11 avril 2013 à 13:56:53

C'est re-moi.

Je viens de déployer en local l'archive, donc ça fonctionne bien en effet, mais y'avait pas un design proposé dans le tuto ?

Et comment on accède à la partie admin ?

Merci :).

Pseudo supprimé
Pseudo supprimé 11 avril 2013 à 14:01:42

EDIT : pour le design, c'est corrigé, le lien donné dans le tuto dans le fichier du layout.php vers le fichier CSS n'était même pas bon. Ce que je vois à priori, c'est que l'auteur du tuto n'a même pas testé son code avant d'en faire un tutoriel... grave.

3615_mylife
3615_mylife
Niveau 10
11 avril 2013 à 14:33:19

L'archive zip ne vient pas de vik12 mais de moi, l'application traînait dans un vieux dossier de mon ordinateur et j'ai retesté avant de zipper et envoyer, le design n'avait aucun soucis.

Pour accéder à l'admin, suffit de rajouter /admin/ dans l'adresse du site.

Fire_Storm
Fire_Storm
Niveau 10
11 avril 2013 à 14:57:53

Perso pour le template il suffit d'ajouter un attribut et une méthode dans la classe Page, ça se fait en 1 minute et ça règle le choix du template. ^^

Ensuite j'ai rajouté une méthode pour récupère la langue a la session de l'utilisateur, ce qui me permet donc de pouvoir faire des sites multilingues sans problème. C'est surtout ce qui me manquait perso.

Fire_Storm
Fire_Storm
Niveau 10
11 avril 2013 à 15:08:37

Et ce que j'aime avec un truc minimaliste, c'est que je peux arriver à comprendre de A à Z son fonctionnement. Symfony par exemple faudra des mois voir des années si tu veux le comprendre de fond en comble, non seulement son utilisation mais aussi tout le reste, bref ça reste fort usine à gaz à mon goût. Je préfère donc déjà tenter de comprendre la logique de quelque chose de plus minimaliste avant de me lancer dans de trop gros truc.

Après perso il me manque 2-3 trucs quand même sur ce mini framework, du genre j'ai dû mal à voir où je dois créer ma méthode qui va s'occuper de réecrire le titre d'un article pour qu'il soit acceptable en URL (en gros ne plus avoir une url du genre article/1 mais article/1-titre-de-mon-article). Je sais le faire, mais j'ai dû mal à savoir QUI doit le faire (le manager, le routeur ?)

Bref il est minimaliste mais je pense qu'avec quelques ajouts en plus ça peut déjà donner une bonne base de travail. La question c'est de savoir où placer ces ajouts (par exemple au niveau sécurité, est ce qu'il ne faudrait pas une classe pour ça ? Jusqu’à présent je fout mes htmlspecialchars dans la vue, mais je trouve que ça fait pas très objet (sachant par exemple qu'il a réécrit une classe pour gérer les requêtes HTTP (GET, POST etc))

3615_mylife
3615_mylife
Niveau 10
11 avril 2013 à 15:38:31

| Fire_Storm
| Posté le 11 avril 2013 à 14:57:53
| Perso pour le template il suffit d'ajouter un attribut et une méthode dans la classe Page, ça se | fait en 1 minute et ça règle le choix du template. ^^

C'est se que j'ai fais:
https://wall.deblan.org/x177a/php/1/Ahy-AbstractView-class-php
https://wall.deblan.org/xx1779/php/1/Ahy-View-class-php

La première impose la structure du framework aux moteurs de vue/template et la seconde permet de générer des vues n'utilisant que le PHP. Mais si j'ai besoin d'utiliser Twig par exemple je n'ai qu'à créer une classe "proxy" qui instanciera Twig et fera le lien entre le restant du framework et le moteur de template.

Fire_Storm
Fire_Storm
Niveau 10
11 avril 2013 à 15:48:47

Ben voilà. ^^

Certes il est minimaliste mais je suis sûr qu'avec quelques ajouts, ce qui ne tient parfois à pas grand chose comme ici, y a moyen de se faire une petite base de travail sympa.

deepblue
deepblue
Niveau 16
11 avril 2013 à 20:42:19

Pour un framework comme symfony, ça ne sert à rien de vouloir tout comprendre, sauf si tu as envie d'être certifié...et faudra en savoir plus que le framework lui même (PHP en général, très bien connaître le protocole HTTP, etc.).

J'ai survolé le code et ça manque cruellement de pattern et de convention de code/nommage. Cela dit, y'a des choses pas trop mal =)

3615_mylife
3615_mylife
Niveau 10
12 avril 2013 à 00:14:13

Le seul truc que je trouve pas trop mal dans le framework du tuto OO c'est le fonctionnement du Router, malgré qu'il lui manque un système de parser avec un pattern strategy.

Le reste, ça manque d'optimisation (détaillé dans un post précédent).

Fire_Storm
Fire_Storm
Niveau 10
12 avril 2013 à 10:01:09

Après le Router et le fait de parser un fichier XML c'est un choix, on pourrait très bien se contenter d'un fichier htaccess aussi.

Les pattern c'est le truc que j'ai moins bien compris en OO, faudra que je m'y replonge. ^^

Pour les conventions de nommage, j'ai un peu remanié à ma façon; je suis assez pointilleux là dessus (voir même maniaque xD). ^^

3615_mylife
3615_mylife
Niveau 10
12 avril 2013 à 13:09:59

Un pattern, c'est une solution face à un problème de conception.

Ici, le problème de conception du router et de config c'est qu'ils ne sont utilisable qu'avec du XML.
Là où le pattern strategy vient "corriger" le problème c'est qu'il permet l'emploi de plusieurs formats en créant des classes Parser implémentant d'une interface commune (ou héritant d'une classe abstraite), il n'y plus qu'à donner l'instance du parser au router et en récupérant les routes sous forme de tableau en faisant " $routes = $this->parser->parse($file); "

Fire_Storm
Fire_Storm
Niveau 10
12 avril 2013 à 13:44:28

En bref un bon framework doit pouvoir s'adapter à un peu tout et ne pas dépendre d'une solution en particulier c'est bien ça ?

deepblue
deepblue
Niveau 16
12 avril 2013 à 14:26:40

Presque et ça veut dire injection de dépendance dans le cas présent.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment