Quelle architecture utilisez-vous ?

Ce topic a été résolu
TheFlameflo

TheFlameflo Le 9 mai 2016 à 03:39 (Édité le 25 janvier 2019 à 17:51)

Salut !
Je suis entrain de développer un site qui utilise la POO (j'apprend, lentement, mais sûrement !) et je me demandais quel type d'architecture utiliser...
J'ai pensé à une architecture comme ça :
->MonProjet
->app
->css
->js
->public
-pages
->template
index.php

Pour résumer, app c'est pour les classes et le public c'est ce que l'utilisateur voit.
J'ai pensé que dans le public/pages, il y aurait le "contenu" de la page et que l'index.php chargerait le contenu.
Disons que j'ai dans l'url : index.php?p=mapage, ça aille chercher le fichier "mapage" et que ça l'affiche dans le design défini dans mon template.

J'aimerais savoir ce que vous pensez de mon architecture et pourquoi pas partager la vôtre ?

Merci d'avance ! 😀
PaulLavieille

PaulLavieille Le 9 mai 2016 à 10:06

Salut !

En toute honnêteté, je le trouve vraiment bien !

PS : faut se coucher plus tôt hein 😉
TheFlameflo

TheFlameflo Le 9 mai 2016 à 12:31

Merci!
Je vais continuer de l'améliorer et le modifier !

Pour l'heure, je suis au Québec. xD
Du coup, faut enlever 6 heures. :P





quiqou55

quiqou55 Le 9 mai 2016 à 13:11 (Édité le 9 mai 2016 à 13:29)

Salut !
Tu devrait mettre ton css et ton js dans le dossier public
Perso moi mon architecture c'est celle si : 
  • app 
  • app -> controllers
  • app -> views
  • app -> views -> layouts
  • app -> class
  • app -> functions
  • app -> router.php

  • core
  • core -> functions
  • core -> class

  • public
  • public -> css
  • public -> js

  • config
  • config -> database.config.php

App c'est pour tous se qui est propre a l'application et core pour tout se qui est commun a toutes les 

Pour les vues j'utilise le système Twig qui permet d'avoir de vues propres : 

{% extends "layouts/default.twig" %}
{% block title %} Accueil {% endblock %}

{% block content %}
   <h1>Accueil</h1>
   {% for article in articles %}
      <h2>{{ article.title }}</h2>
      <p>{{ article.content | nl2br }}</p>
   {% endfor %}
{% endblock %}
Si vous voulez en savoir plus sur twig : https://youtu.be/-9tqHmq6UmE, il parle de twig pour symfony mais c'est la même chose, sinon si tu veux un tuto un peu moins complet mais qui montre l'installation : https://www.youtube.com/watch?v=ywEmvPXfZnY
Wistaro

Wistaro Le 9 mai 2016 à 17:36

J'ai un peu la même organisation que toi @TheFlameflo
Pour afficher les vues, je prépare mes templates avec des balises, ce qui donne par exemple:
Durée</td><td><input type="text" name="heure" /> h</td></tr>
   <tr><td colspan="2"><input value="Envoyer" type="submit" name="submit"></td>
</tr>
</table>
<\-pageevents>
<-pageaccueil>
<table><form method="post" action="admin.php?ok=accueil" name="formulaire"><tbody><tr>
<th>Accueil</th></tr></tbody><span>
<tbody><tr><td><*Xcode></td></tr><tr><td><input value="Envoyer" type="submit" name="submit"></td></tr></tbody></form></table></span>
<\-pageaccueil>
<-pagebugs>
<table><tbody><tr>
<th>Bugs</th></tr></tbody><span>
<tbody><tr><td><*bugs></td></tr></tbody></table></span>
<table><tr><td><a href="admin.php?ok=delbugs">Vider</a></td></tr></table>
<\-pagebugs>
<-pageinfo>
<table><form method="post" action="admin.php?ok=info" name="formulaire"><tbody><tr>
<th colspan="2">Information</th></tr></tbody><span>
<tbody>
<tr><td>Titre</td><td><input type="text" name="titre" id="titre" value="<*titre>"/></td></tr>
<tr><td colspan="2"><*Xcode></td></tr><tr><td colspan="2"><input value="Envoyer" type="submit" name="submit"></td></tr></tbody></form>
</table></span>
<table><tr><td><a href="admin.php?ok=delinfo">Supprimer le message d'information</a></td></tr></table>
<\-pageinfo>

Et ensuite avec des regex je recompose la page. Voici le principe.
Je savais pas qu'il existait des lib pour ça en fait, ça vraiment être plus pratique.
BeKidding

BeKidding Le 9 mai 2016 à 19:16

Moi c'est à l'ancienne et ca me convient parfaitement ^^ (P.S.: Je sais c'est pas top top de faire comme ça)
dqfjsqhgfdqhvsq

dqfjsqhgfdqhvsq Le 9 mai 2016 à 19:53

@TheFlameFlo après ca dépend quand même pas mal de ta façons de développer. Choisi l'arborescence que tu préfères et surtout avec laquelle ça marche le mieux ! :'D
TheFlameflo

TheFlameflo Le 9 mai 2016 à 22:48

Merci à vous tous ! 😀
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte