Quelle architecture utilisez-vous ?
- Accueil
- Forum
- Programmation
- PHP
- Quelle architecture utilisez-vous ?
TheFlameflo Le 9 mai 2016 à 03:39 (Édité le 25 janvier 2019 à 17:51)
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 Le 9 mai 2016 à 10:06 (Édité le 1 janvier 1970 à 01:00)
En toute honnêteté, je le trouve vraiment bien !
PS : faut se coucher plus tôt hein 😉
TheFlameflo Le 9 mai 2016 à 12:31 (Édité le 1 janvier 1970 à 01:00)
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 Le 9 mai 2016 à 13:11 (Édité le 9 mai 2016 à 13:29)
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 Le 9 mai 2016 à 17:36 (Édité le 1 janvier 1970 à 01:00)
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 Le 9 mai 2016 à 19:16 (Édité le 1 janvier 1970 à 01:00)
dqfjsqhgfdqhvsq Le 9 mai 2016 à 19:53 (Édité le 1 janvier 1970 à 01:00)