schranz-search/symfony-bundle

This package is abandoned and no longer maintained. The author suggests using the cmsig/seal-symfony-bundle package instead.

An integration of CMS-IG SEAL search abstraction into Symfony Framework.

Package info

github.com/PHP-CMSIG/seal-symfony-bundle

Type:symfony-bundle

pkg:composer/schranz-search/symfony-bundle

Fund package maintenance!

alexander-schranz

paypal.me/L91

Statistics

Installs: 15 942

Dependents: 0

Suggesters: 0

Stars: 15

0.12.14 2026-06-08 06:10 UTC

Requires

Suggests

None

Provides

None

Replaces


README

Note: This is part of the cmsig/search project create issues in the main repository.

Your feedback is important 📘
Are you working with SEAL? Let us know! | Which Search Engines do you use and why?




👁 SEAL Logo with an abstract seal sitting on a telescope.
Logo created by Meine Wilma

SEAL
Symfony Integration



Integration of the CMS-IG — Search Engine Abstraction Layer (SEAL) into Symfony.

Note: This project is heavily under development and any feedback is greatly appreciated.

Installation

Use composer for install the package:

composer require cmsig/seal-symfony-bundle

Also install one of the listed adapters.

List of adapters

The following adapters are available:

Additional Wrapper adapters:

Creating your own adapter? Add the seal-php-adapter Topic to your GitHub Repository.

Configuration

The following code shows how to configure the package:

# config/packages/cmsig_seal.yaml

cmsig_seal:
 schemas:
 app:
 dir: '%kernel.project_dir%/config/schemas'
 # engine: 'default'
 engines:
 default:
 adapter: '%env(ENGINE_URL)%'

A more complex configuration can be here found:

# config/packages/cmsig_seal.yaml

cmsig_seal:
 schemas:
 app:
 dir: '%kernel.project_dir%/config/schemas/app'
 other:
 dir: '%kernel.project_dir%/config/schemas/other'
 engine: algolia
 engines:
 algolia:
 adapter: 'algolia://%env(ALGOLIA_APPLICATION_ID)%:%env(ALGOLIA_ADMIN_API_KEY)%'
 elasticsearch:
 adapter: 'elasticsearch://127.0.0.1:9200'
 loupe:
 adapter: 'loupe://var/indexes'
 meilisearch:
 adapter: 'meilisearch://127.0.0.1:7700'
 memory:
 adapter: 'memory://'
 opensearch:
 adapter: 'opensearch://127.0.0.1:9200'
 redisearch:
 adapter: 'redis://supersecure@127.0.0.1:6379'
 solr:
 adapter: 'solr://127.0.0.1:8983'
 typesense:
 adapter: 'typesense://S3CR3T@127.0.0.1:8108'

 # ...
 multi:
 adapter: 'multi://elasticsearch?adapters[]=opensearch'
 read-write:
 adapter: 'read-write://elasticsearch?write=multi'
 index_name_prefix: ''

Usage

The default engine is available as Engine:

class Some {
 public function __construct(
 private readonly \CmsIg\Seal\EngineInterface $engine,
 ) {
 }
}

A specific engine is available under the config key suffix with Engine:

class Some {
 public function __construct(
 private readonly \CmsIg\Seal\EngineInterface $algoliaEngine,
 ) {
 }
}

Multiple engines can be accessed via the EngineRegistry:

class Some {
 private Engine $engine;

 public function __construct(
 private readonly \CmsIg\Seal\EngineRegistry $engineRegistry,
 ) {
 $this->engine = $this->engineRegistry->get('algolia');
 }
}

How to create a Schema file and use your Engine can be found SEAL Documentation.

Commands

The bundle provides the following commands:

Create configured indexes

bin/console cmsig:seal:index-create --help

Drop configured indexes

bin/console cmsig:seal:index-drop --help

Reindex configured indexes

bin/console cmsig:seal:reindex --help

Authors