openeuropa / oe_search
搜索OpenEuropa项目的搜索功能。
Requires
- php: >=8.1
- drupal/core: ^10
- drupal/search_api: ^1.29
- guzzlehttp/guzzle: ^7
- laminas/laminas-diactoros: ^2.11.1
- openeuropa/europa-search-client: ^1.0.0-alpha5
Requires (Dev)
- composer/installers: ^1.5
- drupal/core-composer-scaffold: ^10
- drupal/core-dev: ^10
- drupal/http_request_mock: ^1.0
- drush/drush: ^12.4
- openeuropa/code-review: ^2.0.0-alpha6
- openeuropa/oe_multilingual: ^1.13
- openeuropa/task-runner-drupal-project-symlink: ^1.0-beta6
- phpspec/prophecy-phpunit: ^2
- dev-master
- 2.x-dev
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.0
- 2.1.1
- 2.1.0
- 2.0.0
- 2.0.0-beta6
- 2.0.0-beta5
- 2.0.0-beta4
- 2.0.0-beta3
- 2.0.0-beta2
- 2.0.0-beta1
- 2.0.0-alpha4
- 2.0.0-alpha3
- 2.0.0-alpha2
- 2.0.0-alpha1
- 1.x-dev
- 1.9.0
- 1.8.0
- 1.7.0
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.0
- 1.0.0
- dev-EWPP-4335
- dev-EWPP-2310
- dev-SDT-396
- dev-release-1.10.0
- dev-release-1.7.0
- dev-OEL-60
- dev-OEL-163
- dev-OEL-148
- dev-OEL-101
- dev-OEL-151
- dev-OPENEUROPA-2258-test-php72
- dev-OPENEUROPA-2277
- dev-OPENEUROPA-2286
- dev-OPENEUROPA-1917
- dev-OPENEUROPA-1794
This package is auto-updated.
Last update: 2024-09-12 16:37:02 UTC
README
OpenEuropa搜索模块将Europa Search Client与Search API集成。
Europa Search是欧盟委员会的企业搜索引擎。
计划中的未来开发
- 文件导入
- 搜索:简单、高级、分面搜索
- 与翻译集成
限制
- 只能导入内容实体。
- 导入的实体应公开规范URL。或者,第三方代码可以更改正在导入的文档并提供任意URL。请参阅下面的API部分。
需求
- PHP 8.1或更高版本。
- Drupal >= 10。
- Search API Drupal模块1.19或更高版本。
- Europa Search Client库。
有关依赖项的完整列表,请检查composer.json文件。
开发环境搭建
您可以通过以下步骤构建开发站点:
- 安装Composer依赖项
composer install
在composer install
之后,将自动触发post命令钩子(drupal:site-setup
)。它将确保开发站点中设置了必要的符号链接。它还会在开发配置文件(如behat.yml.dist
)中执行令牌替换。
- 通过运行以下命令安装测试站点:
./vendor/bin/run drupal:site-install
您的测试站点将在http://localhost:8080/build上可用。
请注意:项目文件和目录通过使用OpenEuropa Task Runner的Drupal项目符号链接命令在测试站点内部进行符号链接。
如果您在项目的根目录中添加了新文件或目录,您需要重新运行drupal:site-setup
以确保它们被正确符号链接。
如果您不想重新运行完整的站点设置,您可以简单地运行
$ ./vendor/bin/run drupal:symlink-project
使用Docker Compose
或者,您可以使用提供的配置使用Docker和Docker Compose来构建开发站点。
Docker提供了必要的服务和技术,如Web服务器和数据库服务器,以运行站点,无论您的本地主机配置如何。
需求
配置
默认情况下,Docker Compose读取两个文件,一个docker-compose.yml
和一个可选的docker-compose.override.yml
文件。按照惯例,docker-compose.yml
包含您的基配置,并默认提供。重写文件,顾名思义,可以包含对现有服务或完全新服务的配置重写。如果服务在两个文件中都定义,Docker Compose将合并配置。
有关Docker Compose扩展机制的更多信息,请参阅官方Docker Compose文档。
用法
要启动,请运行
docker-compose up
建议不要使docker-compose
以守护进程形式运行,这样您在完成工作后可以快速关闭它(使用CTRL+C
)。然而,如果您想以守护进程形式运行它,必须添加标志-d
docker-compose up -d
然后
docker-compose exec web composer install docker-compose exec web ./vendor/bin/run drupal:site-install
使用默认配置,开发站点的文件应在build
目录中,开发站点可通过以下地址访问:http://127.0.0.1:8080/build。
运行测试
运行grumphp检查
docker-compose exec web ./vendor/bin/grumphp run
运行phpunit测试
docker-compose exec web ./vendor/bin/phpunit
步骤调试
要从命令行启用步骤调试,请将任何值传递给容器的XDEBUG_SESSION
环境变量
docker-compose exec -e XDEBUG_SESSION=1 web <your command>
请注意,从XDebug 3开始,如果设置了变量但您的客户端没有监听调试连接,控制台将输出连接错误消息。此错误消息会导致PHPUnit测试出现假阴性。
要从浏览器启动步骤调试,请使用浏览器扩展或书签工具(如JetBrains生成的),具体请访问https://www.jetbrains.com/phpstorm/marklets/。
贡献
请阅读完整文档,了解我们的行为准则以及向我们提交pull请求的过程。
版本控制
我们使用SemVer进行版本控制。有关可用版本,请参阅此存储库的标签。
API
更改正在被索引(索引)的文档
第三方模块可以通过订阅Drupal\oe_search\Event\DocumentCreationEvent
事件来拦截和更改索引的文档
mymodule.service.yml:
services: mymodule.alter_indexed_doc: class: Drupal\mymodule\EventSubscriber\AlterIndexedDocSubscriber tags: - { name: 'event_subscriber' }
src/EventSubscriber/AlterIndexedDocSubscriber.php:
<?php namespace Drupal\mymodule\EventSubscriber; use Drupal\oe_search\Event\DocumentCreationEvent; use Symfony\Component\EventDispatcher\EventSubscriberInterface; class AlterIndexedDocSubscriber implements EventSubscriberInterface { public static function getSubscribedEvents(): array { return [DocumentCreationEvent::class => 'setReleased']; } public function setReleased(DocumentCreationEvent $event): void { $entity = $event->getEntity(); if ($entity->getEntityTypeId() === 'foo') { $event->getDocument()->setUrl("http://example.com/{$entity->uuid()}"); } } }