Skip to content

Commit a8d2ed0

Browse files
committed
add docblocks
1 parent 077144a commit a8d2ed0

35 files changed

+1608
-281
lines changed

src/PHPixie/HTTP.php

Lines changed: 40 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,70 +2,94 @@
22

33
namespace PHPixie;
44

5+
use PHPixie\HTTP\Messages\Message\Request;
6+
7+
/**
8+
* HTTP component
9+
*/
510
class HTTP
611
{
12+
/**
13+
* @var HTTP\Builder
14+
*/
715
protected $builder;
8-
16+
17+
/**
18+
* Constructor
19+
* @param Slice $slice
20+
*/
921
public function __construct($slice)
1022
{
1123
$this->builder = $this->buildBuilder($slice);
1224
}
1325

1426
/**
15-
* @return HTTP\Messages\Message\Request\ServerRequest\SAPI
27+
* Create a PSR 7 ServerRequest from globals
28+
* @return Request\ServerRequest\SAPI
1629
*/
1730
public function sapiServerRequest()
1831
{
1932
return $this->builder->messages()->sapiServerRequest();
2033
}
2134

2235
/**
23-
* @param HTTP\Messages\Message\Request\ServerRequest $serverRequest
36+
* Create PHPixie request from server request.
37+
*
38+
* If the server request is not specified it will be created
39+
* from globals
40+
* @param Request\ServerRequest $serverRequest
2441
* @return HTTP\Request
2542
*/
2643
public function request($serverRequest = null)
2744
{
28-
if($serverRequest === null) {
45+
if ($serverRequest === null) {
2946
$serverRequest = $this->sapiServerRequest();
3047
}
3148
return $this->builder->request($serverRequest);
3249
}
3350

3451
/**
52+
* Output a HTTP response
3553
* @param HTTP\Responses\Response $response
36-
* @param HTTP\Context $context
54+
* @param HTTP\Context $context Optional HTTP context to use (e.g. for cookie data)
55+
* @return void
3756
*/
3857
public function output($response, $context = null)
3958
{
4059
$this->builder->output()->response($response, $context);
4160
}
4261

4362
/**
63+
* Output a PSR-7 response message
4464
* @param HTTP\Responses\Response $responseMessage
65+
* @return void
4566
*/
4667
public function outputResponseMessage($responseMessage)
4768
{
4869
$this->builder->output()->responseMessage($responseMessage);
4970
}
5071

5172
/**
73+
* Create a context from a HTTP request
5274
* @param HTTP\Request $request
53-
* @param HTTP\Context\Session\SAPI $session
75+
* @param HTTP\Context\Session $session Optional session container,
76+
* if not specified the default PHP session storage is used
5477
* @return HTTP\Context
5578
*/
5679
public function context($request, $session = null)
5780
{
5881
$serverRequest = $request->serverRequest();
5982
$cookieArray = $serverRequest->getCookieParams();
6083
$cookies = $this->builder->cookies($cookieArray);
61-
if($session === null) {
84+
if ($session === null) {
6285
$session = $this->builder->sapiSession();
6386
}
64-
87+
6588
return $this->builder->context($request, $cookies, $session);
6689
}
6790

6891
/**
92+
* Create a context container
6993
* @param HTTP\Context $context
7094
* @return HTTP\Context\Container\Implementation
7195
*/
@@ -75,6 +99,7 @@ public function contextContainer($context)
7599
}
76100

77101
/**
102+
* Message factory
78103
* @return HTTP\Messages
79104
*/
80105
public function messages()
@@ -83,6 +108,7 @@ public function messages()
83108
}
84109

85110
/**
111+
* Response factory
86112
* @return HTTP\Responses
87113
*/
88114
public function responses()
@@ -91,13 +117,18 @@ public function responses()
91117
}
92118

93119
/**
120+
* Get internal factory
94121
* @return HTTP\Builder
95122
*/
96123
public function builder()
97124
{
98125
return $this->builder;
99126
}
100-
127+
128+
/**
129+
* @param Slice $slice
130+
* @return HTTP\Builder
131+
*/
101132
protected function buildBuilder($slice)
102133
{
103134
return new HTTP\Builder($slice);

src/PHPixie/HTTP/Builder.php

Lines changed: 49 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,33 @@
22

33
namespace PHPixie\HTTP;
44

5+
use PHPixie\Slice;
6+
7+
/**
8+
* HTTP factory
9+
*/
510
class Builder
611
{
12+
/**
13+
* @var Slice
14+
*/
715
protected $slice;
16+
17+
/**
18+
* @var array
19+
*/
820
protected $instances = array();
9-
21+
22+
/**
23+
* Builder constructor
24+
* @param Slice $slice
25+
*/
1026
public function __construct($slice) {
1127
$this->slice = $slice;
1228
}
1329

1430
/**
31+
* Message factory
1532
* @return Messages
1633
*/
1734
public function messages()
@@ -20,6 +37,7 @@ public function messages()
2037
}
2138

2239
/**
40+
* Response factory
2341
* @return Responses
2442
*/
2543
public function responses()
@@ -28,6 +46,7 @@ public function responses()
2846
}
2947

