Twitter

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 :D

9 Comments to Interface de gestion de headers

  1. 19 juillet 2005 at 16 h 01 min | Permalink

    blog = post it ?

  2. 19 juillet 2005 at 16 h 06 min | Permalink

    @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. :)

  3. 19 juillet 2005 at 18 h 00 min | Permalink

    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

  4. 19 juillet 2005 at 21 h 15 min | Permalink

    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.

  5. 19 juillet 2005 at 22 h 36 min | Permalink

    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 …

  6. 20 juillet 2005 at 9 h 11 min | Permalink

    Merci neolao, c’est ce qu’on appelle des feedbacks :D

  7. Ldo's Gravatar Ldo
    22 juillet 2005 at 11 h 27 min | Permalink

    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 :mrgreen:

    public function appendLastModified($intLastModified);

    et tu récupère la date du client grâce à $_SERVER['HTTP_IF_MODIFIED_SINCE'] :D

  8. Ldo's Gravatar Ldo
    22 juillet 2005 at 11 h 28 min | Permalink

    ç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 :D

  9. 22 juillet 2005 at 11 h 36 min | Permalink

    Bonne nouvelle j’attends de voir ça avec impatience ;-)

    ps: j’ai encore rien fait, c’est du brainstorming ^^

Saisir un commentaire

Vous pouvez utilisez les balises HTML suivantes, ainsi que les attributs associés : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Photographie

Tranches de vie on Facebook