Skip to content

Commit 9d00b57

Browse files
author
Florian Eckerstorfer
committed
Merge branch 'master' of github.com:braincrafted/arrayquery
* 'master' of github.com:braincrafted/arrayquery: Syntax highlighting on README.md
2 parents a9ef7e2 + b55c764 commit 9d00b57

1 file changed

Lines changed: 93 additions & 58 deletions

File tree

README.md

Lines changed: 93 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,20 @@ ArrayQuery
33

44
ArrayQuery is a library to query arrays.
55

6-
// Select the name of all of Ned's children older than 10.
7-
$query = $qb->create()
8-
->select('name')
9-
->from([
10-
[ 'name' => 'Robb', 'age' => 15 ],
11-
[ 'name' => 'Sansa', 'age' => 11 ],
12-
[ 'name' => 'Arya', 'age' => 9 ],
13-
[ 'name' => 'Bran', 'age' => 7 ],
14-
[ 'name' => 'Rickon', 'age' => 3 ]
15-
])
16-
->where('age', 10, '>');
17-
$result = $query->findAll();
6+
```php
7+
// Select the name of all of Ned's children older than 10.
8+
$query = $qb->create()
9+
->select('name')
10+
->from([
11+
[ 'name' => 'Robb', 'age' => 15 ],
12+
[ 'name' => 'Sansa', 'age' => 11 ],
13+
[ 'name' => 'Arya', 'age' => 9 ],
14+
[ 'name' => 'Bran', 'age' => 7 ],
15+
[ 'name' => 'Rickon', 'age' => 3 ]
16+
])
17+
->where('age', 10, '>');
18+
$result = $query->findAll();
19+
```
1820

