openclassrooms/akismet-bundle

v3.1.0 2022-05-16 13:50 UTC

This package is auto-updated.

Last update: 2024-09-16 19:21:04 UTC


README

SensioLabsInsight Build Status Coverage Status

AkismetBundle 提供了 Akismet 库的集成。Akismet 库是一个 PHP5 库,它为您的应用程序提供 Akismet 垃圾邮件保护服务 功能。有关详细信息,请参阅 Akismet

安装

可以使用 composer 安装此包

composer require openclassrooms/akismet-bundle

或者直接将包添加到 composer.json 文件中

{
    "require": {
        "openclassrooms/akismet-bundle": "*"
    }
}

安装包后,将包添加到 AppKernel.php 文件中

// in AppKernel::registerBundles()
$bundles = array(
    // ...
    new OpenClassrooms\Bundle\AkismetBundle\OpenClassroomsAkismetBundle(),
    // ...
);

配置

# app/config/config.yml

openclassrooms_akismet:
    key:  %akismet.key%
    blog: %akismet.blog%

使用方法

默认服务

$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);

桥接服务

该 Bundle 集成了一个桥接服务,该服务可以从 Symfony2 requestStack 自动设置 UserIP、UserAgent 和 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>

您可以通过获取以下服务 ID 来使用它

$akismet = $container->get('openclassrooms.akismet.services.akismet_service');

而不是

$akismet = $container->get('openclassrooms.akismet.services.default_akismet_service');