- Fil d'ariane : Accueil du devBlog
- / Détail du billet (Lien direct)
Interface de gestion de headers
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 ![]()
Commentaires
[#3] Commentaire rédigé le Mardi 19 Juillet 2005 à 18:00 par neolao
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
[#5] Commentaire rédigé le Mardi 19 Juillet 2005 à 22:36 par neolao
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 ...
[#7] Commentaire rédigé le Vendredi 22 Juillet 2005 à 11:27 par Ldo
ç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']
L'ajout de commentaire a été désactivé pour ce billet.
Trackbacks
Pisteurs vers ce billet (trackbacks entrant)
Il n'y a pas encore de pisteurs pour ce billet.
Pistés par ce billet (trackbacks sortant)
Il n'y a pas encore de pisteurs effectué par ce billet.


[#1] Commentaire rédigé le Mardi 19 Juillet 2005 à 16:01 par Bruno