monsieurbiz/sylius-search-plugin
最新稳定版本:v2.3.2
Composer 安装命令:
composer require monsieurbiz/sylius-search-plugin
包简介
A search plugin using Elasticsearch for Sylius.
README 文档
README
Search
A search plugin for Sylius using Elastically and Jane.
Compatibility
| Sylius Version | PHP Version |
|---|---|
| 1.12 | 8.1 - 8.2 - 8.3 |
| 1.13 | 8.1 - 8.2 - 8.3 |
| 1.14 | 8.1 - 8.2 - 8.3 |
Installation
If you want to use our recipes, you can configure your composer.json by running:
composer config --no-plugins --json extra.symfony.endpoint '["https://api.github.com/repos/monsieurbiz/symfony-recipes/contents/index.json?ref=flex/master","flex://defaults"]'
This is the last version using jane-php/automapper, which requires nikic/php-parser="^4.0".
The next version will use jolicode/automapper, which is compatible with nikic/php-parser="^5.0".
composer require --no-progress --no-interaction nikic/php-parser="^4.0"
composer require monsieurbiz/sylius-search-plugin
If you are using Symfony Flex, the recipe will automatically do some actions.
For the installation without flex, follow these additional steps
Change your config/bundles.php file to add this line for the plugin declaration:
<?php return [ //.. MonsieurBiz\SyliusSearchPlugin\MonsieurBizSyliusSearchPlugin::class => ['all' => true], Jane\Bundle\AutoMapperBundle\JaneAutoMapperBundle::class => ['all' => true], ];
Create the config file in config/packages/monsieurbiz_sylius_search_plugin.yaml:
imports: - { resource: "@MonsieurBizSyliusSearchPlugin/Resources/config/config.yaml" }
Create the route config file in config/routes/monsieurbiz_sylius_search_plugin.yaml:
monsieurbiz_search_plugin: resource: "@MonsieurBizSyliusSearchPlugin/Resources/config/routing.yaml"
Copy the override templates:
cp -Rv vendor/monsieurbiz/sylius-search-plugin/src/Resources/templates/* templates/
Finally configure plugin in your .env file by adding these lines at the end :
###> MonsieurBizSearchPlugin ###
MONSIEURBIZ_SEARCHPLUGIN_MESSENGER_TRANSPORT_DSN=doctrine://default
MONSIEURBIZ_SEARCHPLUGIN_ES_HOST=${ELASTICSEARCH_HOST:-localhost}
MONSIEURBIZ_SEARCHPLUGIN_ES_PORT=${ELASTICSEARCH_PORT:-9200}
MONSIEURBIZ_SEARCHPLUGIN_ES_URL=http://${MONSIEURBIZ_SEARCHPLUGIN_ES_HOST}:${MONSIEURBIZ_SEARCHPLUGIN_ES_PORT}/
###< MonsieurBizSearchPlugin ###
-
Install Elasticsearch 💪. See Infrastructure below.
-
Your
ProductAttributeandProductOptionentities need to implement theMonsieurBiz\SyliusSearchPlugin\Entity\Product\SearchableInterfaceinterface and use theMonsieurBiz\SyliusSearchPlugin\Model\Product\SearchableTraittrait. Example with theProductAttribute:
namespace App\Entity\Product; use Doctrine\ORM\Mapping as ORM; +use MonsieurBiz\SyliusSearchPlugin\Entity\Product\SearchableInterface; +use MonsieurBiz\SyliusSearchPlugin\Model\Product\SearchableTrait; use Sylius\Component\Attribute\Model\AttributeTranslationInterface; use Sylius\Component\Product\Model\ProductAttribute as BaseProductAttribute; /** * @ORM\Entity * @ORM\Table(name="sylius_product_attribute") */ #[ORM\Entity] #[ORM\Table(name: 'sylius_product_attribute')] -class ProductAttribute extends BaseProductAttribute +class ProductAttribute extends BaseProductAttribute implements SearchableInterface { + use SearchableTrait; protected function createTranslation(): AttributeTranslationInterface { return new ProductAttributeTranslation();
-
You need to run a diff of your doctrine's migrations:
console doctrine:migrations:diff. Don't forget to run it! (console doctrine:migrations:migrate) -
Run the populate command.
Documentation
Documentation is available in the docs folder.
Infrastructure
The plugin was developed for Elasticsearch 7.16.x versions. You need to have analysis-icu and analysis-phonetic elasticsearch plugin installed.
Other information
Jane
We are using Jane to create a DTO (Data-transfer object).
Generated classes are on generated folder.
Jane configuration and JSON Schema are on src/Resources/config/jane folder.
To rebuild generated class during plugin development, we are using :
symfony php vendor/bin/jane generate --config-file=src/Resources/config/jane/jane-configuration.php
Elastically
The Elastically Client is configured in src/Resources/config/services.yaml file.
You can customize it in your .env file or if you want in config/services.yaml.
Analyzers and YAML mappings are on src/Resources/config/elasticsearch folder.
统计信息
- 总下载量: 119.47k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 49
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-05-12
