1 | <?php |
||
22 | class CookieInjector |
||
23 | { |
||
24 | /** |
||
25 | * @var CookieInterface[] |
||
26 | */ |
||
27 | protected $cookieModels = []; |
||
28 | |||
29 | /** |
||
30 | * Inject HTTP cookies into cookie models. |
||
31 | * |
||
32 | * @param Request $request |
||
33 | */ |
||
34 | public function inject(Request $request) |
||
35 | { |
||
36 | foreach ($this->cookieModels as $cookieModel) { |
||
37 | $cookie = $this->getHttpCookie($cookieModel, $request); |
||
38 | $cookieModel->load($cookie); |
||
|
|||
39 | } |
||
40 | } |
||
41 | |||
42 | /** |
||
43 | * Get HTTP cookie for $model. |
||
44 | * |
||
45 | * @param CookieInterface $cookieModel |
||
46 | * @param Request $request |
||
47 | * |
||
48 | * @return array|null |
||
49 | */ |
||
50 | protected function getHttpCookie(CookieInterface $cookieModel, Request $request) |
||
51 | { |
||
52 | $modelName = $cookieModel->getName(); |
||
53 | |||
54 | if (null === $request->cookies || !$request->cookies->has($modelName)) { |
||
55 | return null; |
||
56 | } |
||
57 | |||
58 | $cookie = $request->cookies->get($modelName); |
||
59 | |||
60 | return $cookie; |
||
61 | } |
||
62 | |||
63 | /** |
||
64 | * @param \ONGR\CookiesBundle\Cookie\Model\CookieInterface[] $cookieModels |
||
65 | */ |
||
66 | public function setCookieModels(array $cookieModels) |
||
70 | |||
71 | /** |
||
72 | * @param CookieInterface $cookieModel |
||
73 | */ |
||
74 | public function addCookieModel(CookieInterface $cookieModel) |
||
78 | |||
79 | /** |
||
80 | * @return \ONGR\CookiesBundle\Cookie\Model\CookieInterface[] |
||
81 | */ |
||
82 | public function getCookieModels() |
||
86 | |||
87 | /** |
||
88 | * Add modified or removed cookies to the response object. |
||
89 | * |
||
90 | * @param Response $response |
||
91 | */ |
||
92 | public function update(Response $response) |
||
116 | } |
||
117 |
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: