openclassrooms / akismet-bundle
Akismet Bundle
Installs: 395 106
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 28
Forks: 1
Open Issues: 0
Requires
- php: >=7.4
- openclassrooms/akismet: ~2.0
- symfony/config: ~3.4 || ~4.0 || ~5.0 || ~6.0
- symfony/dependency-injection: ~3.4 || ~4.0 || ~5.0 || ~6.0
- symfony/http-kernel: ~3.4 || ~4.0 || ~5.0 || ~6.0
Requires (Dev)
- phpunit/phpunit: ~7
- satooshi/php-coveralls: ~2.1
README
The AkismetBundle offers integration of the Akismet Library. Akismet Library is a PHP5 library that provides Akismet Spam Protection service functionality in your application. See Akismet for full details.
Installation
This bundle can be installed using composer:
composer require openclassrooms/akismet-bundle
or by adding the package to the composer.json file directly:
{ "require": { "openclassrooms/akismet-bundle": "*" } }
After the package has been installed, add the bundle to the AppKernel.php file:
// in AppKernel::registerBundles() $bundles = array( // ... new OpenClassrooms\Bundle\AkismetBundle\OpenClassroomsAkismetBundle(), // ... );
Configuration
# app/config/config.yml openclassrooms_akismet: key: %akismet.key% blog: %akismet.blog%
Usage
Default Service
$commentBuilder = $container->get('openclassrooms.akismet.models.comment_builder'); $akismet = $container->get('openclassrooms.akismet.services.default_akismet_service'); $comment = $commentBuilder->create() ... ->build(); if ($akismet->commentCheck($comment)) { // store the comment and mark it as spam (in case of a mis-diagnosis). } else { // store the comment normally } // and $akismet->submitSpam($comment); // and $akismet->submitHam($comment);
Bridge Service
The Bundle integrates a bridge service which gets the Symfony2 requestStack to automatically set the UserIP, UserAgent and Referrer.
<service id="openclassrooms.akismet.services.akismet_service" class="OpenClassrooms\Bundle\AkismetBundle\Services\Impl\AkismetServiceImpl"> <call method="setAkismet"> <argument type="service" id="openclassrooms.akismet.services.default_akismet_service"/> </call> <call method="setRequestStack"> <argument type="service" id="request_stack"/> </call> </service>
You can use it by getting this service id:
$akismet = $container->get('openclassrooms.akismet.services.akismet_service');
instead of:
$akismet = $container->get('openclassrooms.akismet.services.default_akismet_service');