begin process at 2010 02 10 11:01:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

POO

 > 

Autre

 > 

Besion d'aide pour créer un CMS


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Besion d'aide pour créer un CMS

jeudi 1 mai 2008 à 14:48:59 | Besion d'aide pour créer un CMS

Infernus32

Bonjour,

Je suis en train de développer un CMS (Content Manager System) en PHP5, le tout est évidement orienté objet.
Mais n'étant qu'à mes débuts en POO, j'ai quelques problèmes que je n'arrive pas à résoudre.
Alors voilà, j'ai une classe que j'ai nommée DbConnector qui permet de se connecter au serveur MySQL et d'envoyer des requêtes dont voici la partie interressente :

    public function __construct() {
        $this->link = mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD, FALSE)
        or die('<b>Connexion au serveur MySQL impossible !</b><br /><br />Une erreur est survenue lors de la connexion &agrave; la base de donn&eacute;es, veuillez rafra&icirc;chir la page afin de r&eacute;essayer.<br />');
        mysql_select_db(DB_NAME) or die('Base de données introuvable !');
        register_shutdown_function(array(&$this, 'close'));
    }

    public function query($query) {
        $this->globalQueriesCounter++;
   
        $deb = microtime(true);
       
$result = mysql_query($query, $this->link);
        $fin = microtime(true);

        $this->globalQueriesTimer += ($fin - $deb) * 1E3;
       
        if($errno = mysql_errno($this->link) === 0) {
            return $result;
        }
        else {
            die('<b>Erreur SQL '.(LOCAL ? $errno.' :<br />'.$query.'<br />'.mysql_error() : '!').'</b>');
        }       
    }



J'ai aussi une autre classe Article qui permet de gérer des articles.
Donc pour récupérer un article contenu dans ma base de données, j'ai une fonction du genre :

    public function getArticle() {
        $db = new DbConnector();
        $result = $db->query(
        'SELECT * FROM articles '.
        'WHERE category=\''.$this->category.'\' AND sub_category=\''.$this->subCategory.'\''
        );
       
        if($db->numRows($result) === 0) {
            return 'Article introuvable !<br />';
        }
        else {
            $article = $db->fetchObject($result);
            return(array(
            'category' => $article->category,
            'subCategory' => $article->sub_category,
            'creationDate' => date('j/m/Y', $article->creation_date),
            'editionDate' => date('j/m/Y', $article->edition_date),
            'revisionNo' => $article->revision_no,
            'title' => $article->title,
            'contents' => self::formatContents($article->contents),
            'text' => stripslashes($article->text)
            ));
        }
    }



Le problème se situe dans ma classe DbConnector lorqu'il faut compter le nombre de requêtes et le temps qu'elles ont mis à s'éxécuter, en effet, lorsque je fais $this->globalQueriesCounter++; j'incrémente bien mon compteur mais seulement pour mon instance créée avec $db = new DbConnector(); donc lorsque j'affiche mon compteur à la fin du script je n'ai pas le nombre total de requêtes mais seuelement celui de mon instance.
Donc je voudrais savoir comment faire mon remédier à ce problème. Je suis ouvert à toute proposition même s'il s'il faut recommencer mon CMS à zéro car il n'est pour l'instant pas encore très important.
De plus, si vous connaissez un CMS bien codé en PHP5 et assez petit pour que je puisse le comprendre facilement, n'hésister à m'en faire part.
Merci beaucoup
jeudi 1 mai 2008 à 17:12:09 | Re : Besion d'aide pour créer un CMS

Teclis01

Réponse acceptée !
il faut utiliser une variable static...
petite remarque ... mysql pour seul DB d'un CMS... pas top
(joomla, e107, plume,...)

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro

jeudi 1 mai 2008 à 17:55:24 | Re : Besion d'aide pour créer un CMS

Infernus32

Merci beaucoup, ça marche nickel.
Je pensais que tout ce qui était "static" générait une erreur de niveau E_STRICT mais apparemment cela ne concerne que les méthodes statiques et pas les propriétés.

Sinon, pourquoi dis tu que MySQL n'est pas top pour un CMS, j'ai déjà testé Joomla, Drupal, Haricow... ils utilisent tous MySQL. Quel SGBD me conseille tu d'autre ?
jeudi 1 mai 2008 à 18:20:44 | Re : Besion d'aide pour créer un CMS

Teclis01

Réponse acceptée !
Je ne t'en conseille aucun, je te conseille une abstraction de de DB. qu'on n'ai pas a changer bcp de choses pour que ça marche avec mssql, postgresql, ...

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro

jeudi 1 mai 2008 à 19:09:30 | Re : Besion d'aide pour créer un CMS

Infernus32

En effet, c'est une bonne idée. Je n'avais pas compris ce que tu voulais dire au début.
Je vais suivre ton conseil.
Encore merci.


Cette discussion est classée dans : mysql, db, query, article, category


Répondre à ce message

Sujets en rapport avec ce message

Affichage table [ par nagattaque ] Bonjour a tous.... Je vous explique mon problème : J'ai une table qui contient des plats. Il y a 3 types de plats : entrée, plat, dessert. Je voudrai Optimisation de connection a une base de donn?|e SQL [ par Teclis01 ] Voil¨¤ en fait j aimerais savoir comment optimiser les connection a une bas de donn¨¦es SQL. J aimerais savoir ds quel cas on doit se reconnecter a un Requete SQL incorrecte ?!? [ par Teclis01 ] Voil¨¤ le code fait ce qui lui ait demand¨¦ pourtant il m affiche un warning ... on m a dit que cela venait de ma requete mais je reste sceptique ...j quand faire un mysql_close() [ par davwart ] Bonjour à tous. J'ai retrouvé une classe MySqlDb (classe pour gérer une db mysql donc..) ce matin. En regardant le code, je me suis rendu compte qu'à Correction de code simple pour debutant [ par michmichman ] Bonjour j'ai fais un petit code pour verifier si un utilisateur est enregistré dans ma db mais bien sur il marche pasje vous le montre je suis sur que pb de passage de paramètres [ par sandro38000 ] Bonjour à tous et a toutes,je débute à programmer en php et j'ai rencontrer un problème lors du passage de paramètre d'une page à une autre.Je m'expli Comparaison de chaines contenant des apostrophes [ par jmp_416 ] Lorsque je compare deux chaines avec une requête basique du genre $query = "SELECT * from $ep_category_tablename                 where category_catego mysql_query [ par asdeejay ] Salut toule monde Je veut stocker le resultat d'une requete dans une variable et voici le code $res=mysql_query("select remboursement from epargne whe l'accés concurentiel [ par machmacha ] Bonjour,j'ai pensé a faire un traitement sur l'accées a ma base de données, càd lorsque quelqu'un veux s'inscrir sur mon site web et en meme moment un requete et insert into [ par pat65300 ] Bonsoir ,voici le code quand j l' exécute il n insere rien dans ma table installer pourtant les requetes fonctionneent bien pouvez vous m' aider. merc


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales