Bonjour à tous.
Dans le cadre d'un projet de site web développé en PHP5, j'aimerais recueillir quelques avis sur l'architecture de mon code. Je désire avant tout un code simple, performant et maintenable. Pour informations, mon site doit être traduit en plusieurs langues.
serveur :
- Debian/Apache/PHP5/mysql
Base de données :
- schéma classique avec une table par entité + table association.
- une base de données par langue
- tables texte_menu, texte_footer, ... contenant les textes du site
Acces aux données :
- une classe Connect.class.php qui prend en parametre $_GET("lg"), correspondant à la langue (www.example.com/fr, www.example.com/us,...), pour attaquer la bonne base
- des Manager.class.php qui ont pour attribut la connection et qui font des requetes SQL, grâce à des méthodes de classes
Affichage dynamique :
- des pages php dans /inc
Page html/php
index.php
Arborescence des fichiers :
index.php
error.php
news.php
.htaccess
robots.txt
...
/inc/menu.php
/inc/footer.php
/inc/home_news.php
...
/core/db/Connect.class.php
/core/mng/Manager_News.class.php
/core/mng/Manager_Client.class.php
/core/utils/GenerateSitemap.class.php
/script/generateSitemap.php
/script/testServeur.php
Concernatn l'URl rewritting, est-il plus judicieux d'utiliser l'url comme index (SELECT * FROM news WHERE url="nouveautes-google"), de mettre l'id dans l'URL (SELECT * FROM news WHERE id substr(19, 2, "nouveautes-google-25") ou de faire une requete suppléméentaire pour retrouver l'identifiant ?
Merci d'avance pour vos réponse et l'analyse de mon architecture.
Dans le cadre d'un projet de site web développé en PHP5, j'aimerais recueillir quelques avis sur l'architecture de mon code. Je désire avant tout un code simple, performant et maintenable. Pour informations, mon site doit être traduit en plusieurs langues.
serveur :
- Debian/Apache/PHP5/mysql
Base de données :
- schéma classique avec une table par entité + table association.
- une base de données par langue
- tables texte_menu, texte_footer, ... contenant les textes du site
Acces aux données :
- une classe Connect.class.php qui prend en parametre $_GET("lg"), correspondant à la langue (www.example.com/fr, www.example.com/us,...), pour attaquer la bonne base
- des Manager.class.php qui ont pour attribut la connection et qui font des requetes SQL, grâce à des méthodes de classes
Code:
public function getNews($i) {
$sql = "SELECT * FROM news ORDER BY date limit $i";
$res = mysql_query($sql, $this->connect);
return $rew;
}
Affichage dynamique :
- des pages php dans /inc
Code:
<?php>
include_once "/core/ManagerNews.php";
$mng = new ManagerNews();
$news = $mng->getNews(10);
?>
<div class="recent-news">
<div class="news">
<?php while ($row = mysql_fetch_assoc($res)) {
echo '<p>'.$row["title"].'</p>';
echo '<p>'.$row["description"].'</p>';
?>
</div>
</div>
Page html/php
index.php
Code:
<body>
<?php include_once 'inc/menu.php' ?>
<?php include_once 'inc/home_news.php' ?>
<?php include_once 'inc/footer.php' ?>
</body>
Arborescence des fichiers :
index.php
error.php
news.php
.htaccess
robots.txt
...
/inc/menu.php
/inc/footer.php
/inc/home_news.php
...
/core/db/Connect.class.php
/core/mng/Manager_News.class.php
/core/mng/Manager_Client.class.php
/core/utils/GenerateSitemap.class.php
/script/generateSitemap.php
/script/testServeur.php
Concernatn l'URl rewritting, est-il plus judicieux d'utiliser l'url comme index (SELECT * FROM news WHERE url="nouveautes-google"), de mettre l'id dans l'URL (SELECT * FROM news WHERE id substr(19, 2, "nouveautes-google-25") ou de faire une requete suppléméentaire pour retrouver l'identifiant ?
Merci d'avance pour vos réponse et l'analyse de mon architecture.