Topic: Passage de mon architecture pseudo MVC à Hoa
(gros boulot, en perspective autant pour moi que pour vous
)
Alors voilà dans le cadre d'une restructuration partielle, j'ai décidé de me lancer dans le passage d'un site de mon architecture à l'utilisation de Hoa.
Pour commencer, voici ce que donne l'architecture actuelle:
/
/libs
/img
/config
/tmpl
/site1
page1.tmpl.php
page1.mdl.php
[...]
/site2
[...]
controlleur.phpDonc en gros, répertoire libs pour les classes de cache, de formatage de données, etc...
img et config parle d'eux même...
Et enfin le repertoire tmpl dans lequel il y a plusieurs repertoires concernant les différents sites (aux nombres de trois aujorud'hui, je vous laisse visionner http://galapiat.fr pour mieux comprendre: pages communes, compagnie, festival)
ça rajoute je suppose un peu de difficulté? puisque ce sont trois design/structures distinct(e)s!
Voilà pour la structure, et maintenant le fichier controlleur.php:
<?php
//coding: utf-8 (Scite configuration)
include('./libs/mysql_utf8.php');
include('./libs/cache.class.php');
include('./libs/format.class.php');
include('./libs/pagination.class.php');
include('./config/config.php');
if(empty($_GET['p']))
$_GET['p']='accueil';
if(isset($_GET['d'])){
if(empty($_GET['d'])) $_GET['d']='divers';
$sql='SELECT * FROM pages as p, repertoires as r WHERE r.id_rep=p.id_rep AND p.nom ='.$connexion->quote($_GET['p']).' AND r.nom='.$connexion->quote($_GET['d']);
$resultats=$connexion->query($sql);
$page= $resultats->fetch(PDO::FETCH_ASSOC);
if(!$page){
include('./tmpl/divers/404.mdl.php');
exit();
} elseif($page['ouvert']=='0'){
include('./tmpl/divers/fermeture.mdl.php');
exit();
}
} else {
include('./tmpl/divers/404.mdl.php');
exit();
}
//nom du fichier de cache
$cache_name=$page['id_page'];
if(!empty($_GET['a'])){
$cache_name.='_a'.$_GET['a'];
}
if(!empty($_GET['page'])){
$cache_name.='_p'.$_GET['page'];
}
//démarrage du cache
try{
$cache=new cache($cache_name);
$cache->initCache((is_numeric($page['cacheType']) ? intval($page['cacheType']) : $page['cacheType']));
} catch (Exeption $e){
echo $e->getMessage();
}
include($page['url_model']);
?>En gros il sert à inclures les différentes librairies pour plus tard (bien que ce ne soit pas forcément très clair je l'accorde, par exemple la classe pagination ne sert pas sur des pages statiques et pourtant elle est là...
)
Ensuite, on cherche la page demandée (je vous donnerai le .htaccess si vous voulez), si elle est valide, hop on se prépare à inclure, sinon on inclu la page 404 ou fermeture, jusque là ça va?
Ensuite si pas de problème démarrage du cache, et inclusion de la page .mdl.php
qui contient par exemple:
<?php
//coding: utf-8 (Scite configuration)
$title=$CONFIG['titleDivers'].$page['title'];
$css=$page['url_css'];
//inclusion de la vue
include($page['url_vue']);
?>C'est dans ces pages (.mdl.php) qu'on peut retrouver des appels à la bdd, des traitements, etc...
Voilà
Bon je sais pas trop comment procéder pour passer à Hoa
Je croit que ce qui me pose le plus de problème actuellement, c'est comprendre comment organiser les fichiers (noms,place,etc...)
Parce que passer de mon système de cache à celui de Hoa ne devrait pas être très difficile par exemple...
Mais c'est surtout l'organisation...
Bon je m'arrête là pour le moment, mais je peux apporter toutes sortes de précisions supplémentaires!
Merci d'avance pour l'immense aide apportée
Ps: peut-être que ça permettra au logo Hoa de se promener un peu ![]()