Débuter efficacement la conception d'un site web ?

[quote=“Lunatic”]Donc si je te lis bien, j’ai tout intérêt à procéder selon la première méthode, par « série » d’héritages, si j’ose dire. [/quote]En fait pas tant que ça car là ça risque d’être un peu le bordel. (titre, realisateur, date de sortie, résumé) (titre, auteur, date de publication, résumé) c’est vraiment similaire donc une classe d’ajout suppression et de modification de media avec une variable type qui changerait pour préciser si c’est un livre ou un film par exemple. Une classe pour la gestion de la base de données si tu en as vraiment besoin. Il te faut aussi inclure une récupération des médias pour les afficher ça peux faire parti de la meme classe tous ça. (hérité ou non)

par contre comme tu veux faire aussi une gestion d’articles et une authentification je pense que la gestion de ta base de données devrait etre séparé de la classe media (livre film) et devrait etre unique. il te faut donc une autre classe pour l’ajout suppression et modification pour les articles (gestion de commentaires aussi si tu veux) et si tu veux une classe pour l’authentification.

Ce qui pour ma part verrais d’apres ce que j’ai compris une classe article une classe sql une classe authentification et une grosse classe media comprenant l’ajout suppression modification livres et films (cette classe peut etre plusieures classes héritées.)

article :

  • ajout
  • suppression
  • modification

sql :

  • connection
  • requete ???
  • fermeture

authentification :

  • ce que tu veux

media :

  • ajout
  • suppression
  • modification

avec 2 autres classes héritées livre et media avec les méthodes qui vont bien.

Lunatic n’oublie pas non plus que tu peux faire pas mal de choses vachements sympa avec ajax donc ne met pas cette technologie de coté :smiley:

@rodmov : Si l’utilisation d’outil extérieur te suffit tu n’es pas obligé de codé quelque chose (a moins que tu ne le veuille vraiment :smiley:) quelques fois un bon petit site sympa est juste l’utilisation de bons outils avec une modif du design :wink:

oui, tu vas vite t’apercevoir que c’est pas deux classes seulement que tu auras à manipuler. À vue de nez je verrai un truc du genre :

  • des classes éditeur, auteur, réalisateur, acteur qui grosso-modo pourraient découler d’une supeclasse personne, pourquoi pas.
  • des classes livre , film, documentaire, reportage, qui grosso-modo pourraient découler d’une supeclasse média, pourquoi pas, et être composée d’une des classes précédentes, entre autre.
  • une classe visiteur de ton forum, avec la liste des documents qu’il possède sous forme d’une liste d’identifiants, où serait gérée aussi l’autorisation de modifier un status pour un docu par exemple.
  • une classe de connection à la DB, et là je te conseillerai d’utiliser la classe et les méthodes PDO, beaucoup plus sécure (puisque la requête est préparée à l’avance dans un objet et inmodifiable par injection je crois). donc chaque classe pourrait avoir ses propres méthodes d’élaboration d’une requête:
    ex: $livre->changeState(‘pourrave’); impliquerait un appel à la classe de connection, instanciation de l’objet PDO (normalement toujours la même DB) avec la table concernée, et l’exécution de la requête. (PDO nécessite peut-être une compilation php5 spécifique, je sais plus si le support est par défaut).
    voilà des idées en vrac…

Dites-moi, la qualité et la précision de vos conseils s’améliorent de message en message non ? Qu’est-ce que ça va donner dans 5 pages :wink:

Concernant les classes, vous présentez un peu les choses comme je les avais imaginées (quoique je n’en imaginais pas autant, usinagaz. Tu portes bien ton nom, non ? :wink:)

@Ashgenesis : je n’oublie pas ajax :wink: En fait j’avais déjà fait des recherches de ce côté et xajax m’avait bien plu pour sa simplicité de mise en œuvre. Il est certain que pour, par exemple, modifier l’état d’un livre, il peut être très agréable pour l’utilisateur de ne pas avoir à recharger la page.
Une question cependant : pour répondre à l’éventualité du javascript désactivé, « j’écris » les éléments ajax (un bouton, par exemple) en javascript (document.write(’<input …’)) afin qu’il ne s’affiche pas sur un client non-javascript, puis je fais suivre - éventuellement - un code dans la balise . Est-ce la meilleure (la seule ?) façon de procéder ?

@usinagaz : PDO. Tu viens de m’apprendre un nouveau sigle… Si je comprends bien il faut que je m’assure que mon hébergeur le supporte (j’imagine qu’un phpinfo() devrait me renseigner à ce sujet). Bon ben je vais me mettre à la lecture de cette page.

Thanks again !

[quote=“Lunatic”]Concernant les classes, vous présentez un peu les choses comme je les avais imaginées (quoique je n’en imaginais pas autant, usinagaz. Tu portes bien ton nom, non ? :wink:)
[/quote]oh je sais pas comme ça tu verras à l’usage …
je crains qu’il faille compiler php5 pour avoir pdo :

