Skip to content

Commit c3fae4b

Browse files
committed
messages
1 parent 79d0d29 commit c3fae4b

File tree

6 files changed

+361
-16
lines changed

6 files changed

+361
-16
lines changed

src/PHPixie/HTTP/Messages.php

Lines changed: 124 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,128 @@
44

55
class Messages
66
{
7-
public function stream($file){}
8-
public function stringStream($file){}
9-
public function sapiUploadedFile($data){}
10-
public function sapiUri(){}
7+
public function message($protocolVersion, $headers, $body)
8+
{
9+
return new Messages\Message\Implementation(
10+
$protocolVersion,
11+
$headers,
12+
$body
13+
);
14+
}
15+
16+
public function request($protocolVersion, $headers, $body, $method, $uri)
17+
{
18+
return new Messages\Message\Request\Implementation(
19+
$protocolVersion,
20+
$headers,
21+
$body,
22+
$method,
23+
$uri
24+
);
25+
}
26+
27+
public function serverRequest(
28+
$protocolVersion,
29+
$headers,
30+
$body,
31+
$method,
32+
$uri,
33+
$serverParams,
34+
$queryParams,
35+
$parsedBody,
36+
$cookieParams,
37+
$uploadedFiles,
38+
$attributes = array()
39+
)
40+
{
41+
return new Messages\Message\Request\ServerRequest\Implementation(
42+
$protocolVersion,
43+
$headers,
44+
$body,
45+
$method,
46+
$uri,
47+
$serverParams,
48+
$queryParams,
49+
$parsedBody,
50+
$cookieParams,
51+
$uploadedFiles,
52+
$attributes
53+
);
54+
}
55+
56+
public function sapiServerRequest(
57+
$server = null,
58+
$get = null,
59+
$post = null,
60+
$cookies = null,
61+
$files = null,
62+
$attributes = array()
63+
)
64+
{
65+
return new Messages\Message\Request\ServerRequest\SAPI(
66+
$this,
67+
$server !== null ? $server : $_SERVER,
68+
$get !== null ? $server : $_GET,
69+
$post !== null ? $server : $_POST,
70+
$cookies !== null ? $server : $_COOKIES,
71+
$files !== null ? $server : $_FILES,
72+
$attributes
73+
);
74+
}
75+
76+
public function response($protocolVersion, $headers, $body, $statusCode = 200, $reasonPhrase = null)
77+
{
78+
return new Messages\Message\Response(
79+
$protocolVersion,
80+
$headers,
81+
$body,
82+
$statusCode,
83+
$reasonPhrase
84+
);
85+
}
86+
87+
public function stream($uri, $mode = 'r')
88+
{
89+
return new Messages\Stream\Implementation($uri, $mode);
90+
}
91+
92+
public function stringStream($string = '')
93+
{
94+
return new Messages\Stream\String($string);
95+
}
96+
97+
public function uri($uri)
98+
{
99+
return new Messages\URI\Implementation($uri);
100+
}
101+
102+
public function sapiUri($server = null)
103+
{
104+
return new Messages\URI\SAPI(
105+
$server !== null ? $server : $_SERVER
106+
);
107+
}
108+
109+
public function uploadedFile(
110+
$file,
111+
$clientFilename = null,
112+
$clientMediaType = null,
113+
$size = null,
114+
$error = UPLOAD_ERR_OK
115+
)
116+
{
117+
return new Messages\UploadedFile\Implementation(
118+
$this,
119+
$file,
120+
$clientFilename,
121+
$clientMediaType,
122+
$size,
123+
$error
124+
);
125+
}
126+
127+
public function sapiUploadedFile($fileData)
128+
{
129+
return new Messages\UploadedFile\SAPI($this, $fileData);
130+
}
11131
}

src/PHPixie/HTTP/Messages/Message/Request/ServerRequest/SAPI.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44

55
class SAPI extends \PHPixie\HTTP\Messages\Message\Request\ServerRequest
66
{
7-
protected $http;
7+
protected $messages;
88
protected $fileParams;
99

10-
public function __construct($http, $server, $get, $post, $cookies, $files, $attributes = array())
10+
public function __construct($messages, $server, $get, $post, $cookies, $files, $attributes = array())
1111
{
12-
$this->messages = $http;
12+
$this->messages = $messages;
1313

1414
$this->serverParams = $server;
1515
$this->queryParams = $get;
@@ -109,7 +109,7 @@ protected function requireBody()
109109
protected function requireUri()
110110
{
111111
if($this->uri === null) {
112-
$this->uri = $this->messages->sapiUri();
112+
$this->uri = $this->messages->sapiUri($this->serverParams);
113113
}
114114
}
115115
}

src/PHPixie/HTTP/Messages/Stream/Implementation.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
class Implementation implements StreamInterface
99
{
10-
protected $name;
10+
protected $uri;
1111
protected $mode;
1212

1313
protected $resource;
@@ -17,9 +17,9 @@ class Implementation implements StreamInterface
1717
protected $isWritable;
1818
protected $isSeekable;
1919

20-
public function __construct($name, $mode = 'r')
20+
public function __construct($uri, $mode = 'r')
2121
{
22-
$this->name = $name;
22+
$this->uri = $uri;
2323
$this->mode = $mode;
2424
}
2525

@@ -28,7 +28,7 @@ protected function resource($throwIfDetached = false)
2828
if(!$this->processed) {
2929

3030
if($this->resource !== false) {
31-
$this->resource = fopen($this->name, $this->mode);
31+
$this->resource = fopen($this->uri, $this->mode);
3232
}
3333

3434
$this->processed = true;

src/PHPixie/HTTP/Messages/UploadedFile/Implementation.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,16 @@
66

77
class Implementation extends \PHPixie\HTTP\Messages\UploadedFile
88
{
9-
public function __construct($http, $file, $clientFilename = null, $clientMediaType = null, $size = null, $error = 0)
9+
public function __construct(
10+
$messages,
11+
$file,
12+
$clientFilename = null,
13+
$clientMediaType = null,
14+
$size = null,
15+
$error = UPLOAD_ERR_OK
16+
)
1017
{
11-
parent::__construct($http);
18+
parent::__construct($messages);
1219

1320
$this->file = $file;
1421
$this->clientFilename = $clientFilename;

src/PHPixie/HTTP/Messages/UploadedFile/SAPI.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66

77
class SAPI extends \PHPixie\HTTP\Messages\UploadedFile
88
{
9-
public function __construct($http, $fileData)
9+
public function __construct($messages, $fileData)
1010
{
11-
parent::__construct($http);
11+
parent::__construct($messages);
1212

1313
$this->clientFilename = $fileData['name'];
1414
$this->clientMediaType = $fileData['type'];

0 commit comments

Comments
 (0)