@@ -3,18 +3,20 @@ ArrayQuery
33
44ArrayQuery 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
3436ArrayQuery 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
4346Usage
4447-----
4548
4649The ` ArrayQuery ` object has to be initialized with a ` SelectEvaluation ` and a ` WhereEvaluation ` object. Filters can be
4750added 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
6166However, 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
7077The 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
8087All elements of an item can be selected using the star ` * ` operator:
8188
82- $query->select('*');
89+ ``` php
90+ $query->select('*');
91+ ```
8392
8493Single elements of an item can be selected:
8594
86- $query->select('name');
95+ ``` php
96+ $query->select('name');
97+ ```
8798
8899Multiple elements of an item can be selected:
89100
90- $query->select([ 'name', 'age' ]);
101+ ``` php
102+ $query->select([ 'name', 'age' ]);
103+ ```
91104
92105Filters 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
97112Multiple 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
109126Next 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
124143Where 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
128149There 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
132155Before 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
137162Filters 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
143170There are multiple ways to execute a query.
144171
145172Find 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
150179Find 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
156187results are returned.*
157188
158189Find 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
166199Find 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