/etc/php5/apache2/conf.d/pdo.ini, /etc/php5/apache2/conf.d/pdo_firebird.ini, /etc/php5/apache2/conf.d/pdo_mysql.ini, /etc/php5/apache2/conf.d/pdo_odbc.ini, /etc/php5/apache2/conf.d/pdo_pgsql.ini, /etc/php5/apache2/conf.d/pdo_sqlite.ini,et/ou apache2 …
vois le manuel php5 concernant les fonctionnalités pdo, ça doit être mis.

Mon hébergeur intègre bien PDO ; vu que j’ai l’habitude de bosser directement sur mon hébergement (je le monte dans mon système de fichier) plus qu’en local je n’aurai pas de manip à effectuer.

Une question encore sur la pratique de la POO.

Une chose qui revient souvent, c’est la validation des « input » transmis par formulaires. Par exemple, vérifier qu’un champ contient bien quelque chose et/oui ne contient que des lettres et/ou ne possède aucun caractère spécial, etc.

Ce type de contrôle doit être effectué sur des attributs d’objets appartenant à des classes complètement indépendantes (par exemple, la classe “utilisateurs” et la classe “médias”, ou d’autres encore). Comment faire ça de manière efficace ?

  • soit je crée une méthode pour chaque classe mais ces méthodes seront sensiblement équivalentes, c’est un peu bête d’avoir du code en double
  • soit je crée une fonction de validation qui sera utilisée par mes classes. Pas de code en double, mais ce qui me paraît « dommage » c’est qu’alors mes classes ne sont plus réellement « autonomes » : si je les réutilise ailleurs, il me faudra songer à reprendre aussi cette fonction.
    [edit] - hum, ou alors tout bêtement je fais les tests sur le formulaire dans le corps du script lui-même et n’instancie l’objet que si tout est ok…

Vos avis là-dessus ?

mais heu … avant de créer l’objet, tu vérifies les champs de formulaire par une fonction javascript, c’est le mieux non ?
c’est pas si degueû le javascript en fait …

où alors oui, tu fais des méthodes de classes qui vérifient les données.
ou une méthode de la superclasse réutilisée dans auteur, editeur, realisateur, tout ça …

ben pas forcément le mieux car si l’user à désactiver le javascript il n’y aura aucune vérif. faut aussi vérifier du coté php. mais c’est plutôt bien de l’utiliser car ça permet d’éviter d’envoyer des données erronées au serveur php.
apres je verrais bien une classe vérification qui pourra être réutiliser pour d’autres site ultérieurs c’est peut être pas ton objectif mais l’intérêt est là.

[quote=“Ashgenesis”]
apres je verrais bien une classe vérification qui pourra être réutiliser pour d’autres site ultérieurs c’est peut être pas ton objectif mais l’intérêt est là.[/quote]

J’avais déjà fait un petit truc comme ça mais une simple fonction me suffisait (prenant comme arguments la variable à contrôler et le type de contrôle à effectuer (non-vide, que des chiffres, etc.)).

J’en revient à cette histoire de javascript ; « ma » méthode présentée plus haut (écrire avec document.write() un bouton appelant un script ajax puis employer à la suite) est-elle la meilleure ?

[quote=“Ashgenesis”]ben pas forcément le mieux car si l’user à désactiver le javascript il n’y aura aucune vérif.[/quote]certes, mais je me demande l’utilité de désactiver le javascript, sachant que ce langage est quand même ultra répandu, et un des incontournables de la programmation web, dés lors qu’on a décidé de ne pas coûte que coûte faire sans (côté programmeur).
C’est vrai, il y a des solutions tellement plus simple en javascript parfois, qu’on hésite plus à l’utiliser.
Alors, qui et pourquoi, désactive son javascript ?

sécurité, en fait le javascript permet de faire tellement de chose que la plupart des personnes travaillant dans la sécurité info le coupe pour être plus sécurisé. mais il y aussi les sites qui abuse du javascript et qui nous font chier avec leur popups ou encore leur alert de merde. Et c’est aussi une raison pour laquelle on coupe le javascript.

ho ben non je pense pas /…
firefox nous épargne ce genre de désagrément popupien non ?
sinon pour la sécu, heu … faut se lever tôt pour écrire dans un fichier de config serveur à partir d’un client par le biais du javascript … non ?
de toutes manières on ne range pas un password dans une variable javascript, ya php pour ça.

Je suis d’accord mais je ne parlais pas de faire une sécurité avec du javascript mais bien de la contournée sur certains points c’est faisable.

en ce qui concerne les popups oui et non car firefox intègre bien un bloqueur de popup mais ne bloque pas un simple alert(‘Hello world’); ce qui est tres chiant si il t’affiche ce popup a chaque fois que tu ouvre une page du site qui l’a implémenté. Va faire un tour sur google et tu verra que le javascript peut etre très utile en piratage :wink: