[apprendre] Php

Discussion dans 'Web, design' créé par WaKaaN, 7 Avril 2008.

Statut de la discussion:
Fermée.
  1. Offline
    ozilrit Touriste
    Quelques remarques :
    • Apprends l'orienté objet.
    • Apprends l'MVC.
    • Documente.
      Tu peux observer tout cela dans le ZF.
    • Évite d'utiliser directement ta base de donnée pour journaliser.
      Expédie plutôt l'info. dans le cache et relève-traite-stocke les données toutes les n périodes.
    • Évite les double-guillemets pour délimiter une chaîne.
    • Évite de te connecter/déconnecter de la bdd à chaque requête ! =]
    • Intéresse toi à l'extension gettext, équivalent de ton "lang".

    Bon apprentissage ! ;)
    N'hésite pas à poser tes questions ici.
    ozilrit, 7 Avril 2008
    #21
  2. Offline
    WaKaaN JcQL
    Pourrais-tu préciser ces 3 points? Thx ;
    WaKaaN, 7 Avril 2008
    #22
  3. Offline
    ozilrit Touriste
    De mémoire :
    • Ta méthode setLog (...) insert une ligne dans la bdd, à chaque log ! Tu fais donc, en moyenne, 4 inserts par page uniquement pour garder une trace de ce qu'a fait l'utilisateur.
      Tu devrais plutôt réfléchir à une manière asynchrone de journalisation. Par exemple : envoyer tes logs dans le cache puis, toutes les 15 minutes, relever le cache, stocker les logs durablement (p.e.: dans la bdd) et vider le cache.

    • J'ai repéré des "Hello, " . $world . " !". C'est dommage d'utiliser les doubles guillemets alors que tu fais déjà l'effort de concaténer.

    • À chaque requête : tu inclus dbconnect avant - dbclose après. Tu te connectes, tu exécutes, tu te déconnectes. Tu te connectes, tu exécutes, tu te déconnectes. Tu te connectes, tu exécutes, tu te déconnectes. Tu te connectes, tu exécutes, tu te déconnectes.

      Hormis le fait que tu inclus plusieurs fois le même fichier et que ceci devrait être une classe, tu peux bien sûr conserver la même connection pour exécuter toutes tes requêtes.

      Parcontre, fermer la connection après toutes les requêtes - et avant de débuter les traitements ou l'affichage - est une bonne pratique. =]
    ozilrit, 7 Avril 2008
    #23
  4. Offline
    WaKaaN JcQL
    Donc en gros ca revient au meme non ?

    genre :

    close() - connect() - exec() -------------------- close() - connect() - exec() ?

    Ou j'ai rien compris ?
    WaKaaN, 7 Avril 2008
    #24
  5. Offline
    ozilrit Touriste
    Tu fais :
    connect () - exec () - close () - traitement - connect () - exec () - close () - traitement - connect () - exec () - close () - traitement - connect () - exec () - close () - traitement - connect () - exec () - close () - traitement - affichage

    Il faudrait :
    connect () - exec () - exec () - exec () - exec () - exec () - close () - traitement - affichage
    ozilrit, 7 Avril 2008
    #25
  6. Offline
    WaKaaN JcQL
    Ah okay :) J'ai compris :)

    Maintenant je vais essayer d'apprendre le zend framework... Voir comment ils fonctionnent, voir ce dont ils sont capables... J'en ai vu dautre aussi, j'irais jeter un coup d'oeil dans tout ca... Je reviendrais surement d'ici un mois une fois que j'aurais tout assimiler et changer de technique :)

    En tout cas, un grand merci ! J'ai appris pas mal de chose ;)

    Encore juste une chose...

    Lorsque tu me dis de d'abord mettre tout en cache... Comment faire? Je n'ai absolumeent aucune idée du fonctionnement...
    WaKaaN, 7 Avril 2008
    #26
  7. Offline
    ozilrit Touriste
    Avec un rdbms, le plus lourd n'est généralement pas la requête mais bien le handshaking (connect()).

    Il est donc conseillé, avec Apache, d'utiliser une connection persistante (pconnect()).
    ozilrit, 7 Avril 2008
    #27
  8. Offline
    ozilrit Touriste
    Il existe beaucoup de moyens pour cacher un objet : script, fichier, mémoire, ...

    Je te propose d'étudier l'extension APC :
    • cache d'OPCode :
      il stocke l'intérprétation du Zend Engine afin d'éviter de réinterpréter le script à chaque requête.
    • cache classique en mémoire et non-distribué :
      il te permet de stocker un objet, un tableau, une chaine, ... afin d'éviter de réitérer les traitements lourds à chaque requête.

    APC est soutenu par quelques core-dev et fut récemment remis au gout du jour par un développeur de Facebook. Son utilisation est très simple. Il devrait être inclu dans PHP6 et dernier détail : c'est une des propositions de PHP pour le GSoC.


    De rien, bon amusement. =]
    ozilrit, 7 Avril 2008
    #28
Statut de la discussion:
Fermée.