承接 dompat/stemmer-bundle 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

dompat/stemmer-bundle

最新稳定版本:v1.0.0

Composer 安装命令:

composer require dompat/stemmer-bundle

包简介

Symfony integration for the PHP Stemmer. Includes Twig filters, automatic driver registration and YAML configuration.

README 文档

README

Latest Version on Packagist Software License PHP Version Symfony Version

This bundle integrates the dompat/stemmer library into Symfony. It provides automatic service registration, Twig filters and easy configuration for language drivers.

✨ Features

  • Automatic Driver Registration: Registers all drivers provided by dompat/drivers.
  • Twig Support: Simple |stem filter for your templates.
  • Configurable Contexts: Map custom locales to specific drivers via YAML.
  • Autoconfiguration: Just implement DriverInterface to add your own drivers.
  • Driver Priority: Easily override core drivers with your own implementation.

🚀 Installation

Install the bundle via Composer:

composer require dompat/stemmer-bundle

Enable the bundle in config/bundles.php:

return [
    // ...
    Dompat\StemmerBundle\DompatStemmerBundle::class => ['all' => true],
];

📖 Usage

Using the Service

You can inject Dompat\Stemmer\Stemmer into your services or controllers:

use Dompat\Stemmer\Stemmer;
use Dompat\Stemmer\Enum\StemmerMode;

public function search(string $query, Stemmer $stemmer)
{
    $stemmed = $stemmer->stem($query, 'cs', StemmerMode::AGGRESSIVE);
    // ...
}

Using Twig

The bundle provides a stem filter:

{# Simple usage (uses LIGHT mode by default) #}
{{ 'working'|stem('en') }} {# output: work #}

{# With explicit mode #}
{{ 'declaration'|stem('en', 'aggressive') }} {# output: declar #}

Available modes: light (default), aggressive.

⚙️ Configuration

By default, the bundle registers all drivers found in dompat/stemmer. You can add custom mapping or override default drivers in config/packages/dompat_stemmer.yaml:

dompat_stemmer:
    contexts:
        sk: Dompat\Stemmer\Driver\CzechDriver  # Use Czech rules for Slovak language
        en: App\Stemmer\MyCustomEnglishDriver  # Force your custom driver for English

🌍 Adding Custom Drivers

To add a new language driver, implement Dompat\Stemmer\Contract\DriverInterface.

Autowiring and Priority

If you use autoconfiguration (default in Symfony), your driver will be automatically registered with the Stemmer manager.

Custom drivers have a higher priority by default. This means if you create your own EnglishDriver, it will automatically replace the original one from the library without any extra configuration.

If you want to use a specific driver for a locale (e.g., to switch back to the original one or map a different class), use the contexts configuration shown above.

namespace App\Stemmer;

use Dompat\Stemmer\Contract\DriverInterface;
use Dompat\Stemmer\Contract\StemmerModeInterface;

class FrenchDriver implements DriverInterface
{
    public function getLocale(): string
    {
        return 'fr';
    }

    public function stem(string $word, StemmerModeInterface $mode): string
    {
        // ... your implementation
    }

    public function __toString(): string
    {
        return 'FrenchDriver';
    }
}

📄 License

This bundle is licensed under the MIT License.

统计信息

  • 总下载量: 1
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 7
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-02-26

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固