3048
/**
49+
* Output
3150
* @return Output
3251
*/
3352
public function output()
@@ -36,24 +55,27 @@ public function output()
3655
}
3756

3857
/**
58+
* Build PHPixie request from PSR-7 ServerRequest
3959
* @param $serverRequest
40-
* @return \PHPixie\HTTP\Request
60+
* @return Request
4161
*/
4262
public function request($serverRequest)
4363
{
4464
return new Request($this, $serverRequest);
4565
}
4666

4767
/**
68+
* Proxy for building slice data
4869
* @param array $array
49-
* @return mixed
70+
* @return Slice\Type\ArrayData
5071
*/
5172
public function data($array = array())
5273
{
5374
return $this->slice->arrayData($array);
5475
}
5576

5677
/**
78+
* Build headers storage
5779
* @param array $headerArray
5880
* @return Data\Headers
5981
*/
@@ -63,6 +85,7 @@ public function headers($headerArray = array())
6385
}
6486

6587
/**
88+
* Build editable headers storage
6689
* @param array $headerArray
6790
* @return Data\Headers\Editable
6891
*/
@@ -72,6 +95,7 @@ public function editableHeaders($headerArray = array())
7295
}
7396

7497
/**
98+
* Build server data storage
7599
* @param array $serverData
76100
* @return Data\Server
77101
*/
@@ -81,6 +105,7 @@ public function serverData($serverData = array())
81105
}
82106

83107
/**
108+
* Build HTTP context
84109
* @param Request $request
85110
* @param Context\Cookies $cookies
86111
* @param Context\Session\SAPI $session
@@ -92,6 +117,7 @@ public function context($request, $cookies, $session)
92117
}
93118

94119
/**
120+
* Build cookie storage
95121
* @param array $cookieArray
96122
* @return Context\Cookies
97123
*/
@@ -101,6 +127,7 @@ public function cookies($cookieArray = array())
101127
}
102128

103129
/**
130+
* Build default session storage
104131
* @return Context\Session\SAPI
105132
*/
106133
public function sapiSession()
@@ -109,6 +136,7 @@ public function sapiSession()
109136
}
110137

111138
/**
139+
* Build a single cookie update
112140
* @param $name
113141
* @param $value
114142
* @param null $expires
@@ -140,14 +168,19 @@ public function cookiesUpdate(
140168
}
141169

142170
/**
171+
* Build context container
143172
* @param $context
144173
* @return Context\Container\Implementation
145174
*/
146175
public function contextContainer($context)
147176
{
148177
return new Context\Container\Implementation($context);
149178
}
150-
179+
180+
/**
181+
* @param $name
182+
* @return mixed
183+
*/
151184
protected function instance($name)
152185
{
153186
if(!array_key_exists($name, $this->instances)) {
@@ -157,17 +190,26 @@ protected function instance($name)
157190

158191
return $this->instances[$name];
159192
}
160-
193+
194+
/**
195+
* @return Messages
196+
*/
161197
protected function buildMessages()
162198
{
163199
return new Messages();
164200
}
165-
201+
202+
/**
203+
* @return Responses
204+
*/
166205
protected function buildResponses()
167206
{
168207
return new Responses($this);
169208
}
170-
209+
210+
/**
211+
* @return Output
212+
*/
171213
protected function buildOutput()
172214
{
173215
return new Output();

src/PHPixie/HTTP/Context.php

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,31 @@
22

33
namespace PHPixie\HTTP;
44

5+
/**
6+
* Represents a HTTP context
7+
* containing a request and cookie and session storages
8+
*/
59
class Context
610
{
11+
/**
12+
* @var Request
13+
*/
714
protected $request;
15+
16+
/**
17+
* @var Context\Cookies
18+
*/
819
protected $cookies;
20+
21+
/**
22+
* @var Context\Session
23+
*/
924
protected $session;
1025

1126
/**
1227
* @param Request $request
1328
* @param Context\Cookies $cookies
14-
* @param Context\Session\SAPI $session
29+
* @param Context\Session $session
1530
*/
1631
public function __construct($request, $cookies, $session)
1732
{
@@ -21,6 +36,7 @@ public function __construct($request, $cookies, $session)
2136
}
2237

2338
/**
39+
* HTTP request
2440
* @return Request
2541
*/
2642
public function request()
@@ -29,6 +45,7 @@ public function request()
2945
}
3046

3147
/**
48+
* Cookie storage
3249
* @return Context\Cookies
3350
*/
3451
public function cookies()
@@ -37,7 +54,8 @@ public function cookies()
3754
}
3855

3956
/**
40-
* @return Context\Session\SAPI
57+
* Session storage
58+
* @return Context\Session
4159
*/
4260
public function session()
4361
{
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
<?php
22

33
namespace PHPixie\HTTP\Context;
4+
use PHPixie\HTTP\Context;
45

6+
/**
7+
* HTTP Context container
8+
*/
59
interface Container
610
{
11+
/**
12+
* @return Context
13+
*/
714
public function httpContext();
815
}

0 commit comments

Comments
 (0)