bw / stand-with-ukraine-bundle
一个提供 StandWithUkraine 横幅并具有一些内置功能以阻止俄语用户访问资源的 Symfony 扩展包
Requires
- symfony/config: ^5.4|^6.0
- symfony/dependency-injection: ^5.4|^6.0
- symfony/event-dispatcher: ^5.4|^6.0
- symfony/http-foundation: ^5.4|^6.0
- symfony/http-kernel: ^5.4|^6.0
- symfony/translation: ^5.4|^6.0
- symfony/twig-bundle: ^5.4|^6.0
- twig/twig: ^3.3
Requires (Dev)
- dg/bypass-finals: ^1.3
- symfony/phpunit-bridge: ^5.4|^6.0
README
俄语版本?请查看 README.ru.md
此扩展包为您的 Symfony 应用程序提供内置的 StandWithUkraine 横幅,并具有阻止俄语用户访问内容的某些功能。 为什么? 伟大的问题!乌克兰现在正在发生战争。 您可以在这里了解更多信息。
此扩展包的初始想法是 促使 俄语使用者 思考!几乎所有的俄罗斯媒体都已经不再独立,并向用户传播关于世界上发生的事情甚至他们自己的国家的 假新闻。每个人都有 选择。您可以选择不同语言的来源来阅读来自世界各地许多独立和受信任媒体的新闻,不要只限于俄语和俄罗斯媒体。
功能
此扩展包包含的一些功能
- 显示 "StandWithUkraine" 横幅 以表明您的网站与乌克兰人民团结一致。
- 阻止 具有将 首选语言 设置为请求头中
Accept-Language
的ru
的用户的 内容。基本上,这会影响大多数内容以俄语阅读的人。用户只有在将首选语言更改为任何其他语言后才能访问内容。他们仍然可以保留俄语,但作为次要语言。 - 阻止 尝试从 俄罗斯 IP 地址 获取访问权限的用户,即从俄罗斯访问内容。用户只有在通过选择俄罗斯地区之外的 VPN 客户端连接后才能访问内容。这可能不太方便,但如果您使用好的 VPN 客户端,则可以获得更好的安全性,尤其是如果您从公共 Wi-Fi 点连接或对您的互联网提供商不信任时。
安装
使用 Composer 安装
$ symfony composer require bw/stand-with-ukraine-bundle
然后,如果您不使用 Symfony Flex,请启用扩展包
// config/bundles.php return [ // ... BW\StandWithUkraineBundle\StandWithUkraineBundle::class => ['all' => true], ];
然后在其配置中激活/停用事件订阅者。
配置
配置是可选的,所有选项都有默认值。但如果你想要更改它,请创建一个配置文件 config/services/stand_with_ukraine.yaml
并进行修改。以下是一个包含默认值的完整配置示例
# config/packages/stand_with_ukraine.yaml stand_with_ukraine: banner: enabled: true # Possition of the banner: "top" or "bottom" position: top # Wrap the banner with a link to the given URL target_url: null # Will be shown in the banner, HTTP host by default brand_name: null ban_language: enabled: true use_links: true ban_country: enabled: true use_links: true
或者您可以在终端中查看它,只需运行
$ symfony console config:dump-reference stand_with_ukraine
测试
为了测试目的,您可以轻松模拟不良请求,以便以简单的方式手动在您的网站上测试。要覆盖实际的国家代码为 ru
,请使用查询参数 swu_overwrite_country_code_ru
,例如
https://127.0.0.1:8000/?swu_overwrite_country_code_ru=yes
此外,您还可以使用ru
来覆盖首选语言,使用查询参数swu_overwrite_preferred_lang_ru
,例如:
https://127.0.0.1:8000/?swu_overwrite_preferred_lang_ru=yes
系统将认为您正在从俄罗斯IP地址或使用俄语首选语言发送请求,并相应地按照您的配置进行操作。
就是这样!
感谢使用这个包!如果您有任何改进的想法,请随意创建问题或发送PR。如果您喜欢它 - 请分享!