bphp

Aller au contenu | Aller au menu | Aller à la recherche

mercredi, mai 31 2006

Comment utiliser l'API d'Amazon en Francais ? (avec l'architecture REST)

Qu'est ce que l'API d'Amazon ?

Amazon s'appuie largement sur la participation de ses partenaires et a souhaité exposer une partie de son système d'information à ceux-ci. Cela couvre bien entendu l'accès au catalogue mais également la vente (la gestion du panier de commande a ainsi été exposée) et les achats (amazon sert de plateforme de vente pour de nombreux partenaires qui commercialisent des produits sur amazon).

Pour cela, Amazon a décidé de fournir des services webs à travers l'architecture SOAP et REST.

Nous allons voir ici comment utiliser les services web REST avec PHP.

Lire la suite...

vendredi, mai 26 2006

Inclusion de fichier

A un moment ou un autre vous aurez besoin d'inclure des fichiers dans une de vos pages PHP. Or il faut éviter que tout le monde puisse accéder à ces fichiers inclus.

Ce que je dis n'est pas très clair ? Prenons un exemple... J'ai un fichier index.php (à la racine de mon site) qui inclut un fichier contenu dans le répertoire includes et nommé constants.php. Or en tapant, http://mon_site.php/includes/constants.php, je ne veux pas que les utilisateurs aient accès à mon fichier.

Comment faire ?

Dans tous les fichiers à inclure, vous allez mettre le script suivant en haut du fichier :

if ( !defined('IN_SCRIPT') )
{
   die("Fichier non disponible");
}

Ainsi lorsqu'un utilisateur voudra accéder directement à http://mon_site.com/includes/constants.php, il aura le message d'erreur "Fichier non disponible".

Maintenant pour pouvoir inclure celui-ci dans vos fichiers (par exemple, ici : index.php), il est nécessaire de définire la constante IN_SCRIPT (avant l'inclusion de votre fichier) :

define('IN_SCRIPT', true);
// inclusion des fichiers

lundi, mars 13 2006

Convention de nommage et de codage

Afin de rendre votre code source plus lisible et de mieux organiser celui-ci, il est important d'utiliser une convention de nommage et de codage. Chacun a ses propres habitudes mais il est nécessaire de formaliser cela avant le début de votre projet. Je vous apporte ici quelques pistes !

Lire la suite...

mardi, mars 7 2006

Awstats

Awstats est un outil de statistiques web reconnu, mais sa configuration est un peu obscure de prime abord. Des éléments de configuration pour debian sont disponibles à cette adresse : http://www.debian-administration.org/articles/277

vendredi, mars 3 2006

PHP template engines considered harmful

J'ai trouvé un petit article sympathique sur le problème des moteurs de templates en php :
http://www.massassi.com/php/articles/template_engines
Selon l'auteur, la plupart des moteurs de templates ne remplissent pas leur objectif : la séparation de la couche applicative de la couche de présentation, mais ils tentent de séparer le code php du code html, ce qui est différent.

Apparemment seul Smarty sort du lot et répond au problème correctement, mais c'est une solution très lourde et qui demande un temps d'apprentissage important.

La meilleure solution actuellement semble donc être de ne pas utiliser de template, mais de bien architecturer son application afin de séparer la couche applicative de la couche présentation. Les solutions simples sont parfois les meilleures à la fois pour le développement et pour la maintenance du code.

Edit Luc

J'ai détecté un petit bug sur le moteur de template. Pour corriger celui-ci remplacer simplement la ligne suivante :
$this->vars[$name] = is_object($value) ? $value->fetch() : $value;

par :

if (is_object($value)
   && method_exists($value, 'fetch'))
{
        $this->vars[$name] = $value->fetch();
}
else
{
         $this->vars[$name] = $value;
}

PS : N'utilisez pas la notation <?=$variable;?> mais plutot <?php echo $variable; ?>

- page 3 de 6 -