XHTML.net

Technology talks by Loïc d’Anterroches

News, articles, PHP, scripts, XHTML/CSS, …

  1. Home
  2. PHP: Hypertext Preprocessor
  3. Pluf - Framework en PHP5

Google Analytics et Pluf

The 2008-11-07 at 08:19 by Loïc d'Anterroches filed under Pluf - Framework en PHP5.

Une des merveilles de Pluf est le système de middleware qui permet de traiter une requête et sa réponse.

Par exemple, je peux faire un middleware qui va remplacer toutes les occurrences de Sarkozy dans les réponses par Le Petit Nicolas.

class MyApp_Middleware
{
    function process_response($request, $response)
    {
        // On ne traite que certains codes de réponse
        if (!in_array($response->status_code, 
                     array(200, 201, 202, 203, 204, 205, 206, 404, 501))) {
            return $response;
        }
        // Et uniquement le code html.
        $ok = false;
        $cts = array('text/html', 'text/html', 'application/xhtml+xml');
        foreach ($cts as $ct) {
            if (false !== strripos($response->headers['Content-Type'], $ct)) {
                $ok = true;
                break;
            }
        }
        if ($ok == false) {
            return $response;
        }
        // On fait le changement
        $response->content = str_replace('Sarkozy', 'Le Petit Nicolas', 
                                         $response->content);
        return $response;
    }
}

Le code est simple et clair. Maintenant pour activer ce middleware, il suffit dans votre fichier de configuration d’ajouter ce middleware, vous pourriez avoir par exemple :

$cfg['middleware_classes'] = array(
        'Pluf_Middleware_Session',
        'MyApp_Middleware',
        'Pluf_Middleware_Translation',
        );

Donc, je disais, si vous utilisez Google Analytics, vous pouvez simplement chargez le middleware Pluf_Middleware_GoogleAnalytics à la fin de la liste et ajouter à votre fichier de configuration le code pour votre site :

$cfg['google_analytics_id'] = 'UA-123456-7';

Cela fera automatiquement l’insertion du code JavaScript en bas de page, vous pouvez voir le résultat sur la forge de Céondo.

Comments from readers

Luigi said:

Et quand est-ce que tu nous sors une version de Google Analytics en libre ;o) ? Quoique c'est sans doute pas une bonne idée, faudrait déjà voir plus que le bout du nez de Plume 2 avant ;o)

Loïc said:

J'apprends beaucoup en ce moment, en fait, développer un framework et des applications l'utilisant est très formateur. InDefero, puis my.ceondo.com ces derniers jours (pour mes clients) me permettent de mieux penser Plume 2.

C'est dans l'hiver 2001/2002 que j'ai créé la première version de Plume. Peut-être le moment de profiter d'un nouvel hiver.

Sinon, pour Plume 2, je suis toujours en interrogation par rapport à l'approche. Dois-je aller dans la direction "administration automatique à la Django" ou Plume 1 avec une interface vraiment dédiée au CMS ? Au début, je pensais l'approche Django comme étant la meilleure, maintenant, je ne le pense plus, mais je me demande toujours comment gérer de multiples types de ressources avec élégance.

Voice your ideas

It is painless and I try not to kill electrons in the process.


Your email is required but will not be shared nor displayed.


Do you think your comment will force me to write even better stuff next time? If so, you simply rock.


Logo of Plume CMS