flyingcolours / common-bundle
常用代码的 Symfony Bundle
0.2.0
2019-09-30 14:00 UTC
Requires
- php: >=7.1
- sensio/framework-extra-bundle: ~3|~4|~5
- symfony/framework-bundle: ~2.3|~3|~4
- symfony/serializer: ~2.3|~3|~4
- symfony/twig-bundle: ~4
- willdurand/negotiation: ^2.2
Requires (Dev)
- leanphp/phpspec-code-coverage: ^4.0
- phpspec/phpspec: ^4.3
- psr/simple-cache: ^1.0
- satooshi/php-coveralls: ^2.0
- dev-master
- 0.2.0
- 0.1.10
- 0.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
- dev-develop
- dev-revert-5-feature/in-memory-cache
- dev-feature/in-memory-cache
- dev-feature/api_list_filtering_fields
- dev-feature/negotiation-update-v2.3
- dev-release/0.1.4
- dev-bugfix/array-push-additional-acl-headers
- dev-feature/allow-location-headers-in-201-response
This package is auto-updated.
Last update: 2023-07-29 01:36:17 UTC
README
项目中使用的常用 Symfony 类
安装
composer require flyingcolours/common-bundle "^0.2.0"
此版本与 Symfony 4.3 兼容,对于旧版本请检查 旧版本。
组件
内容协商和模板解析监听器
Symfony 事件监听器,根据 "Accept" 头信息确定正确的响应内容类型。
# app/config/services.yml parameters: priorities: [ 'application/json', 'text/html' ] services: listener.template.resolver: class: FlyingColours\CommonBundle\Listener\TemplateResolverListener arguments: [ "@sensio_framework_extra.view.guesser" ] tags: - { name: kernel.event_listener, event: kernel.controller, method: onKernelController } listener.content.negotiation: class: FlyingColours\CommonBundle\Listener\ContentNegotiationListener arguments: $priorities: "%priorities%" tags: - { name: kernel.event_listener, event: kernel.view, method: onKernelView }
持久化 Memcached
如果您曾经遇到这里描述的问题 (链接),那么您应该使用这个类而不是默认的 Memcached。
# app/config/services.yml services: memcached: class: FlyingColours\CommonBundle\Service\PersistentMemcached arguments: persistent_id: "%session_prefix%" calls: - [ addServer, [ "%memcached_host%", "%memcached_port%" ]] session.handler.memcached: class: Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcachedSessionHandler arguments: [ "@memcached", { prefix: "%session_prefix%", expiretime: "%session_expire%" }]
CORS 监听器
有关详细信息,请参阅 此页面
# app/config/services.yml services: listener.cors.headers: class: FlyingColours\CommonBundle\Listener\CorsHeadersListener tags: - { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }
如果您想实现快速 OPTIONS 处理程序而不创建特殊动作或控制器,可以添加额外的标签用于 kernel.request
事件。
# app/config/services.yml services: listener.cors.headers: class: FlyingColours\CommonBundle\Listener\CorsHeadersListener tags: - { name: kernel.event_listener, event: kernel.response, method: onKernelResponse } - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 33 }
要在内存缓存中使用,只需像 memcached 实现一样使用即可
services:
cache.in_memory:
class: FlyingColours\CommonBundle\Service\InMemoryCache