Blog Post

Antispam Akismet sous Symfony2

J’étais à la recherche d’une solution d’antispam pour l’un de mes sites, et après plusieurs recherche je me suis intéressé à Akismet.
Akismet est un antispam très utilisé entre autre dans le système de commentaires des blogs WordPress.
Par chance, il existe un bundle Symfony2 qui permet d’intégrer Akismet très simplement à votre projet.

Tout d’abord, il faut configurer le projet en ajoutant les lignes suivantes dans composer.json :

"require": {
	...
	"ornicar/akismet-bundle": "dev-master",
	"kriswallsmith/buzz" : "*",
	...
},

Ensuite il faut mettre à jour le projet :

php composer.phar update

Si vous n’avez pas encore installé composer voici comment faire

Maintenant il vous faut ajouter le bundle au projet en éditant le fichier app/AppKernel.php

$bundles = array(
	...
	new Ornicar\AkismetBundle\OrnicarAkismetBundle(),
	...
);

Enfin pour terminer, vous allez avoir besoin de vous créer un compte sur le site Akismet.
Si votre projet est non commercial, il y a un compte PERSONAL qui est GRATUIT et qui vous permettra d’utiliser cet antispam.
Une fois l’enregistrement réalisé, vous allez avoir une clé qui vous sera transmise et que vous allez pouvoir utiliser.

Éditez le fichier /app/config/config.yml et ajoutez :

ornicar_akismet:
    api_key:        LaCleAkismet
    url:            http://www.adresse-de-mon-site.tld

Et voilà pour ce qui est de la configuration, maintenant il ne reste plus qu’à utiliser le bundle dans notre controller :

$akismet = $this->container->get('ornicar_akismet');
$checkSpam = $akismet->isSpam(array(
     'comment_author'  => 'Auteur',
     'comment_content' => 'message',
     'comment_author_email' => 'test@test.tld',
     'user_ip' => 'xxx.xxx.xxx.xxx',
));

Voici une page de Blog Akismet : Pro Tip: Testing, testing qui vous permettra de trouver des infos pour tester la détection de spam.

About pascall

Related Posts

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *