Installer et utiliser l'antispam Akismet sous Symfony2
Akismet est l'un des antispam les plus utilisé notamment pour le système de commentaires des blogs Wordpress. Il permet une détection assez poussée des spams en analysant le contenu des messages ainsi que des adresses mail et noms d'utilisateurs s'il y a lieu.
Il existe sous symfony un bunble permettant son utilisation. Je vais donc vous expliquer comment l'installer à l'aide de composer (si vous ne savez pas comment utiliser composer, je vous propose ce tuto).
Le bundle que nous allons installer est celui-ci.
Installation et configuration :
Configuration du fichier composer.json :
Il va falloir dans un premier temps éditer le fichier composer.json pour lui indiquer ce que l'on veux installer. Je vous invite donc à ajouter les lignes suivantes :
"require": { //... "ornicar/akismet-bundle": "dev-master", "kriswallsmith/buzz" : "*", },
Téléchargement et installation des fichiers :
Nous allons maintenant exécuter composer pour qu'il installe les nouveaux bundles. Depuis le terminal placez vous à la racine de votre site Symfony et exécutez donc la commande suivante :
php composer.phar update
Notez que votre fichier composer.phar n'est peut-être pas placé à la racine de votre site, si tel est le cas adaptez donc le chemin du fichier.
La commande s'occupera donc de télécharger, d'installer les fichiers et de mettre à jour automatique le fichier autoload de Symfony. En soit vous devriez avoir deux nouveaux dossiers dans le répertoire Vendor qui sont : "ornicar" et "kriswallsmith".
Enregistrement du bundle dans le Kernel :
Maintenant il nous faut enregistrer notre nouveau bundle dans le Kernel du système. Éditez donc le fichier /app/AppKernel.php et ajoutez cette ligne :
$bundles = array( //... new Ornicar\AkismetBundle\OrnicarAkismetBundle(), );
Configuration du bundle Akismet :
Une dernière chose avant de pouvoir l'utiliser il faut configurer le bundle. Ajouter donc ces lignes à votre fichier app/config/congig.yml :
ornicar_akismet: api_key: xxxxxxxxxxxxx url: http://votresite.com
Vous remarquez qu'il vous faut indiquer une clé d'api et l'url de votre site. Pour obtenir votre clé il vous suffis de vous inscrire sur le site d'Akismet en choisissant l'offre "Personal" gratuite.
Voilà l'installation et la configuration est maintenant terminée.
Utilisation :
L'utilisation d'Akismet est maintenant très simple. Placez vous dans un premier temps dans la fonction de votre controlleur à l'endroit ou vous récupérez les données que vous souhaitez vérifier.
Voici le code vous permettant de vérifier si les données réçu sont du spam ou non :
$akismet = $this->container->get('ornicar_akismet'); $isSpam = $akismet->isSpam(array( 'comment_author' => 'Auteur du message', 'comment_content' => 'Contenu du message' ));
Vous renseignez donc les informations auteur et message à vérifier. Sachez qu'il est possible d'envoyer plus d'informations suivant les champs de votre formulaire. Par exemple une adresse email avec "comment_author_email", l'adresse d'un site avec "comment_author_url"... (La liste des options est disponible ici).
Sachez aussi qu'il n'y a pas besoin de fournir l'ip, ou user_agent de l'auteur du message, le bundle s'en charge tout seul.
Catégories : Symfony2
Par Guillaume le 10/02/2014 à 02:41