11<?php 
22
3+ declare (strict_types=1 );
4+ 
35namespace  VCR ;
46
57use  VCR \Storage \Storage ;
1012class  Cassette
1113{
1214 /** 
13-  * Casette name. 
14-  * 
15-  * @var string 
16-  */ 
17-  protected  $ name
18- 
19-  /** 
20-  * VCR configuration. 
21-  * 
22-  * @var Configuration 
15+  * @param Storage<array> $storage 
2316 */ 
24-  protected  $ config
25- 
26-  /** 
27-  * Storage used to store records and request pairs. 
28-  * 
29-  * @var Storage<array> 
30-  */ 
31-  protected  $ storage
32- 
33-  /** 
34-  * Creates a new cassette. 
35-  * 
36-  * @param string $name name of the cassette 
37-  * @param Configuration $config configuration to use for this cassette 
38-  * @param Storage<array> $storage storage to use for requests and responses 
39-  * 
40-  * @throws \VCR\VCRException if cassette name is in an invalid format 
41-  */ 
42-  public  function  __construct (string  $ nameConfiguration $ configStorage $ storage
43-  {
44-  $ this name  = $ name
45-  $ this config  = $ config
46-  $ this storage  = $ storage
17+  public  function  __construct (
18+  protected  string  $ name
19+  protected  Configuration $ config
20+  protected  Storage $ storage
21+  ) {
4722 }
4823
49-  /** 
50-  * Returns true if a response was recorded for specified request. 
51-  * 
52-  * @param Request $request request to check if it was recorded 
53-  * 
54-  * @return bool true if a response was recorded for specified request 
55-  */ 
5624 public  function  hasResponse (Request $ requestbool 
5725 {
5826 return  null  !== $ this playback ($ request
5927 }
6028
61-  /** 
62-  * Returns a response for given request or null if not found. 
63-  * 
64-  * @param Request $request request 
65-  * 
66-  * @return Response|null response for specified request 
67-  */ 
6829 public  function  playback (Request $ requestResponse 
6930 {
7031 foreach  ($ this storage  as  $ recording
@@ -77,48 +38,30 @@ public function playback(Request $request): ?Response
7738 return  null ;
7839 }
7940
80-  /** 
81-  * Records a request and response pair. 
82-  * 
83-  * @param Request $request request to record 
84-  * @param Response $response response to record 
85-  */ 
8641 public  function  record (Request $ requestResponse $ responsevoid 
8742 {
8843 if  ($ this hasResponse ($ request
8944 return ;
9045 }
9146
92-  $ recording  =  [
47+  $ this -> storage -> storeRecording ( [
9348 'request '  => $ requesttoArray (),
9449 'response '  => $ responsetoArray (),
95-  ];
96- 
97-  $ this storage ->storeRecording ($ recording
50+  ]);
9851 }
9952
100-  /** 
101-  * Returns the name of the current cassette. 
102-  * 
103-  * @return string current cassette name 
104-  */ 
10553 public  function  getName (): string 
10654 {
10755 return  $ this name ;
10856 }
10957
110-  /** 
111-  * Returns true if the cassette was created recently. 
112-  */ 
11358 public  function  isNew (): bool 
11459 {
11560 return  $ this storage ->isNew ();
11661 }
11762
11863 /** 
119-  * Returns a list of callbacks to configured request matchers. 
120-  * 
121-  * @return callable[] list of callbacks to configured request matchers 
64+  * @return callable[] 
12265 */ 
12366 protected  function  getRequestMatchers (): array 
12467 {
0 commit comments