forked from zendframework/zend-expressive
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
157 lines (130 loc) · 5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<div class="container">
<div class="jumbotron">
<h1>Expressive</h1>
<p>PSR-7 Middleware in Minutes</p>
<pre><code class="language-bash">$ composer create-project zendframework/zend-expressive-skeleton expressive</code></pre>
</div>
</div>
<div class="container features">
<div class="row row-flex row-flex-wrap">
<div class="col-sm-6 col-md-4">
<div class="panel"><div class="panel-content">
<img src="images/check.png" alt="PSR-7" /><br />
<h3>PSR-7</h3>
<p>
Built to consume <a href="http://www.php-fig.org/psr/psr-7/">PSR-7</a>!
</p>
</div></div>
</div>
<div class="col-sm-6 col-md-4">
<div class="panel"><div class="panel-content center-block">
<img src="images/lambda.png" alt="Middleware" /><br />
<h3>Middleware</h3>
<p>
Create <a href="https://docs.zendframework.com/zend-stratigility/middleware/">middleware</a>
applications, using as many layers as you want, and the architecture
your project needs.
</p>
</div></div>
</div>
<div class="col-sm-6 col-md-4">
<div class="panel"><div class="panel-content center-block">
<img src="images/network.png" alt="Routing" /><br />
<h3>Routing</h3>
<p>
Route requests to middleware using <a href="features/router/intro/">the routing library of your choice</a>.
</p>
</div></div>
</div>
</div>
<div class="row row-flex row-flex-wrap">
<div class="col-sm-6 col-md-4">
<div class="panel"><div class="panel-content">
<img src="images/syringe.png" alt="Dependency Injection" /><br />
<h3>Dependency Injection</h3>
<p>
Make your code flexible and robust, using the
<a href="features/container/intro/">dependency injection container of your choice</a>.
</p>
</div></div>
</div>
<div class="col-sm-6 col-md-4">
<div class="panel"><div class="panel-content center-block">
<img src="images/pencil.png" alt="Templating" /><br />
<h3>Templating</h3>
<p>
Create <a href="features/template/intro/">templated responses</a>, using
a variety of template engines.
</p>
</div></div>
</div>
<div class="col-sm-6 col-md-4">
<div class="panel"><div class="panel-content center-block">
<img src="images/error.png" alt="Error Handling" /><br />
<h3>Error Handling</h3>
<p>
<a href="features/error-handling/">Handle errors gracefully</a>, using
templated error pages, <a href="http://filp.github.io/whoops/">whoops</a>,
or your own solution!
</p>
</div></div>
</div>
</div>
</div>
<div class="container install">
<div class="row"><div class="panel"><div class="panel-content">
<h2>Get Started Now!</h2>
<p>Installation is only a <a href="https://getcomposer.org">Composer</a> command away!</p>
<pre><code class="language-bash" data-trim>
$ composer create-project zendframework/zend-expressive-skeleton expressive</code></pre>
<p>
Expressive provides interfaces for routing and templating, letting <em>you</em>
choose what to use, and how you want to implement it.
</p>
<p>
Our unique installer allows you to select <em>your</em> choices when starting
your project!
</p>
<div class="row">
<div class="col-xs-12">
<img class="img-responsive screenshot" src="images/installer.png" alt="Expressive Installer" /><br />
</div>
</div>
<div class="row">
<div class="col-xs-12">
<button type="btn btn-lg btn-primary"><a href="getting-started/skeleton/">Learn more</a></button>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<h2>Applications, Simplified</h2>
<p>Write middleware:</p>
<pre><code class="language-php" data-trim>
$pathMiddleware = function (
ServerRequestInterface $request,
DelegateInterface $delegate
) {
$uri = $request->getUri();
$path = $uri->getPath();
return new TextResponse('You visited ' . $path, 200, ['X-Path' => $path]);
};</code></pre>
<p>And add it to an application:</p>
<pre><code class="language-php" data-trim>
$app->get('/path', $pathMiddleware);
</code></pre>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<button type="btn btn-lg btn-primary"><a href="features/application/">Learn more</a></button>
</div></div>
<div class="row"><div class="panel"><div class="panel-content">
<h2>Learn more</h2>
<ul>
<li><a href="getting-started/features/">Features overview</a></li>
<li><a href="getting-started/standalone/">Getting Started: Standalone installation</a></li>
<li><a href="getting-started/skeleton/">Getting Started: Skeleton Installer</a></li>
</ul>
<p>Or use the menu to navigate to the section you're interested in.</p>
</div></div></div>
</div></div></div></div>