proklung / custom-request-responser-bundle
自定义 Symfony 的请求响应工具
1.0.3
2021-05-12 12:17 UTC
Requires
- php: >=7.3
- symfony/config: ~4|~5
- symfony/dependency-injection: ^4.0 || ^5.0
- symfony/event-dispatcher: ^4.0 || ^5.0
- symfony/expression-language: ^4.0 || ^5.0
- symfony/http-foundation: ^4.0 || ^5.0
- symfony/http-kernel: ^4.0 || ^5.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-12 19:35:48 UTC
README
内部
安装
composer.json
"repositories": [ { "type": "git", "url": "https://github.com/proklung/custom.request.responser.bundle" } ]
composer require proklung/custom-request-responser-bundle
配置示例
在 local/packages/custom_request_responser.yaml
(或 /config/packages/custom_request_responser.yaml
用于 WordPress) 地址。
custom_request_responser: defaults: enabled: true # True - middleware запрещено, false - нет. # По умолчанию false. middlewares_disabled: custom_request_responser.middleware.inline_css: true custom_request_responser.middleware.dns_prefetch: true custom_request_responser.middleware.remove_comments: true custom_request_responser.middleware.collapse_whitespace: true custom_request_responser.middleware.remove_quotes: true custom_request_responser.middleware.elide_attributes: true # Middleware, запускаемые на контент Битрикса. # True - middleware запрещено, false - нет. # По умолчанию false. bitrix_middlewares_disabled: custom_request_responser.middleware.inline_css: false custom_request_responser.middleware.dns_prefetch: false custom_request_responser.middleware.remove_comments: false custom_request_responser.middleware.collapse_whitespace: false custom_request_responser.middleware.remove_quotes: false custom_request_responser.middleware.elide_attributes: false headers: # Apply a CSP on all the responses - Content-Security-Policy: default-src 'self' - name: Cache-Control value: max-age=31536000, public condition: response.headers.get('Content-Type') matches '/^html/'
组件
kernel.response 处理器
custom_request_responser.logger_response
- 记录请求 & 响应custom_request_responser.robots
- 管理路由的索引custom_request_responser.compress_response
- 对 txt/html 类型的响应进行压缩custom_request_responser.set.headers
响应中间件
custom_request_responser.middleware.dns_prefetch
- 在 HEAD 中注入标签以启用浏览器的 DNS 预取custom_request_responser.middleware.remove_comments
- 删除 HTML、JS 和 CSS 注释custom_request_responser.middleware.collapse_whitespace
- 通过删除不必要的空白减少 HTML 文件中传输的字节数custom_request_responser.middleware.remove_quotes
- 从 HTML 属性中删除不必要的引号custom_request_responser.middleware.elide_attributes
- 当指定值等于默认值时从标签中删除属性custom_request_responser.middleware.inline_css
- 通过将 CSS 移动到头部将标签的 inline "style" 属性转换为类
标记为 response.middleware
并应继承自 AbstractPageSpeed
。
自定义处理器的示例 - 是否需要索引路由
use Prokl\CustomRequestResponserBundle\Services\Contracts\IndexRouteManagerInterface; use Symfony\Component\HttpFoundation\Request; class AdminRouteProcessor implements IndexRouteManagerInterface { /** * @inheritDoc */ public function shouldIndex(Request $request): bool { $url = $request->getPathInfo(); // Не индексировать страницы, в url которых встречается /api/. if (stripos($url, '/api/') !== false) { return false; } return true; } }