Skip to content

Commit 3dd46c9

Browse files
committed
Конвертор битриксового Response/Request в Symfony Response/Request.
1 parent 53cb12a commit 3dd46c9

File tree

3 files changed

+63
-5
lines changed

3 files changed

+63
-5
lines changed

config/base.yaml

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ services:
1010
# Прямой алиас сервис-контейнера Symfony. @service_container - deprecated.
1111
Psr\Container\ContainerInterface: '@service_container'
1212

13-
# Ядро.
13+
# Ядро
1414
Symfony\Component\HttpKernel\KernelInterface: '@kernel'
1515
Symfony\Component\HttpKernel\Kernel: '@kernel'
1616

@@ -23,14 +23,44 @@ services:
2323
Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface: '@parameter_bag'
2424
Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface: '@parameter_bag'
2525

26-
# Запрос.
26+
# Запрос
2727
app.request:
2828
class: Prokl\ServiceProvider\Services\AppRequest
2929
tags: ['service.bootstrap']
3030

3131
Prokl\ServiceProvider\Services\AppRequest: '@app.request'
3232
request: '@app.request'
3333

34+
# Битриксовый Request
35+
bitrix.request.instance:
36+
class: Prokl\ServiceProvider\Services\AppRequest
37+
factory: ['@app.request', 'bitrixRequest']
38+
39+
# Конвертор битриксового Request в симфонический.
40+
bitrix.request.convertor:
41+
public: false
42+
class: Prokl\ServiceProvider\Services\PSR\BitrixRequestConvertor
43+
44+
# Request, импортированный из Битриксового
45+
bitrix.request:
46+
class: Symfony\Component\HttpFoundation\Request
47+
factory: ['@bitrix.request.convertor', 'request']
48+
49+
# Битриксовый Response
50+
bitrix.response.instance:
51+
class: Prokl\ServiceProvider\Services\AppRequest
52+
factory: ['@app.request', 'bitrixResponse']
53+
54+
# Конвертор битриксового Response в симфонический.
55+
bitrix.response.convertor:
56+
public: false
57+
class: Prokl\ServiceProvider\Services\PSR\BitrixResponseConvertor
58+
59+
# Response, импортированный из Битриксового
60+
bitrix.response:
61+
class: Symfony\Component\HttpFoundation\Response
62+
factory: ['@bitrix.response.convertor', 'response']
63+
3464
# Request приложения.
3565
global.request:
3666
class: Symfony\Component\HttpFoundation\Request

readme.MD

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,12 +122,15 @@ var_dump(container($micro)->getParameter('example'));
122122

123123
## Сервисы по умолчанию
124124

125-
Автоматом регистрируются несколько сервисов:
125+
Автоматом регистрируются сервисы:
126126

127127
- `service_container` (и alias) - сервис-контейнер целиком
128128
- `app.request` - конвертор глобалов в Request
129-
- синонимы сервиса `kernel`.
130-
129+
- синонимы сервиса `kernel`
130+
- `bitrix.request.instance` - Экземпляр битриксового Request
131+
- `bitrix.response.instance` - Экземпляр битриксового Response
132+
- `bitrix.request` - Request, полученный из битриксового
133+
- `bitrix.response` - Response, полученный из битриксового
131134

132135
## Хэлперы
133136

src/Services/AppRequest.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,16 @@
22

33
namespace Prokl\ServiceProvider\Services;
44

5+
use Bitrix\Main\Application;
6+
use Bitrix\Main\HttpRequest;
7+
use Bitrix\Main\HttpResponse;
58
use Symfony\Component\HttpFoundation\Request;
69

710
/**
811
* Class AppRequest
912
* @package Prokl\ServiceProvider\Services
13+
*
14+
* @since 24.05.2021 Экземпляры битриксовых Response/Request.
1015
*/
1116
class AppRequest
1217
{
@@ -34,6 +39,26 @@ public function getRequest(): Request
3439
return $this->request;
3540
}
3641

42+
/**
43+
* Битриксовый Request.
44+
*
45+
* @return HttpRequest
46+
*/
47+
public function bitrixRequest() : HttpRequest
48+
{
49+
return Application::getInstance()->getContext()->getRequest();
50+
}
51+
52+
/**
53+
* Битриксовый Response.
54+
*
55+
* @return HttpResponse
56+
*/
57+
public function bitrixResponse() : HttpResponse
58+
{
59+
return Application::getInstance()->getContext()->getResponse();
60+
}
61+
3762
/**
3863
* Установить ключ в массиве $_SERVER.
3964
*

0 commit comments

Comments
 (0)