proklung / custom-request-responser-bundle
Request response tools for custom Symfony
Installs: 2
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
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-12-12 20:21:11 UTC
README
INTERNAL
Установка
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
- логгирование Request & Responsecustom_request_responser.robots
- управление индексацией роутаcustom_request_responser.compress_response
- минификация Response для типа txt/htmlcustom_request_responser.set.headers
Response middlewares
custom_request_responser.middleware.dns_prefetch
- injects tags in the HEAD to enable the browser to do DNS prefetchingcustom_request_responser.middleware.remove_comments
- eliminates HTML, JS and CSS commentscustom_request_responser.middleware.collapse_whitespace
- reduces bytes transmitted in an HTML file by removing unnecessary whitespacecustom_request_responser.middleware.remove_quotes
- eliminates unnecessary quotation marks from HTML attributescustom_request_responser.middleware.elide_attributes
- removing attributes from tags when the specified value is equal to the default valuecustom_request_responser.middleware.inline_css
- transforms the inline "style" attribute of tags into classes by moving the CSS to the header
Помечаются тэгом 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; } }