https://github.com/proklung/custom.request.responser.bundle
Инструментарий для работы с request-response в кастомных вариантах Symfony
https://github.com/proklung/custom.request.responser.bundle
bitrix-symfony php7 symfony-bundle wordpress-symfony
Last synced: 2 months ago
JSON representation
Инструментарий для работы с request-response в кастомных вариантах Symfony
- Host: GitHub
- URL: https://github.com/proklung/custom.request.responser.bundle
- Owner: ProklUng
- Created: 2021-05-12T08:27:00.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-05-12T12:18:09.000Z (almost 4 years ago)
- Last Synced: 2024-12-25T21:24:13.073Z (4 months ago)
- Topics: bitrix-symfony, php7, symfony-bundle, wordpress-symfony
- Language: PHP
- Homepage:
- Size: 24.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.MD
Awesome Lists containing this project
README
# Инструментарий для работы с request-response в кастомных вариантах Symfony
***INTERNAL***
## Установка
composer.json:
```json
"repositories": [
{
"type": "git",
"url": "https://github.com/proklung/custom.request.responser.bundle"
}
]
``````bash
composer require proklung/custom-request-responser-bundle
```## Пример конфигурации
По адресу `local/packages/custom_request_responser.yaml` (или `/config/packages/custom_request_responser.yaml` для Wordpress).
```yaml
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: falseheaders:
# 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 & Response
- `custom_request_responser.robots` - управление индексацией роута
- `custom_request_responser.compress_response` - минификация Response для типа txt/html
- `custom_request_responser.set.headers`### Response middlewares
- `custom_request_responser.middleware.dns_prefetch` - injects tags in the HEAD to enable the browser to do DNS prefetching
- `custom_request_responser.middleware.remove_comments` - eliminates HTML, JS and CSS comments
- `custom_request_responser.middleware.collapse_whitespace` - reduces bytes transmitted in an HTML file by removing unnecessary whitespace
- `custom_request_responser.middleware.remove_quotes` - eliminates unnecessary quotation marks from HTML attributes
- `custom_request_responser.middleware.elide_attributes` - removing attributes from tags when the specified value is equal to the default value
- `custom_request_responser.middleware.inline_css` - transforms the inline "style" attribute of tags into classes by moving the CSS to the headerПомечаются тэгом `response.middleware` и должны наследоваться от `AbstractPageSpeed`.
### Пример кастомного обработчика - нужно ли индексировать роут или нет
```php
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;
}
}
```