1921
[![Build Status](https://travis-ci.org/braincrafted/arrayquery.png?branch=master)](https://travis-ci.org/braincrafted/arrayquery)
2022
[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/braincrafted/arrayquery/badges/quality-score.png?s=834dd7aafe6fe1e8aa8300b43aa0ae5925489738)](https://scrutinizer-ci.com/g/braincrafted/arrayquery/)
@@ -33,39 +35,44 @@ Installation
3335

3436
ArrayQuery can be installed using Composer:
3537

36-
{
37-
"require": {
38-
"braincrafted/arrayquery": "dev-master"
39-
}
38+
```json
39+
{
40+
"require": {
41+
"braincrafted/arrayquery": "dev-master"
4042
}
41-
43+
}
44+
```
4245

4346
Usage
4447
-----
4548

4649
The `ArrayQuery` object has to be initialized with a `SelectEvaluation` and a `WhereEvaluation` object. Filters can be
4750
added to `SelectEvaluation` and filters and operators can be added to `WhereEvaluation`.
4851

49-
<?php
52+
```php
53+
<?php
5054

51-
use Braincrafted\ArrayQuery\ArrayQuery;
52-
use Braincrafted\ArrayQuery\SelectEvaluation;
53-
use Braincrafted\ArrayQuery\WhereEvaluation;
54-
use Braincrafted\ArrayQuery\Operator\EqualOperator
55+
use Braincrafted\ArrayQuery\ArrayQuery;
56+
use Braincrafted\ArrayQuery\SelectEvaluation;
57+
use Braincrafted\ArrayQuery\WhereEvaluation;
58+
use Braincrafted\ArrayQuery\Operator\EqualOperator
5559

56-
$query = new ArrayQuery(
57-
new SelectEvaluation,
58-
(new WhereEvaluation)->addOperator(new EqualOperator)
59-
);
60+
$query = new ArrayQuery(
61+
new SelectEvaluation,
62+
(new WhereEvaluation)->addOperator(new EqualOperator)
63+
);
64+
```
6065

6166
However, the `QueryBuilder` can be used to create an instance of `ArrayQuery` with built-in operators and filters.
6267

63-
<?php
68+
```php
69+
<?php
6470

65-
use Braincrafted\ArrayQuery\QueryBuilder;
71+
use Braincrafted\ArrayQuery\QueryBuilder;
6672

67-
$qb = new QueryBuilder;
68-
$query = $qb->create();
73+
$qb = new QueryBuilder;
74+
$query = $qb->create();
75+
```
6976

7077
The query object can be used to build queries and execute them. Building the query object contains of three steps:
7178

@@ -79,94 +86,122 @@ When the query is built it has to be executed.
7986

8087
All elements of an item can be selected using the star `*` operator:
8188

82-
$query->select('*');
89+
```php
90+
$query->select('*');
91+
```
8392

8493
Single elements of an item can be selected:
8594

86-
$query->select('name');
95+
```php
96+
$query->select('name');
97+
```
8798

8899
Multiple elements of an item can be selected:
89100

90-
$query->select([ 'name', 'age' ]);
101+
```php
102+
$query->select([ 'name', 'age' ]);
103+
```
91104

92105
Filters can be applied in both cases:
93106

94-
$query->select('name', 'trim');
95-
$query->select([ 'name' => 'trim', 'bio' => 'trim' ]);
107+
```php
108+
$query->select('name', 'trim');
109+
$query->select([ 'name' => 'trim', 'bio' => 'trim' ]);
110+
```
96111

97112
Multiple filters can also be applied:
98113

99-
$query->select('name', [ 'trim', 'upper' ]);
114+
```php
115+
$query->select('name', [ 'trim', 'upper' ]);
100116
$query->select(
101117
[
102118
'name' => [ 'trim', 'upper' ],
103119
'bio' => [ 'trim', 'upper' ]
104120
]
105121
);
122+
```
106123

107124
### From
108125

109126
Next the data source from which to select from has to be defined:
110127

111-
$thorinsCompany = [
112-
[ 'name' => 'Bilbo Baggins', 'race' => 'Hobbit' ],
113-
[ 'name' => 'Gandalf', 'race' => 'Wizard' ],
114-
[ 'name' => 'Thorin Oakenshild', 'race' => 'Dwarf' ],
115-
[ 'name' => 'Balin', 'race' => 'Dwarf'],
116-
[ 'name' => 'Bifur', 'race' => 'Dwarf'],
117-
// ...
118-
];
128+
```php
129+
$thorinsCompany = [
130+
[ 'name' => 'Bilbo Baggins', 'race' => 'Hobbit' ],
131+
[ 'name' => 'Gandalf', 'race' => 'Wizard' ],
132+
[ 'name' => 'Thorin Oakenshild', 'race' => 'Dwarf' ],
133+
[ 'name' => 'Balin', 'race' => 'Dwarf'],
134+
[ 'name' => 'Bifur', 'race' => 'Dwarf'],
135+
// ...
136+
];
119137

120-
$query->from($thorinsCompany);
138+
$query->from($thorinsCompany);
139+
```
121140

122141
### Where
123142

124143
Where clauses define which items from the data source are put in the result set:
125144

126-
$query->where('race', 'Dwarf');
145+
```php
146+
$query->where('race', 'Dwarf');
147+
```
127148

128149
There are numerous different operators available, which can be defined as third parameter:
129150

130-
$query->where('age', 50, '>');
151+
```php
152+
$query->where('age', 50, '>');
153+
```
131154

132155
Before the clause is evaluated filters can be applied to the test value:
133156

134-
$query->where('name', 'foo', '=', 'trim');
135-
$query->where('name', 'foo', '=', [ 'trim', 'strtolower' ]);
157+
```php
158+
$query->where('name', 'foo', '=', 'trim');
159+
$query->where('name', 'foo', '=', [ 'trim', 'strtolower' ]);
160+
```
136161

137162
Filters can have arguments:
138163

139-
$query->where('name', 'nerd', '=', 'replace 3,e');
164+
```php
165+
$query->where('name', 'nerd', '=', 'replace 3,e');
166+
```
140167

141168
### Execute
142169

143170
There are multiple ways to execute a query.
144171

145172
Find all results:
146173

147-
$results = $query->findAll();
148-
// [ [ 'name' => 'Balin' ], [ 'name' => 'Bifur' ], ... ]
174+
```php
175+
$results = $query->findAll();
176+
// [ [ 'name' => 'Balin' ], [ 'name' => 'Bifur' ], ... ]
177+
```
149178

150179
Find one result:
151180

152-
$result = $query->findOne();
153-
// [ 'name' => 'Gandalf' ]
181+
```php
182+
$result = $query->findOne();
183+
// [ 'name' => 'Gandalf' ]
184+
```
154185

155186
*__Note:__ For performance reasons the first result is returned immediately. There is no error or exception when multiple
156187
results are returned.*
157188

158189
Find scalar results:
159190

160-
$result = $query->findScalar();
161-
// [ 'Balin', 'Bifur', 'Bofur', ... ]
191+
```php
192+
$result = $query->findScalar();
193+
// [ 'Balin', 'Bifur', 'Bofur', ... ]
194+
```
162195

163196
*__Note:__ This only works when only one field is selected, an exception is thrown when multiple fields are selected
164197
(either through enumeration or by using the star operator).*
165198

166199
Find one scalar result:
167200

168-
$result = $query->findOneScalar()
169-
// 'Gandalf'
201+
```php
202+
$result = $query->findOneScalar()
203+
// 'Gandalf'
204+
```
170205

171206
*__Note:__ The same notes as for `findOne()` and `findScalar()` apply here.*
172207

0 commit comments

Comments
 (0)