Voici une petite note pour quand j’aurais le temps. Il faudrait que je me fasse une classe de gestion de headers, ça sera plus simple pour séparer le code, la forme et le comportement de mes pages web.
Y a plus qu’a
// + =========================================== // + Interface de gestion d'entêtes // + @package com.utils // + @author Personne encore // + ----------------------------------------------------------------------------- interface IHeadersManager { // + -------------------------------------------------------------------------- // + ENTETES HTTP // + -------------------------------------------------------------------------- // + ----------------------------------------------- // + Définit le type Mime du document // + strType Le type MIME // + ----------------------------------------------- public function setTypeMime(strType); // + ----------------------------------------------- // + Spécifie un fichier à télécharger // + strUrl URL du fichier ou nom de fichier // + strType Type de document // + ----------------------------------------------- public function setFile($strUrl, $strType); // + ----------------------------------------------- // + Spécifie une redirection // + strUrl URL de redirection // + ----------------------------------------------- public function setLocation($strUrl); // + -------------------------------------------------------------------------- // + CONTROLES // + -------------------------------------------------------------------------- // + ----------------------------------------------- // + Accès restreint pour un utilisateur ou plus // + arrUserPassword Tableau associatif contenant // + user=>mot de passe // + ----------------------------------------------- public function setBasicAuthentification($arrUserPassword); // + ----------------------------------------------- // + Paramètres Post requis // + arrNameValue Tableau associatif contenant // + nom de variable=>valeur // + boolValue Nuance les tests // + ----------------------------------------------- public function checkPost($arrNameValue, $boolValue); // + ----------------------------------------------- // + Paramètres Get requis // + arrNameValue // + boolValue Nuance les tests // + ----------------------------------------------- public function checkGet($arrNameValue, $boolValue); // + ----------------------------------------------- // + Paramètres Files requis // + arrNameValue Fichiers obligatoires // + ----------------------------------------------- public function checkFiles($arrName); // + -------------------------------------------------------------------------- // + ENTETES HTML // + -------------------------------------------------------------------------- // + ----------------------------------------------- // + Définit le doctype // + strTitle Le doctype du document // + ----------------------------------------------- public function setDtd(strDtd); // + ----------------------------------------------- // + Définit le titre // + strTitle Le titre du document // + ----------------------------------------------- public function setTitle(strTitle); // + ----------------------------------------------- // + Ajouter une balise Meta ou plus // + arrNameValue Tableau associatif contenant // + nom meta=>valeur meta // + ----------------------------------------------- public function appendMeta($arrNameValue); // + ----------------------------------------------- // + Ajouter un lien vers une feuille de style ou plus // + strUrl URL de la CSS // + strType Type de fichier // + ----------------------------------------------- public function appendStyle($strUrl, $strType); // + ----------------------------------------------- // + Ajouter un lien vers un script ou plus // + strUrl TURL du fichier de script // + strType Type de fichier // + strLanguage Langage // + ----------------------------------------------- public function appendScript($strUrl, $strType, $strLanguage); // + -------------------------------------------------------------------------- // + SORTIE // + -------------------------------------------------------------------------- // + ----------------------------------------------- // + Affiche l'entête HTML // + ----------------------------------------------- public function output(); } |
Bien sûr la structure n’est pas arrêtée. Si vous avez des idées n’hésitez pas












blog = post it ?
@Bruno
Oui ::mrgreen
Au début mon blog était destiné à faire office de post-it et de mémo ^^
Plus sérieusement(je l’étais aussi un peu déjà ) ce billet est aussi l’occasion de confronter mon modèle à votre avis et d’avoir des feedbacks.
tu pourrai mettre les détails des paramètres ?
par exemple checkPost, c’est pour checker les variables si elles existent, le deuxième paramètre je suppose que c’est pour valeur obligatoire, mais le troisième paramètre sert à quoi ?
sinon, je vois que tu veux mettre aussi l’en-tête html en plus de modifier le type mime, dans ce cas tu devrais avoir aussi la dtd et tout
Merci neolao, c’est une bonne idée le doctype.
En ce qui concerne le paramètre boolValue, il permet de spécifier la valeur du return selon que les tests sont tous vérifiés ou non.Cela implique une gestion de messages d’erreurs dans la classe car une condition non respectée ne renverra pas false.
Je vais documenter tout ceci un peu plus. Merci.
lol j’ai pas trop compris pour le boolValue
hummm pour setBasicAuthentification, peut etre en paramètre le mode de cryptage
il y a aussi l’encodage du fichier
et heu … le media du css: screen, print etc …
Merci neolao, c’est ce qu’on appelle des feedbacks
l’idée est bonne, par contre je capte pas pourquoi tu mélange les en-têtes serveur avec les html ?
ça serait pas plus clair de faire 2 classes distincte ?
sinon dans les header pour le serveur, il te manque la chose qui manque cruellement à php, la gestion des date de modification du document. qui renvoi un code 200 ou 304 en fonction de la date envoyé par le client.
je l’ai fait pour dwéf3, c’est tout con à gérer, mais ça nécessite des requêtes pour trouver la date de chaque élément qui compose la page. sur la prochaine version de dwéf par exemple, je prend en compte la date du dernier commentaire ou trackback en temps que date last-modified de la page, et j’envoie ainsi 200 ou 304 au client. comme d’habitude, tout cela n’a d’intérêt que pour le référencement, et google sitemap entre autre
public function appendLastModified($intLastModified);
et tu récupère la date du client grâce à $_SERVER['HTTP_IF_MODIFIED_SINCE']
ça me donne une idée d’ailleur, je commence la rédaction d’un petit article expliquant comment je gère ça, avec le code en bonus
Bonne nouvelle j’attends de voir ça avec impatience
ps: j’ai encore rien fait, c’est du brainstorming ^^